forked from Sorcery/sorcery
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Backport MAINTAINING.md from sorcery-rework
- Loading branch information
Showing
1 changed file
with
64 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
# Maintaining Sorcery | ||
|
||
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. | ||
|
||
## Table of Contents | ||
|
||
1. [Merging Pull Requests](#merging-pull-requests) | ||
1. [Versioning](#versioning) | ||
1. [Version Naming](#version-naming) | ||
1. [Releasing a New Version](#releasing-a-new-version) | ||
|
||
## Merging Pull Requests | ||
|
||
TODO | ||
|
||
## Versioning | ||
|
||
### Version Naming | ||
|
||
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`. | ||
|
||
### Releasing a New Version | ||
|
||
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](#version-naming) | ||
|
||
1. Update CHANGELOG.md | ||
1. 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. | ||
1. Check the changes in `HEAD` to determine what version increment is | ||
appropriate. See [Version Naming](#version-naming) if unsure. | ||
1. Replace `## HEAD` with `## vX.Y.Z` and create a new `## HEAD` section | ||
above the latest version. | ||
1. Update Gem Version | ||
1. Update `./lib/sorcery/version.rb` to 'X.Y.Z' | ||
1. Stage your changes and create a commit | ||
1. `git add -A` | ||
1. `git commit -m "Release vX.Y.Z"` | ||
1. TODO: Gem Release (WIP) | ||
1. `cd <dir>` | ||
1. `gem build` | ||
1. `gem push <filename>` | ||
1. TODO: Version tagging | ||
1. Release new version via github interface |