Elixir는 확장 가능하고 유지 관리 가능한 애플리케이션을 구축하기 위해 설계된 동적이며 기능적인 언어입니다.
Elixir, 설치 및 문서화에 대한 자세한 내용은 Elixir 웹사이트를 확인하세요.
새 릴리스는 공지 메일링 목록에 발표됩니다. [email protected]으로 이메일을 보내고 확인 이메일에 답장하여 구독할 수 있습니다.
모든 보안 릴리스에는 [security]
태그가 지정됩니다. 자세한 내용은 보안 정책을 읽어보세요.
당사의 공식 커뮤니케이션 채널을 통한 모든 상호 작용은 당사의 행동 강령을 따릅니다.
버그를 보고하려면 문제 추적기를 방문하여 새로운 문제를 보고하는 단계를 따르세요. 보안 취약점을 [email protected]으로 비공개로 공개해 주세요 .
현재 Elixir 저장소와 관련된 모든 공개 버그는 이슈 트래커에 나열되어 있습니다. Elixir 팀은 이슈 트래커를 사용하여 단기 및 중기적으로 계획된 개선 사항을 포함하여 실행 가능한 항목 에 집중합니다. 또한 명확성을 높이고 협업을 용이하게 하기 위해 항목에 라벨을 지정하는 데 최선을 다합니다.
우리의 실행 가능한 품목 정책은 다음과 같은 몇 가지 중요한 결과를 가져옵니다.
새로운 기능 제안과 지원, 도움, 안내 요청은 각자의 공간에서 이루어져야 하며 이에 대한 자세한 내용은 다음에 설명되어 있습니다.
업스트림 버그와 같이 Elixir의 범위를 벗어나는 것으로 확인된 문제는 종결될 것입니다(해당하는 경우 다른 곳으로 이동하도록 요청됩니다).
이슈 트래커를 깔끔하게 유지하기 위해 관련이 없고 실행 불가능한 이슈를 적극적으로 닫습니다. 때때로 문제가 발생할 수 있으며 기꺼이 문제를 다시 검토하고 필요한 경우 다시 열어드리겠습니다.
긍정적인 톤을 유지하고 친절하게 대해주세요! 자세한 내용은 행동강령을 참조하세요.
새로운 기능을 제안하려면 Elixir Core 메일링 리스트에서 토론을 시작하세요. 언어 개발 역사와 그 초점은 우리 웹사이트에 설명되어 있습니다.
기능이 왜 유용한지, 코드베이스와 커뮤니티에 어떤 영향을 미칠지 논쟁하고 설명하는 것은 귀하의 책임이라는 점을 명심하세요. 좋은 제안에는 문제 설명과 제안된 솔루션이 Elixir 생태계(및 다른 언어)의 기존 대안과 어떻게 비교되는지가 포함됩니다. 제출하기 전에 제안서를 다듬으려면 Elixir 웹사이트 사이드바에 나열된 커뮤니티 공간을 사용하고 피드백을 수집하는 것이 좋습니다.
제안이 수락되면 이슈 트래커에 추가됩니다. 이미 병합되어 다음 릴리스에 포함될 기능 및 버그 수정은 "닫히고" 변경 로그에 추가됩니다.
일반적인 토론, 지원, 도움이 필요하시면 Elixir 웹사이트 사이드바에 나열된 커뮤니티 공간(포럼, 채팅 플랫폼 등)을 이용하세요. 더 넓은 커뮤니티에서 도움을 받으실 수 있습니다.
Elixir를 설치하는 다양한 방법은 웹사이트의 설치 지침을 참조하세요. 하지만 Elixir에 기여하고 싶다면 소스에서 컴파일해야 합니다.
먼저 얼랭(Erlang)을 설치하세요. 그런 다음 이 저장소를 컴퓨터에 복제하고 컴파일하고 테스트하세요.
git clone https://github.com/elixir-lang/elixir.git
cd elixir
make
참고: Windows에서 실행 중인 경우 이 문서에는 Windows 소스에서 Elixir를 컴파일하는 데 대한 중요한 참고 사항이 포함되어 있습니다.
이 Elixir 버전을 시스템 버전으로 사용하려면 PATH 환경 변수에 bin
디렉터리를 추가해야 합니다.
저장소를 업데이트할 때 다시 컴파일하기 전에 make clean
실행하는 것이 좋습니다. 결정적 빌드의 경우 환경 변수 ERL_COMPILER_OPTIONS=deterministic
설정해야 합니다.
우리는 Elixir에 대한 기여를 요청합니다. 기여하려면 코드에 대해 알아야 할 몇 가지 사항이 있습니다. 먼저 Elixir 코드는 lib
폴더 내 각 애플리케이션별로 구분됩니다.
elixir
- Elixir의 커널 및 표준 라이브러리
eex
- EEx는 Elixir를 내장할 수 있는 템플릿 엔진입니다.
ex_unit
- ExUnit은 Elixir와 함께 제공되는 간단한 테스트 프레임워크입니다.
iex
- IEx는 Interactive Elixir의 약자입니다: Elixir의 대화형 셸
logger
- Logger는 내장된 로거입니다.
mix
- Mix는 Elixir의 빌드 도구입니다.
make test
사용하면 루트 디렉터리에서 모든 테스트를 실행할 수 있습니다. make test_#{APPLICATION}
사용하여 특정 프레임워크에 대한 테스트를 실행할 수도 있습니다(예: make test_ex_unit
. Elixir의 표준 라이브러리에서 뭔가를 변경했다면, make test_stdlib
통해 해당 부분만 실행할 수 있습니다.
하나의 파일만 변경하는 경우 더 빠른 개발 주기를 위해 해당 특정 파일에 대한 테스트를 컴파일하고 실행하도록 선택할 수 있습니다. 예를 들어, String 모듈을 변경하는 경우 다음과 같이 해당 모듈을 컴파일하고 테스트를 실행할 수 있습니다.
bin/elixirc lib/elixir/lib/string.ex -o lib/elixir/ebin
bin/elixir lib/elixir/test/elixir/string_test.exs
일부 테스트 파일에는 다음과 같이 명시적으로 요구하기 위해 test_helper.exs
필요합니다.
bin/elixir -r lib/logger/test/test_helper.exs lib/logger/test/logger_test.exs
LINE
env var를 사용하여 단일 테스트를 실행할 수도 있습니다.
LINE=123 bin/elixir lib/elixir/test/elixir/string_test.exs
모두(Erlang 모듈 포함)를 다시 컴파일하려면:
make compile
변경이 완료되면 make format
실행하여 모든 파일의 형식이 올바른지 확인한 다음 make test
사용하여 전체 제품군을 실행하십시오.
언어 부트스트래핑 중에 기여가 실패하면 다음을 사용하여 언어를 처음부터 다시 빌드할 수 있습니다.
make clean_elixir compile
마찬가지로, 기존 체크아웃을 업데이트한 후에도 Elixir를 컴파일하거나 테스트를 통과할 수 없다면 make clean compile
실행하세요. 공식 빌드 상태를 확인할 수 있습니다. Makefile을 읽으면 더 많은 작업을 찾을 수 있습니다.
테스트가 실행되고 통과되면 Elixir에 기여하고 끌어오기 요청을 보낼 준비가 된 것입니다. 몇 가지 예를 찾고 계신 경우를 대비해 과거에 받은 우수한 풀 요청 몇 가지를 저장해 두었습니다.
풀 요청이 전송되면 Elixir 팀이 변경 사항을 검토합니다. 관련된 모든 사람의 역할을 명확히 하기 위해 아래 프로세스를 간략하게 설명합니다.
모든 풀 요청은 저장소에 병합되기 전에 두 명의 커미터의 승인을 받아야 합니다. 변경이 필요한 경우 팀에서는 코드 변경을 요청하는 적절한 의견을 남길 것입니다. 안타깝게도 Elixir 팀은 기여도가 변경되면 재평가하므로 수정이 요청되더라도 풀 요청이 병합된다는 보장은 없습니다.
커미터는 스타일 변경 사항을 브랜치에 직접 푸시할 수도 있습니다. 모든 변경 사항을 직접 관리하고 싶다면 끌어오기 요청을 제출할 때 "관리자 편집 허용" 기능을 비활성화할 수 있습니다.
Elixir 팀은 선택적으로 풀 요청을 검토할 사람을 지정할 수 있습니다. 누군가 할당된 경우 다른 팀 구성원이 코드를 병합하려면 먼저 코드를 명시적으로 승인해야 합니다.
검토가 완료되면 풀 요청이 압축되어 저장소에 병합됩니다. 커밋을 주의 깊게 정리했고 압축 없이 병합해야 한다고 생각한다면 댓글로 언급해 주세요.
문서를 작성하려면 ExDoc을 Elixir와 함께 설치하고 빌드해야 합니다.
# After cloning and compiling Elixir, in its parent directory:
git clone https://github.com/elixir-lang/ex_doc.git
cd ex_doc && ../elixir/bin/elixir ../elixir/bin/mix do deps.get + compile
이제 Elixir의 루트 디렉토리로 돌아가서 다음을 실행하세요:
make docs # to generate HTML pages
make docs DOCS_FORMAT=epub # to generate EPUB documents
그러면 doc
디렉토리 아래에 elixir
, eex
, ex_unit
, iex
, logger
및 mix
에 대한 문서 세트가 생성됩니다. 문서를 제공할 계획이라면 문서 작성에 대한 모범 사례를 확인하세요.
"Elixir" 및 Elixir 로고는 The Elixir Team의 등록 상표입니다.
Elixir 소스 코드는 Apache License 2.0에 따라 공개됩니다.
자세한 내용은 NOTICE 및 LICENSE 파일을 확인하세요.