This document simply outlines the release process:
-
Ensure you are running on the oldest supported Erlang version
-
Remove all
-dev
extension from versions (see below for all files) -
Ensure CHANGELOG is updated and add the current date
-
Update "Compatibility and Deprecations" if a new OTP version is supported. If a new
vMAJOR.MINOR
, update all tables in the page -
If a new
vMAJOR.MINOR
, create a new branch "vMAJOR.MINOR" and setCANONICAL=
in Makefile -
Commit changes above with title "Release vVERSION" and generate a new tag
-
Run
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
, uploadPrecompiled.zip
andDocs.zip
to GitHub Releases, and include SHAs+CHANGELOG -
Add the release to
elixir.csv
and_data/elixir-versions.yml
files inelixir-lang/elixir-lang.github.com
-
After a new
vMAJOR.MINOR
, move back to master, bump versions, start new CHANGELOG, add-dev
back and commit "Start vMAJOR.MINOR+1"
- VERSION
- CHANGELOG.md