Elixir — это динамичный функциональный язык, предназначенный для создания масштабируемых и легко поддерживаемых приложений.
Дополнительную информацию об Elixir, установке и документации можно найти на веб-сайте Elixir.
О новых выпусках сообщается в списке рассылки объявлений. Вы можете подписаться, отправив электронное письмо на адрес [email protected] и ответив на электронное письмо с подтверждением.
Все выпуски безопасности будут помечены тегом [security]
. Для получения дополнительной информации ознакомьтесь с нашей Политикой безопасности.
Все взаимодействия в наших официальных каналах связи соответствуют нашему Кодексу поведения.
Чтобы сообщить об ошибках, посетите наш трекер проблем и следуйте инструкциям по сообщению о новой проблеме. Сообщайте об уязвимостях безопасности конфиденциально по адресу [email protected] .
Все открытые на данный момент ошибки, связанные с репозиторием Elixir, перечислены в трекере проблем. Команда Elixir использует систему отслеживания проблем, чтобы сосредоточиться на практических задачах , включая запланированные улучшения в краткосрочной и среднесрочной перспективе. Мы также делаем все возможное, чтобы помечать записи для ясности и облегчения совместной работы.
Наша политика в отношении действенных элементов имеет некоторые важные последствия, такие как:
Предложение новых функций, а также запросы на поддержку, помощь и рекомендации должны осуществляться в их собственных пространствах, о чем подробно рассказывается далее.
Проблемы, которые, как мы определили, выходят за рамки Elixir, такие как ошибки исходного кода, будут закрыты (и при необходимости будет предложено перенести их в другое место).
Мы активно закрываем несвязанные и не требующие решения проблемы, чтобы система отслеживания проблем была аккуратной. Время от времени мы можем ошибаться и с радостью вернемся к проблемам, открывая их снова, когда это необходимо.
Сохраняйте позитивный тон и будьте добры! Для получения дополнительной информации см. Кодекс поведения.
Чтобы предложить новые функции, начните обсуждение в списке рассылки Elixir Core. История развития языка и его направленность описаны на нашем сайте.
Помните, что вы обязаны аргументировать и объяснить, почему та или иная функция полезна и как она повлияет на кодовую базу и сообщество. Хорошее предложение включает описание проблемы и сравнение предлагаемого решения с существующими альтернативами в экосистеме Elixir (а также на других языках). Чтобы проработать предложение перед отправкой, рассмотрите возможность использования и сбора отзывов в сообществах, перечисленных на боковой панели веб-сайта Elixir.
Как только предложение будет принято, оно будет добавлено в систему отслеживания проблем. Функции и исправления ошибок, которые уже были объединены и будут включены в следующий выпуск, затем «закрываются» и добавляются в журнал изменений.
Для общих обсуждений, поддержки и помощи используйте места сообщества, перечисленные на боковой панели веб-сайта Elixir, например форумы, чат-платформы и т. д., где более широкое сообщество сможет вам помочь.
Чтобы узнать о различных способах установки Elixir, ознакомьтесь с нашими инструкциями по установке на веб-сайте. Однако, если вы хотите внести свой вклад в Elixir, вам нужно будет скомпилировать его из исходного кода.
Сначала установите Эрланг. После этого клонируйте этот репозиторий на свою машину, скомпилируйте и протестируйте его:
git clone https://github.com/elixir-lang/elixir.git
cd elixir
make
Примечание. Если вы работаете в Windows, эта статья содержит важные примечания по компиляции Elixir из исходного кода в Windows.
Если вы хотите использовать эту версию Elixir в качестве версии вашей системы, вам необходимо добавить каталог bin
в переменную среды PATH.
При обновлении репозитория вы можете запустить команду make clean
перед перекомпиляцией. Для детерминированных сборок необходимо установить переменную среды ERL_COMPILER_OPTIONS=deterministic
.
Мы приглашаем вас внести свой вклад в Эликсир. Чтобы внести свой вклад, вам нужно знать несколько вещей о коде. Во-первых, код 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
Вы также можете использовать переменную env 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
Это создаст наборы документации для elixir
, eex
, ex_unit
, iex
, logger
и mix
в каталоге doc
. Если вы планируете предоставлять документацию, ознакомьтесь с нашими рекомендациями по написанию документации.
«Эликсир» и логотип Elixir являются зарегистрированными торговыми марками The Elixir Team.
Исходный код Elixir распространяется под лицензией Apache License 2.0.
Для получения дополнительной информации проверьте файлы NOTICE и LICENSE.