Maintaining
Steps for updating and releasing changes to Primer and it’s site.
Versioning
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 and milestones
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.
Releasing
Have a new version to release? Hell yeah, let’s do it.
- Bump the version numbers in
_config.yml
for our docs and package.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!