Ensure you are running on the oldest supported Erlang version
Update version in /VERSION
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" and generate a new tag
make clean test to ensure all tests pass from scratch and the CI is green
Recompile an existing project (for example, Ecto) to ensure manifests can be upgraded
Push branch and the new tag
Publish new zips with
make zips, upload
Docs.zip to GitHub Releases, and include SHAs+CHANGELOG
Add the release to
elixir.csv (all releases), update
erlang.csv to the precompiled OTP version, and
_data/elixir-versions.yml (except for RCs) files in
Send an e-mail to email@example.com with title "Elixir vVERSION released". The body should be a link to the Release page on GitHub and the checksums. If it is a security release, prefix the title with the
CANONICAL= in /Makefile
Update tables in /SECURITY.md and "Compatibility and Deprecations"
Commit "Prepare vMAJOR.MINOR for release"
Bump /VERSION file
Start new /CHANGELOG.md
Update tables in /SECURITY.md in "Compatibility and Deprecations"
Commit "Start vMAJOR.MINOR+1"