Releasing
This document describes the current GitHub release flow. It does not publish the package to npm.
Before release
Use a clean checkout of the intended release commit. Make sure the branch contains all required changes and CI passes.
Choose a Semantic Versioning number in X.Y.Z form. The Git tag must be vX.Y.Z.
Prepare and tag the release
Update
versioninpackage.jsontoX.Y.Z.Move the relevant entries from
CHANGELOG.mdunder a newX.Y.Zrelease heading.Add the release date and comparison links to
CHANGELOG.md.Install locked dependencies with
pnpm install --frozen-lockfile.Run the full verification suite.
pnpm verifyReview the package contents in the
npm pack --dry-runoutput.Commit the version and changelog changes.
git add package.json CHANGELOG.md git commit -m "chore: release vX.Y.Z"Create an annotated tag on that commit.
git tag -a vX.Y.Z -m "vX.Y.Z"Push the release commit to the main branch.
git push origin mainPush the tag.
git push origin vX.Y.Z
Do not move or replace a published release tag. Prepare a new patch release when a published tag contains a defect.
GitHub release workflow
A pushed v* tag starts .github/workflows/release.yml. The workflow performs these actions:
- Install dependencies from
pnpm-lock.yamlwith the frozen-lockfile option. - Verify that
vX.Y.Zmatches thepackage.jsonversionX.Y.Z. - Run
pnpm verify. - Create the package tarball with
npm pack. - Generate GitHub release notes.
- Create or update the GitHub Release for the tag.
- Attach the
.tgzpackage tarball to the GitHub Release.
If the tag and package version differ, the workflow stops before packaging.
After the workflow finishes, inspect the GitHub Release. Confirm that the tag, notes, and attached tarball are correct.
npm publication
npm publication is a separate future step. The GitHub release workflow does not run npm publish.
Do not document or announce npm installation until both requirements are complete:
- The
@jeecabs/micro-managerpackage exists under the intended npm organization. - The repository has a configured npm trusted publisher or an approved publication token.
Until then, users install from GitHub:
pi install git:github.com/Jeecabs/micro-manager