EDS uses SemVer semantic versioning to keep track of ongoing changes to the product. The three types of versions are:
- Major (X.y.z) - Major versions contain breaking changes to Education developers' builds.
- Minor (x.Y.z) - Minor versions add new features or deprecate existing features without breaking changes.
- Patch (x.y.Z) - Patch versions fix defects or optimize existing features without breaking changes.
Look to this helpful document from the Morning Star design system for detailed guidance on versioning.
Note: We are currently using a modified form of semver where:
- Breaking changes update the minor version
- All other changes (new features, fixes, etc.) update the patch version
Once we publish major version 1, we will begin following conventional semver.
Before the first time you publish, make sure to:
- set up Two Factor Authentication for your npm account
- run
npm login
in your terminal to generate an access token for publishing
- Confirm that all checks are green on CI.
- Run
git checkout main
. - Run
yarn release
# or, if there are breaking changes
yarn release:breaking
We use standard-version to increment the version number in package.json
, create a git tag for the new release, and update CHANGELOG.md
based on the commit log. The package is not published, yet.
- Run the last command output by
standard-version
. It will look something like:
git push --follow-tags origin <branch> && npm publish
- Communicate the changes via all appropriate channels. <TODO: determine communication strategy for new release>