This document outlines the release process:
-
Ensure you are running on the oldest supported Elixir version (check
.travis.yml
for what is supported) -
Ensure
CHANGELOG.md
is updated and add current date -
Change the version number in
mix.exs
andREADME.md
-
Run
mix test
to ensure all tests pass -
Update
examples
to use new version -
Commit changes above with title "Release vVERSION" and push to GitHub
git add . git commit -m"Release vX.Y.Z" git push origin master
-
Check CI is green
-
Create a release on GitHub and add the CHANGELOG from step #2 (https://github.com/graphql-elixir/graphql/releases/new) using VERSION as the tag and title
-
Publish new hex release with
mix hex.publish
-
Publish hex docs with
mix hex.docs
GraphQL deprecations happen in 3 steps:
-
The feature is soft-deprecated. It means both CHANGELOG and documentation must list the feature as deprecated but no warning is effectively emitted by running the code. There is no requirement to soft-deprecate a feature.
-
The feature is effectively deprecated by emitting warnings on usage. In order to deprecate a feature, the proposed alternative MUST exist for AT LEAST two versions.
-
The feature is removed. This can only happen on major releases.