Elixir は、スケーラブルで保守可能なアプリケーションを構築するために設計された動的関数型言語です。
Elixir、インストール、ドキュメントの詳細については、Elixir の Web サイトを確認してください。
新しいリリースは、お知らせメーリング リストで発表されます。 [email protected] にメールを送信し、確認メールに返信することで購読できます。
すべてのセキュリティ リリースには[security]
のタグが付けられます。詳細については、セキュリティ ポリシーをお読みください。
当社の公式コミュニケーション チャネルにおけるすべてのやり取りは、当社の行動規範に従います。
バグを報告するには、問題トラッカーにアクセスし、新しい問題を報告する手順に従ってください。セキュリティの脆弱性については、[email protected] まで非公開で開示してください。
Elixir リポジトリに関連する現在未解決のバグはすべて、問題トラッカーにリストされています。 Elixir チームは、問題トラッカーを使用して、短期および中期で計画されている機能強化など、実行可能な項目に焦点を当てています。また、わかりやすくし、共同作業を容易にするために、エントリーにラベルを付けるよう最善を尽くしています。
当社の実行可能な項目ポリシーには、次のような重要な影響があります。
新しい機能の提案やサポート、ヘルプ、ガイダンスのリクエストは、次に詳しく説明する独自のスペースで行う必要があります。
上流のバグなど、Elixir の範囲外であると特定された問題はクローズされます (必要に応じて他の場所に移動するよう要求されます)。
問題トラッカーを整理しておくために、関連性のない問題や対処不可能な問題を積極的に閉じます。私たちは時々間違ったことをするかもしれませんが、喜んで問題を再検討し、必要に応じて再開します。
ポジティブなトーンを保ち、親切にしてください。詳細については、行動規範を参照してください。
新機能を提案する場合は、Elixir Core メーリング リストでディスカッションを開始してください。言語開発の歴史とその焦点は、私たちのウェブサイトで説明されています。
機能がなぜ役立つのか、そしてそれがコードベースとコミュニティにどのような影響を与えるのかを議論して説明するのはあなたの責任であることに留意してください。優れた提案には、問題の説明と、提案されたソリューションが Elixir エコシステム (および他の言語) の既存の代替案とどのように比較されるかが含まれます。提出前に提案を完成させるには、Elixir Web サイトのサイドバーにリストされているコミュニティ スペースを使用してフィードバックを収集することを検討してください。
提案が受け入れられると、問題トラッカーに追加されます。すでにマージされており、次のリリースに含まれる機能とバグ修正は「クローズ」され、変更ログに追加されます。
一般的なディスカッション、サポート、ヘルプについては、Elixir Web サイトのサイドバーにリストされているコミュニティ スペース (フォーラム、チャット プラットフォームなど) をご利用ください。そこでは、より広範なコミュニティがあなたをサポートします。
Elixir をインストールするさまざまな方法については、Web サイトのインストール手順を参照してください。ただし、Elixir に貢献したい場合は、ソースからコンパイルする必要があります。
まずはErlangをインストールします。その後、このリポジトリのクローンをマシンに作成し、コンパイルしてテストします。
git clone https://github.com/elixir-lang/elixir.git
cd elixir
make
注: Windows で実行している場合、この記事には Windows でソースから Elixir をコンパイルするための重要な注意事項が含まれています。
この Elixir バージョンをシステム バージョンとして使用する場合は、 bin
ディレクトリを PATH 環境変数に追加する必要があります。
リポジトリを更新するときは、再コンパイルする前にmake clean
実行することをお勧めします。確定的ビルドの場合は、環境変数ERL_COMPILER_OPTIONS=deterministic
を設定する必要があります。
Elixir への寄付を募集しています。貢献するには、コードについて知っておく必要があることがいくつかあります。まず、Elixir コードはlib
フォルダー内でアプリケーションごとに分割されます。
elixir
- Elixir のカーネルと標準ライブラリ
eex
- EEx は、Elixir を埋め込むことができるテンプレート エンジンです。
ex_unit
- ExUnit は Elixir に同梱されるシンプルなテスト フレームワークです
iex
- IEx は Interactive Elixir の略です: Elixir の対話型シェル
logger
- ロガーは組み込みロガーです
mix
- Mix は Elixir のビルド ツールです
make test
使用すると、ルート ディレクトリ内のすべてのテストを実行できます。 make test_#{APPLICATION}
を使用して特定のフレームワークのテストを実行することもできます (たとえば、 make test_ex_unit
。 Elixir の標準ライブラリの何かを変更したばかりの場合は、 make test_stdlib
を通じてその部分のみを実行できます。
1 つのファイルのみを変更する場合は、開発サイクルを短縮するために、その特定のファイルのテストをコンパイルして実行することを選択できます。たとえば、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
環境変数を使用して単一のテストを実行することもできます。
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 チームが変更を確認します。関係者全員の役割を明確にするために、プロセスの概要を以下に示します。
すべてのプル リクエストは、リポジトリにマージされる前に 2 人のコミッターによって承認される必要があります。変更が必要な場合、チームはコードの変更を要求する適切なコメントを残します。残念ながら、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
これにより、 elixir
、 eex
、 ex_unit
、 iex
、 logger
、およびmix
のドキュメント セットがdoc
ディレクトリの下に生成されます。ドキュメントに貢献する予定がある場合は、ドキュメント作成のベスト プラクティスを確認してください。
「Elixir」および Elixir ロゴは、The Elixir Team の登録商標です。
Elixir のソース コードは、Apache License 2.0 に基づいてリリースされています。
詳細については、NOTICE および LICENSE ファイルを確認してください。