• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

doc/H14-Dec-2021-1212

elixir-1.13.1/H14-Dec-2021-225,979178,802

.license-catalog.mkH A D03-May-2022210 65

.license-reportH A D03-May-202266 21

CHANGELOG.mdH A D14-Dec-202117.8 KiB338246

LICENSEH A D25-May-20219.9 KiB177150

NOTICEH A D07-Nov-20211.3 KiB3826

README.mdH A D14-Dec-20219.1 KiB235168

README.md

1<img src="https://github.com/elixir-lang/elixir-lang.github.com/raw/master/images/logo/logo.png" width="200" alt="Elixir">
2
3[![CI](https://github.com/elixir-lang/elixir/workflows/CI/badge.svg?branch=master)](https://github.com/elixir-lang/elixir/actions?query=branch%3Amaster+workflow%3ACI) [![Build status](https://api.cirrus-ci.com/github/elixir-lang/elixir.svg?branch=master)](https://cirrus-ci.com/github/elixir-lang/elixir)
4
5Elixir is a dynamic, functional language designed for building scalable
6and maintainable applications.
7
8For more about Elixir, installation and documentation,
9[check Elixir's website](https://elixir-lang.org/).
10
11## Policies
12
13New releases are announced in the [announcement mailing list][8].
14You can subscribe by sending an email to elixir-lang-ann+subscribe@googlegroups.com
15and replying to the confirmation email.
16
17All security releases [will be tagged with `[security]`][10]. For more
18information, please read our [Security Policy][9].
19
20All interactions in our official communication channels follow our
21[Code of Conduct][1].
22
23## Bug reports
24
25For reporting bugs, [visit our issue tracker][2] and follow the steps
26for reporting a new issue. **Please disclose security vulnerabilities
27privately at elixir-security@googlegroups.com**.
28
29## Issues tracker management
30
31All currently open bugs related to the Elixir repository are listed
32in the issues tracker. The Elixir team uses the issues tracker to focus
33on *actionable items*, including planned enhancements in the short- and
34medium-term. We also do our best to label entries for clarity and to ease
35collaboration.
36
37Our *actionable item policy* has some important consequences, such as:
38
39  * Proposing new features as well as request for support, help, and
40    guidance must be done in their own spaces, detailed next.
41
42  * Issues where we have identified to be outside of Elixir scope,
43    such as a bug upstream, will be closed (and requested to be moved
44    elsewhere if appropriate).
45
46  * We actively close unrelated and non-actionable issues to keep the
47    issues tracker tidy. However, we may get things wrong from time to
48    time, so we are glad to revisit issues and reopen if necessary.
49
50Keep the tone positive and be kind! For more information, see the
51[Code of Conduct][1].
52
53### Proposing new features
54
55For proposing new features, please start a discussion in the
56[Elixir Core mailing list][3]. Keep in mind that it is your responsibility
57to argue and explain why a feature is useful and how it will impact the
58codebase and the community.
59
60Once a proposal is accepted, it will be added to [the issue tracker][2].
61Features and bug fixes that have already been merged and will be included
62in the next release are then "closed" and added to the [changelog][7].
63
64### Discussions, support, and help
65
66For general discussions, support, and help, please use many of the community
67spaces [listed on the sidebar of the Elixir website](https://elixir-lang.org/),
68such as forums, chat platforms, etc, where the wider community will be available
69to help you.
70
71## Compiling from source
72
73For the many different ways to install Elixir,
74[see our installation instructions on the website](https://elixir-lang.org/install.html).
75However, if you want to contribute to Elixir, you will need to compile from source.
76
77First, [install Erlang](https://elixir-lang.org/install.html#installing-erlang).
78After that, clone this repository to your machine, compile and test it:
79
80```sh
81git clone https://github.com/elixir-lang/elixir.git
82cd elixir
83make clean test
84```
85
86> Note: if you are running on Windows,
87[this article includes important notes for compiling Elixir from source
88on Windows](https://github.com/elixir-lang/elixir/wiki/Windows).
89
90In case you want to use this Elixir version as your system version,
91you need to add the `bin` directory to [your PATH environment variable](https://elixir-lang.org/install.html#setting-path-environment-variable).
92
93If Elixir fails to build (specifically when pulling in a new version via
94`git`), be sure to remove any previous build artifacts by running
95`make clean`, then `make test`.
96
97## Contributing
98
99We welcome everyone to contribute to Elixir. To do so, there are a few
100things you need to know about the code. First, Elixir code is divided
101in applications inside the `lib` folder:
102
103* `elixir` - Elixir's kernel and standard library
104
105* `eex` - EEx is the template engine that allows you to embed Elixir
106
107* `ex_unit` - ExUnit is a simple test framework that ships with Elixir
108
109* `iex` - IEx stands for Interactive Elixir: Elixir's interactive shell
110
111* `logger` - Logger is the built-in logger
112
113* `mix` - Mix is Elixir's build tool
114
115You can run all tests in the root directory with `make test` and you can
116also run tests for a specific framework `make test_#{APPLICATION}`, for example,
117`make test_ex_unit`. If you just changed something in the Elixir's standard
118library, you can run only that portion through `make test_stdlib`.
119
120If you are changing just one file, you can choose to compile and run tests only
121for that particular file for fast development cycles. For example, if you
122are changing the String module, you can compile it and run its tests as:
123
124```sh
125bin/elixirc lib/elixir/lib/string.ex -o lib/elixir/ebin
126bin/elixir lib/elixir/test/elixir/string_test.exs
127```
128
129To recompile (including Erlang modules):
130
131```sh
132make compile
133```
134
135After your changes are done, please remember to run `make format` to guarantee
136all files are properly formatted and then run the full suite with
137`make test`.
138
139If your contribution fails during the bootstrapping of the language,
140you can rebuild the language from scratch with:
141
142```sh
143make clean_elixir compile
144```
145
146Similarly, if you can't get Elixir to compile or the tests to pass after
147updating an existing checkout, run `make clean compile`. You can check
148[the official build status](https://github.com/elixir-lang/elixir/actions/workflows/ci.yml).
149More tasks can be found by reading the [Makefile](Makefile).
150
151With tests running and passing, you are ready to contribute to Elixir and
152[send a pull request](https://help.github.com/articles/using-pull-requests/).
153We have saved some excellent pull requests we have received in the past in
154case you are looking for some examples:
155
156* [Implement Enum.member? - Pull request](https://github.com/elixir-lang/elixir/pull/992)
157* [Add String.valid? - Pull request](https://github.com/elixir-lang/elixir/pull/1058)
158* [Implement capture_io for ExUnit - Pull request](https://github.com/elixir-lang/elixir/pull/1059)
159
160### Reviewing changes
161
162Once a pull request is sent, the Elixir team will review your changes.
163We outline our process below to clarify the roles of everyone involved.
164
165All pull requests must be approved by two committers before being merged into
166the repository. If any changes are necessary, the team will leave appropriate
167comments requesting changes to the code. Unfortunately we cannot guarantee a
168pull request will be merged, even when modifications are requested, as the Elixir
169team will re-evaluate the contribution as it changes.
170
171Committers may also push style changes directly to your branch. If you would
172rather manage all changes yourself, you can disable "Allow edits from maintainers"
173feature when submitting your pull request.
174
175The Elixir team may optionally assign someone to review a pull request.
176If someone is assigned, they must explicitly approve the code before
177another team member can merge it.
178
179When the review finishes, your pull request will be squashed and merged
180into the repository. If you have carefully organized your commits and
181believe they should be merged without squashing, please mention it in
182a comment.
183
184## Building documentation
185
186Building the documentation requires [ExDoc](https://github.com/elixir-lang/ex_doc)
187to be installed and built alongside Elixir:
188
189```sh
190# After cloning and compiling Elixir, in its parent directory:
191git clone git://github.com/elixir-lang/ex_doc.git
192cd ex_doc && ../elixir/bin/mix do deps.get, compile
193```
194
195Now go back to Elixir's root directory and run:
196
197```sh
198make docs                  # to generate HTML pages
199make docs DOCS_FORMAT=epub # to generate EPUB documents
200```
201
202This will produce documentation sets for `elixir`, `eex`, `ex_unit`, `iex`, `logger`,
203and `mix` under the `doc` directory. If you are planning to contribute documentation,
204[please check our best practices for writing documentation](https://hexdocs.pm/elixir/writing-documentation.html).
205
206## Development links
207
208  * [Elixir Documentation][6]
209  * [Elixir Core Mailing list (development)][3]
210  * [Announcement mailing list][8]
211  * [Code of Conduct][1]
212  * [Issue tracker][2]
213  * [Changelog][7]
214  * [Security Policy][9]
215  * **[#elixir][4]** on [Libera.Chat][5] IRC
216
217  [1]: CODE_OF_CONDUCT.md
218  [2]: https://github.com/elixir-lang/elixir/issues
219  [3]: https://groups.google.com/group/elixir-lang-core
220  [4]: https://web.libera.chat/#elixir
221  [5]: https://libera.chat
222  [6]: https://elixir-lang.org/docs.html
223  [7]: CHANGELOG.md
224  [8]: https://groups.google.com/group/elixir-lang-ann
225  [9]: SECURITY.md
226  [10]: https://groups.google.com/forum/#!searchin/elixir-lang-ann/%5Bsecurity%5D%7Csort:date
227
228## License
229
230"Elixir" and the Elixir logo are registered trademarks of The Elixir Team.
231
232Elixir source code is released under Apache License 2.0.
233
234Check [NOTICE](NOTICE) and [LICENSE](LICENSE) files for more information.
235