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 current date
-
Update "Compatibility and Deprecations" if a new OTP version is supported. If a new
vMAJOR.MINOR
, replace "master" with "vVERSION" in the "Deprecations" section -
If a new
vMAJOR.MINOR
, create a new branch "vMAJOR.MINOR" and setCANONICAL=
in Makefile -
Add an entry for the new version to the OTP compatibility table in the "Compatibility and Deprecations" page
-
Commit changes above with title "Release vVERSION" and generate 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 -
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
- lib/elixir/src/elixir.app.src