GitHub - elixir-lang/elixir: Elixir is a dynamic, functional language for building scalable and maintainable applications
Skip to content

Elixir is a dynamic, functional language for building scalable and maintainable applications

License

Notifications You must be signed in to change notification settings

elixir-lang/elixir

Elixir logo

CI

Elixir is a dynamic, functional language designed for building scalable and maintainable applications.

For more about Elixir, installation and documentation, check Elixir's website.

Policies

New releases are announced in the announcement mailing list. You can subscribe by sending an email to elixir-lang-ann+subscribe@googlegroups.com and replying to the confirmation email.

All security releases will be tagged with [security]. For more information, please read our Security Policy.

All interactions in our official communication channels follow our Code of Conduct.

All contributions are required to conform to our Open Source Policy.

Bug reports

For reporting bugs, visit our issue tracker and follow the steps for reporting a new issue. Please disclose security vulnerabilities privately at elixir-security@googlegroups.com.

Issues tracker management

All currently open bugs related to the Elixir repository are listed in the issues tracker. The Elixir team uses the issues tracker to focus on actionable items, including planned enhancements in the short and medium term. We also do our best to label entries for clarity and to ease collaboration.

Our actionable item policy has some important consequences, such as:

  • Proposing new features as well as requests for support, help, and guidance must be done in their own spaces, detailed next.

  • Issues we have identified to be outside of Elixir's scope, such as an upstream bug, will be closed (and requested to be moved elsewhere if appropriate).

  • We actively close unrelated and non-actionable issues to keep the issues tracker tidy. We may get things wrong from time to time and will gladly revisit issues, reopening when necessary.

Keep the tone positive and be kind! For more information, see the Code of Conduct.

Proposing new features

For proposing new features, please start a discussion in the Elixir Core mailing list. The language development history and its focus are described on our website.

Keep in mind that it is your responsibility to argue and explain why a feature is useful and how it will impact the codebase and the community. A good proposal includes the problem description and how the proposed solution compares with existing alternatives in the Elixir ecosystem (as well as in other languages). To iron out a proposal before submission, consider using and gathering feedback from the community spaces listed on the sidebar of the Elixir website.

Once a proposal is accepted, it will be added to the issue tracker. Features and bug fixes that have already been merged and will be included in the next release are then "closed" and added to the changelog.

Discussions, support, and help

For general discussions, support, and help, please use the community spaces listed on the sidebar of the Elixir website, such as forums, chat platforms, etc, where the wider community will be available to help you.

Compiling from source

For the many different ways to install Elixir, see our installation instructions on the website. However, if you want to contribute to Elixir, you will need to compile from source.

First, install Erlang. After that, clone this repository to your machine, compile and test it:

git clone https://github.com/elixir-lang/elixir.git
cd elixir
make

Note: if you are running on Windows, this article includes important notes for compiling Elixir from source on Windows.

In case you want to use this Elixir version as your system version, you need to add the bin directory to your PATH environment variable.

When updating the repository, you may want to run make clean before recompiling. For deterministic builds, you should set the environment variable ERL_COMPILER_OPTIONS=deterministic.

Contributing

Contributions to Elixir are always welcome! Before you get started, please check out our CONTRIBUTING.md file. There you will find detailed guidelines on how to set up your environment, run the test suite, format your code, and submit pull requests. We also include information on our review process, licensing requirements, and helpful tips to ensure a smooth contribution experience.

Development links

License

"Elixir" and the Elixir logo are registered trademarks of The Elixir Team.

Elixir source code is released under Apache License 2.0.

Check LICENSE file for more information.