marked/RELEASE.md

24 lines
1.6 KiB
Markdown
Raw Normal View History

2018-02-19 21:13:29 +00:00
# Releasing Marked
2018-02-25 23:02:04 +00:00
- [ ] See [contributing](https://github.com/markedjs/marked/blob/master/CONTRIBUTING.md)
2018-02-25 23:56:03 +00:00
- [ ] Create release branch from `master` (`release-x.y.z`)
- [ ] Submit PR with minimal name: Release x.y.z
- [ ] Complete PR checklists
2018-02-25 23:02:04 +00:00
## Overall strategy
2018-02-19 21:30:38 +00:00
**Master is always shippable:** We try to merge PRs in such a way that `master` is the only branch to really be concerned about *and* `master` can always be released. This allows smoother flow between new fetures, bug fixes, and so on. (Almost a continuous deployment setup, without automation.)
2018-02-19 21:13:29 +00:00
## Versioning
2018-02-19 21:35:06 +00:00
We follow [semantic versioning](https://semver.org) where the following sequence is true `[major].[minor].[patch]` (further, while in beta, you may see this `0.[major|minor].[minor|patch]`); therefore, consider the following implications of the release you are preparing:
2018-02-19 21:13:29 +00:00
2018-02-25 22:58:24 +00:00
1. **Major:** There is at least one change not deemed backward compatible.
2. **Minor:** There is at least one new feature added to the release.
3. **Patch:** No breaking changes, no new features.
What to expect while Marked is a zero-major (0.x.y):
1. The major will remain at zero; thereby, alerting consumers to the potentially volatile nature of the package.
2. The minor will tend to be more analagous to a `major` release. For example, we plan to release `0.4.0` once we have fixed most, if not all, known issues related to the CommonMark and GFM specifications because the architecture changes planned during `0.4.0` will most likely introduce breaking changes.
2018-02-25 23:02:04 +00:00
3. The patch will tend to be more analagous to a `minor` release.