|
1 | 1 | # Release process
|
2 | 2 |
|
3 |
| -## All releases |
4 |
| - |
5 |
| -This document simply outlines the release process: |
| 3 | +## Shipping a new version |
6 | 4 |
|
7 | 5 | 1. Ensure you are running on the oldest supported Erlang version
|
8 | 6 |
|
9 |
| -2. Remove all `-dev` extension from versions (see below for all files) |
| 7 | +2. Update version in /VERSION |
| 8 | + |
| 9 | +3. Ensure /CHANGELOG.md is updated, versioned and add the current date |
| 10 | + |
| 11 | +4. Update "Compatibility and Deprecations" if a new OTP version is supported |
| 12 | + |
| 13 | +5. Commit changes above with title "Release vVERSION" and generate a new tag |
| 14 | + |
| 15 | +6. Run `make clean test` to ensure all tests pass from scratch and the CI is green |
| 16 | + |
| 17 | +7. Recompile an existing project (for example, Ecto) to ensure manifests can be upgraded |
10 | 18 |
|
11 |
| -3. Ensure CHANGELOG is updated and add the current date |
| 19 | +8. Push branch and the new tag |
12 | 20 |
|
13 |
| -4. Update "Compatibility and Deprecations" if a new OTP version is supported. If a new `vMAJOR.MINOR`, update **all** tables in the page |
| 21 | +9. Publish new zips with `make zips`, upload `Precompiled.zip` and `Docs.zip` to GitHub Releases, and include SHAs+CHANGELOG |
14 | 22 |
|
15 |
| -5. If a new `vMAJOR.MINOR`, create a new branch "vMAJOR.MINOR" and set `CANONICAL=` in Makefile |
| 23 | +10. Add the release to `elixir.csv` and `_data/elixir-versions.yml` files in `elixir-lang/elixir-lang.github.com` |
16 | 24 |
|
17 |
| -6. Commit changes above with title "Release vVERSION" and generate a new tag |
| 25 | +## Creating a new vMAJOR.MINOR branch |
18 | 26 |
|
19 |
| -7. Run `make clean test` to ensure all tests pass from scratch and the CI is green |
| 27 | +### In the new branch |
20 | 28 |
|
21 |
| -8. Recompile an existing project (for example, Ecto) to ensure manifests can be upgraded |
| 29 | +1. Set `CANONICAL=` in /Makefile |
22 | 30 |
|
23 |
| -9. Push branch and the new tag |
| 31 | +2. Update **all** tables in "Compatibility and Deprecations" |
24 | 32 |
|
25 |
| -10. Publish new zips with `make zips`, upload `Precompiled.zip` and `Docs.zip` to GitHub Releases, and include SHAs+CHANGELOG |
| 33 | +3. Commit "Prepare vMAJOR.MINOR for release" |
26 | 34 |
|
27 |
| -11. Add the release to `elixir.csv` and `_data/elixir-versions.yml` files in `elixir-lang/elixir-lang.github.com` |
| 35 | +### Back in master |
28 | 36 |
|
29 |
| -12. After a new `vMAJOR.MINOR`, move back to master, bump versions, start new CHANGELOG, add `-dev` back and commit "Start vMAJOR.MINOR+1" |
| 37 | +1. Bump /VERSION file |
30 | 38 |
|
31 |
| -## Places where version is mentioned |
| 39 | +2. Start new /CHANGELOG.md |
32 | 40 |
|
33 |
| -* VERSION |
34 |
| -* CHANGELOG.md |
| 41 | +3. Commit "Start vMAJOR.MINOR+1" |
0 commit comments