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
-
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 -
Ensure minimum supported Hex works with new release (check Mix.Tasks.Local.Hex)
-
Push branch and the new tag
-
Publish new docs with
make publish_docs
, copy docs todocs/stable
if appropriate, and push to GitHub Pages -
Publish new zips with
make publish_zips
, uploadPrecompiled.zip
andDocs.zip
to GitHub Releases -
Add the release to
elixir.csv
file inelixir-lang/elixir-lang.github.com
-
Build and push standalone Mix with
make publish_mix
(requires AWS credentials)
-
Create a new branch "vMAJOR.MINOR"
-
Move docs generation to
docs/vMAJOR.MINOR
and copy them fromdocs/stable
-
In master, bump versions, start new CHANGELOG, add
-dev
back and commit "Start vVERSION+1" -
make release_docs
and push it toelixir-lang/docs
- VERSION (make sure there is no newline in this file)
- CHANGELOG.md
- src/elixir.app.src (not lib/elixir/src/elixir.app.src)