This will eventually be fleshed out so that anyone should be able to pick up and maintain Sorcery by following this guide. It will provide step-by-step guides for common tasks such as releasing new versions, as well as explain how to triage issues and keep the CHANGELOG up-to-date.
TODO
Sorcery uses semantic versioning which can be found at: https://semver.org/
All versions of Sorcery should follow this format: MAJOR.MINOR.PATCH
Where:
- MAJOR - Includes backwards incompatible changes.
- MINOR - Introduces new functionality but is fully backwards compatible.
- PATCH - Fixes errors in existing functionality (must be backwards compatible).
The changelog and git tags should use vMAJOR.MINOR.PATCH
to indicate that the
number represents a version of Sorcery. For example, 1.0.0
would become
v1.0.0
.
When it's time to release a new version, you'll want to ensure all the changes you need are on the master branch and that there is a passing build. Then follow this checklist and prepare a release commit:
NOTE: X.Y.Z
and vX.Y.Z
are given as examples, and should be replaced with
whatever version you are releasing. See: Version Naming
- Update CHANGELOG.md
- Check for any changes that have been included since the last release that
are not reflected in the changelog. Add any missing entries to the
HEAD
section. - Check the changes in
HEAD
to determine what version increment is appropriate. See Version Naming if unsure. - Replace
## HEAD
with## vX.Y.Z
and create a new## HEAD
section above the latest version.
- Check for any changes that have been included since the last release that
are not reflected in the changelog. Add any missing entries to the
- Update Gem Version
- Update
./lib/sorcery/version.rb
to 'X.Y.Z'
- Update
- Stage your changes and create a commit
git add -A
git commit -m "Release vX.Y.Z"
- TODO: Gem Release (WIP)
cd <dir>
gem build
gem push <filename>
- TODO: Version tagging
- Release new version via github interface