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 版本作為您的系統版本,您需要將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 的互動式 shell
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
環境變數來執行單一測試:
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 標誌是 Elixir 團隊的註冊商標。
Elixir 原始碼在 Apache License 2.0 下發布。
檢查通知和許可證文件以獲取更多資訊。