Steps for updating and releasing changes to Primer and it's site.
Primer follows the semantic versioning approach:
- Bug fixes and docs updates are patch releases, so
1.0.x
. - New additions are minor updates, so
1.x.x
. - Deleting or rewriting anything are major updates, so
x.x.x
.
Changelogs are handled with dedicated tracking issues (see example). When starting work on a new release:
- Open a new milestone.
- Open a new tracking issue and immediately lock it. (No comments are needed, ship lists are just for us.)
- As you close issues and merge pull requests, add a link to those threads to the tracking issue.
When the release and milestone are about ready to ship, move on the releasing flow.
Have a new version to release? Hell yeah, let's do it.
- Bump the version numbers in
_config.yml
for our docs andpackage.json
for dependency management. - Run
$ grunt
to generate the latest compiled CSS and Parker stats. - Recompile Jekyll for the latest docs changes.
- Punt any remaining open issues and PRs on the milestone to the next milestone, then close that milestone.
- Head to https://github.com/primer/primer/releases/ and create a new release. Title it
vX.X.X
and post the changelog to the body. - Run
$ grunt publish
to push the latest docs and CSS changes to http://primercss.io. - Rejoice!