Releasing a Starter Project
In an effort to communicate completeness and bring some stability to our starter projects, we tag releases. Semantic versioning applies less to starter projects than it does to apps as things like backwards-incompatibility are a non-issue. However, for the sake of consistency we should adhere to keeping close to it.
Versioning Rules
- new starter projects remain untagged until they can at least run locally, good enough for demos and testing
- once a starter project can run for demos, start minor releases at
0.1.0
- once a starter project is used to create a site that is running in production
it gets bumped to
1.0.0
- increment patch numbers if any change is fixing a bug
- increment minor numbers for any feature changes or version bumps of dependencies that are relatively minor
- increment major numbers for any major work done
Tagging
To apply a version, we just use git tags with the project branch slug as a prefix:
git tag account-0.1.0
git push --tags
Update Project Manifest
After creating a new release, update projects.json and
add the url to the archive into the project.json
payload.
{
"version": 1,
"projects": {
"zero": {
"url": "https://github.com/pinax/pinax-starter-projects/zipball/zero",
"process-files": ["webpack.config.js", "PROJECT_README.md"],
"releases": [
"https://api.github.com/repos/pinax/pinax-starter-projects/tarball/zero-1.0.0"
]
}
}
}
By using Semantic Versioning the releases
should sort
easily so that the pinax
command line tool can sort them easily to install the
latest.