Elixir é uma linguagem dinâmica e funcional projetada para construir aplicativos escaláveis e de fácil manutenção.
Para mais informações sobre o Elixir, instalação e documentação, consulte o site do Elixir.
Novos lançamentos são anunciados na lista de discussão de anúncios. Você pode se inscrever enviando um e-mail para [email protected] e respondendo ao e-mail de confirmação.
Todas as versões de segurança serão marcadas com [security]
. Para mais informações, leia nossa Política de Segurança.
Todas as interações em nossos canais oficiais de comunicação seguem nosso Código de Conduta.
Para relatar bugs, visite nosso rastreador de problemas e siga as etapas para relatar um novo problema. Divulgue vulnerabilidades de segurança em particular em [email protected] .
Todos os bugs atualmente abertos relacionados ao repositório Elixir estão listados no rastreador de problemas. A equipe do Elixir usa o rastreador de problemas para se concentrar em itens acionáveis , incluindo melhorias planejadas no curto e médio prazo. Também fazemos o nosso melhor para rotular as entradas para maior clareza e facilitar a colaboração.
Nossa política de itens acionáveis tem algumas consequências importantes, como:
A proposição de novas funcionalidades, bem como as solicitações de apoio, ajuda e orientação deverão ser feitas em espaços próprios, detalhados a seguir.
Problemas que identificamos como estando fora do escopo do Elixir, como um bug no upstream, serão resolvidos (e solicitados a serem movidos para outro lugar, se apropriado).
Fechamos ativamente problemas não relacionados e não acionáveis para manter o rastreador de problemas organizado. Podemos errar de vez em quando e teremos prazer em revisitar os problemas, reabrindo quando necessário.
Mantenha o tom positivo e seja gentil! Para mais informações, consulte o Código de Conduta.
Para propor novos recursos, inicie uma discussão na lista de discussão do Elixir Core. A história do desenvolvimento da linguagem e seu foco estão descritos em nosso site.
Tenha em mente que é sua responsabilidade argumentar e explicar por que um recurso é útil e como ele impactará a base de código e a comunidade. Uma boa proposta inclui a descrição do problema e como a solução proposta se compara às alternativas existentes no ecossistema Elixir (bem como em outras linguagens). Para elaborar uma proposta antes de enviá-la, considere usar e coletar feedback dos espaços comunitários listados na barra lateral do site do Elixir.
Assim que uma proposta for aceita, ela será adicionada ao rastreador de problemas. Recursos e correções de bugs que já foram mesclados e serão incluídos na próxima versão são então “fechados” e adicionados ao changelog.
Para discussões gerais, suporte e ajuda, use os espaços da comunidade listados na barra lateral do site do Elixir, como fóruns, plataformas de bate-papo, etc., onde a comunidade mais ampla estará disponível para ajudá-lo.
Para conhecer as diversas maneiras de instalar o Elixir, consulte nossas instruções de instalação no site. No entanto, se quiser contribuir com o Elixir, você precisará compilar a partir do código-fonte.
Primeiro, instale o Erlang. Depois disso, clone este repositório em sua máquina, compile e teste:
git clone https://github.com/elixir-lang/elixir.git
cd elixir
make
Nota: se você estiver executando no Windows, este artigo inclui notas importantes para compilar o Elixir a partir do código-fonte no Windows.
Caso você queira usar esta versão do Elixir como sua versão do sistema, você precisa adicionar o diretório bin
à sua variável de ambiente PATH.
Ao atualizar o repositório, você pode executar make clean
antes de recompilar. Para compilações determinísticas, você deve configurar a variável de ambiente ERL_COMPILER_OPTIONS=deterministic
.
Convidamos contribuições para o Elixir. Para contribuir, existem algumas coisas que você precisa saber sobre o código. Primeiro, o código do Elixir é dividido por cada aplicativo dentro da pasta lib
:
elixir
- kernel e biblioteca padrão do Elixir
eex
- EEx é o mecanismo de modelo que permite incorporar o Elixir
ex_unit
- ExUnit é uma estrutura de teste simples que acompanha o Elixir
iex
- IEx significa Interactive Elixir: shell interativo do Elixir
logger
- Logger é o logger integrado
mix
- Mix é a ferramenta de construção do Elixir
Você pode executar todos os testes no diretório raiz com make test
. Você também pode executar testes para uma estrutura específica com make test_#{APPLICATION}
, por exemplo, make test_ex_unit
. Se você acabou de alterar algo na biblioteca padrão do Elixir, você pode executar apenas essa parte através de make test_stdlib
.
Se você estiver alterando apenas um arquivo, poderá optar por compilar e executar testes para esse arquivo específico para obter ciclos de desenvolvimento mais rápidos. Por exemplo, se você estiver alterando o módulo String, poderá compilá-lo e executar seus testes como:
bin/elixirc lib/elixir/lib/string.ex -o lib/elixir/ebin
bin/elixir lib/elixir/test/elixir/string_test.exs
Alguns arquivos de teste precisam que seu test_helper.exs
seja explicitamente exigido antes, como:
bin/elixir -r lib/logger/test/test_helper.exs lib/logger/test/logger_test.exs
Você também pode usar o LINE
env var para executar um único teste:
LINE=123 bin/elixir lib/elixir/test/elixir/string_test.exs
Para recompilar tudo (incluindo módulos Erlang):
make compile
Depois que suas alterações forem feitas, lembre-se de executar make format
para garantir que todos os arquivos estejam formatados corretamente e, em seguida, execute o pacote completo com make test
.
Se sua contribuição falhar durante a inicialização da linguagem, você poderá reconstruí-la do zero com:
make clean_elixir compile
Da mesma forma, se você não conseguir compilar o Elixir ou passar nos testes após atualizar um checkout existente, execute make clean compile
. Você pode verificar o status oficial da construção. Mais tarefas podem ser encontradas lendo o Makefile.
Com os testes em execução e aprovados, você está pronto para contribuir com o Elixir e enviar uma solicitação pull. Salvamos algumas solicitações pull excelentes que recebemos no passado, caso você esteja procurando alguns exemplos:
Assim que uma solicitação pull for enviada, a equipe do Elixir analisará suas alterações. Descrevemos nosso processo abaixo para esclarecer as funções de todos os envolvidos.
Todas as solicitações pull devem ser aprovadas por dois committers antes de serem mescladas no repositório. Caso sejam necessárias alterações, a equipe deixará comentários apropriados solicitando alterações no código. Infelizmente, não podemos garantir que uma solicitação pull será mesclada, mesmo quando modificações forem solicitadas, pois a equipe do Elixir reavaliará a contribuição à medida que ela for alterada.
Os committers também podem enviar alterações de estilo diretamente para o seu branch. Se preferir gerenciar todas as alterações sozinho, você pode desativar o recurso "Permitir edições dos mantenedores" ao enviar sua solicitação pull.
A equipe do Elixir pode opcionalmente designar alguém para revisar uma solicitação pull. Se alguém for designado, ele deverá aprovar explicitamente o código antes que outro membro da equipe possa mesclá-lo.
Quando a revisão terminar, sua solicitação pull será compactada e mesclada no repositório. Se você organizou cuidadosamente seus commits e acredita que eles devem ser mesclados sem esmagamento, mencione isso em um comentário.
A construção da documentação requer que o ExDoc seja instalado e construído junto com o 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
Agora volte ao diretório raiz do Elixir e execute:
make docs # to generate HTML pages
make docs DOCS_FORMAT=epub # to generate EPUB documents
Isso produzirá conjuntos de documentação para elixir
, eex
, ex_unit
, iex
, logger
e mix
no diretório doc
. Se você planeja contribuir com documentação, verifique nossas práticas recomendadas para redigir documentação.
"Elixir" e o logotipo Elixir são marcas registradas da The Elixir Team.
O código-fonte do Elixir é lançado sob a licença Apache 2.0.
Verifique os arquivos NOTICE e LICENSE para obter mais informações.