blob: c71db6e332ff2da237d1caaeca49abb000e8d86e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# Release process
## Shipping a new version
1. Ensure you are running on the oldest supported Erlang version
2. Update version in /VERSION, bin/elixir and bin/elixir.bat
3. Ensure /CHANGELOG.md is updated, versioned and add the current date
4. Update "Compatibility and Deprecations" if a new OTP version is supported
5. Commit changes above with title "Release vVERSION", generate a new tag, and push it
6. Wait until GitHub Actions publish artifacts to the draft release and the CI is green
7. Copy the relevant bits from /CHANGELOG.md to the GitHub release and publish it
8. Add the release to `elixir.csv` with the minimum supported OTP version (all releases), update `erlang.csv` to the latest supported OTP version, and `_data/elixir-versions.yml` (except for RCs) files in `elixir-lang/elixir-lang.github.com`
## Creating a new vMAJOR.MINOR branch
### In the new branch
1. Set `CANONICAL=` in /Makefile
2. Update tables in /SECURITY.md and "Compatibility and Deprecations"
3. Commit "Branch out vMAJOR.MINOR"
### Back in main
1. Bump /VERSION file, bin/elixir and bin/elixir.bat
2. Start new /CHANGELOG.md
3. Update tables in /SECURITY.md and in "Compatibility and Deprecations"
4. Commit "Start vMAJOR.MINOR+1"
## Changing supported Erlang/OTP versions
1. Update the table in Compatibility and Deprecations
2. Update `otp_release` checks in `/Makefile` and `/lib/elixir/src/elixir.erl`
3. Update relevant CI workflows in `/.github/workflows/*.yml`
4. Remove `otp_release` version checks that are no longer needed
|