-
Ensure you are running on the oldest supported Erlang version
-
Update version in /VERSION, bin/elixir and bin/elixir.bat
-
Ensure /CHANGELOG.md is updated, versioned and add the current date
-
Update "Compatibility and Deprecations" if a new OTP version is supported
-
Commit changes above with title "Release vVERSION", generate a new tag, and push it
-
Wait until GitHub Actions publish artifacts to the draft release and the CI is green
-
Copy the relevant bits from /CHANGELOG.md to the GitHub release and publish it
-
Add the release to
elixir.csv
with the minimum supported OTP version (all releases), updateerlang.csv
to the latest supported OTP version, and_data/elixir-versions.yml
(except for RCs) files inelixir-lang/elixir-lang.github.com
-
Set
CANONICAL=
in /Makefile -
Update tables in /SECURITY.md and "Compatibility and Deprecations"
-
Commit "Branch out vMAJOR.MINOR"
-
Bump /VERSION file, bin/elixir and bin/elixir.bat
-
Start new /CHANGELOG.md
-
Update tables in /SECURITY.md and in "Compatibility and Deprecations"
-
Commit "Start vMAJOR.MINOR+1"
-
Update the table in Compatibility and Deprecations
-
Update
otp_release
checks in /Makefile and/lib/elixir/src/elixir.erl
-
Update CI workflows in
/.cirrus.yml
,/.github/workflows/ci.yml
, and/.github/workflows/releases.yml
-
Remove
otp_release
version checks that are no longer needed