- Ensure
NEWS.md
captures all user-visible changes in prose that are user-relevant. Ideally, the news file would conform to the Keep a Changelog specification, but ours do not at this time, so adhere to the prevailing pattern. - Choose a new release number based on the principles of Semantic Versioning and whether the news includes breaking changes (major number), added features (minor number), or just big fixes (patch number). Do not use 0.0.x versions, only x.y.z or 0.x.y. Versions 0.0.x can't be patched without changes to the dependee. Major version bumps should be avoided to the extent that is possible if there are any third-party users. A new package name is often better than a major version bump.
- Update the title of the first entry in
NEWS.md
to include the new version number and the timestamp. - Update
package.json
version. - Update every other
package.json
that takes a dependency on the changed package. - Create a version commit titled "chore($PACKAGENAME): v$VERSION"
- Use
npm pack
andtar tf "$PACKAGENAME-v$VERSION.tgz"
to spot-check whether the generated archive contains only and all relevant files. We now have a lint rule that ensures thatfiles
inpackage.json
includes at leastsrc
,dist
, and allLICENSE*
files, and we can remove this step as our confidence grows in our release mechanisms. - If you have added an
index.d.ts
, you may need to explicitly note this infiles
as it is not checked yet. npm publish
to publish the version. Being a member of the project or organization and having two-factor authentication may be necessary.- Only after a successful round of validation and publication, create
a tag
$PACKAGENAME-v$VERSION
withgit tag -a "$TAG" -m "$TAG"
. git push origin master "$TAG"
.- Update version in
package.json
by suffixing+1-dev
to the release version. - Add a
Next release
* No changes yet
section to the head ofNEWS.md
. git add package.json NEWS.md
- Commit with the message
chore($PACKAGENAME): Back to development with $VERSION+1-dev
.