You should complete a few checks before publishing a branch for release:
-
Complete the normal PR review process with quire team members and run
npm auditin the package workspace to be released (for examplenpm -w packages/cli auditfor the CLI package). -
Update the appropriate package
CHANGELOG.mdand commit the changes to the PR.
After review steps have been approved, release the package in question by following a git tagging flow:
-
Create a git tag on a branch appropriate for the package and semantic version of the release. Ensure that the version has not been published by running
npm info(for examplenpm info @thegetty/quire-cli@0.999.0-rc.50should error).Release candidates can be tagged from any branch but only tags on
maincan publish tolatestand carry prime (ie, non-rc) versions.If your branch needs to be published to both packages use two tags.
-
Update the package version in the repo with
npm versionto match the tag (for examplenpm version -w packages/cli version 0.999.0-rc.50) and commit the change. -
For the tag name, concatenate with an
@:-
The package name to be released,
@thegetty/quire-clior@thegetty/quire-11ty. -
The release's semantic version with distribution tag, eg
0.9.5-rc.3,1.0.1, etc.
The version tail (nothing or
-rc.3) uses npm's "distribution tag" to route versions to the release candidate or latest channels. For example,@thegetty/quire-cli@v1.0.1will publish to public distribution while@thegetty/quire-cli@v.1.0.1-rc.1will publish a release candidate version. See Distribution Tags below. -
-
Copy this release's changelog entry into the tag's message. These will become the releases' draft notes. Please use markdown, links to relevant PRs, commits, and files to orient future readers.
Note that not all clients support multiline git tag messages so it may be necessary to use another client (or
gitdirectly). Tags and releases with multiline messages can also be created directly in the GitHub UI, and messages can be edited there after publishing. -
Push the tag to
originand wait for tests to finish using quire's CI/CD pipeline to verify: https://app.circleci.com/pipelines/github/thegetty/quire.If individual tests fail for transient reasons (eg, github downtime, dockerhub slowness, etc), Circle's "Re-run from failed" option will help only re-run the failing sections of a test run.
-
After testing and release pipeilne succeeds, verify releases were published to npm and GitHub:
quire-clion npm: https://www.npmjs.com/package/@thegetty/quire-cli?activeTab=versionsquire-11tyon npm: https://www.npmjs.com/package/@thegetty/quire-11ty?activeTab=versions- Both packages on GitHub: https://github.com/thegetty/quire/releases
The npm packages can also be verified with
npm info @thegetty/quire-cliandnpm info @thegetty/quire-11ty.
Quire uses two distribution tags on npm:
rc: Release candidate channel, releases are only automatically pushed torc.latest: Main public release channel.