Release FrameSeq#
FrameSeq can publish both npm packages from a version tag through GitHub Actions and npm Trusted Publishing. The workflow uses short-lived OpenID Connect credentials, so the repository does not need a long-lived npm write token.
One-time npm configuration#
Configure a Trusted Publisher separately for both packages:
@pride7/frameseqcreate-frameseq
On each package's npm Settings → Trusted Publisher page, use:
Provider: GitHub Actions
Organization or user: pride7
Repository: frameseq
Workflow filename: publish.yml
Environment: leave empty
Allowed action: npm publish
The workflow is stored at .github/workflows/publish.yml. Both packages may trust the same workflow file.
Prepare a release#
Update all four version references:
- the root
package.jsonversion; - the root
package-lock.jsonpackage versions; packages/create-frameseq/package.json;FRAMESEQ_VERSIONinpackages/create-frameseq/index.mjs.
The standalone StackBlitz project's @pride7/frameseq dependency in examples/playground/package.json must also match the new framework version. Move the relevant Changelog entries from Unreleased into a dated version section.
Run the local gate:
npm run release:tag-check -- v0.16.0
npm run release:check
Commit and push the release changes before creating the tag.
Publish from a tag#
Create a tag that exactly matches the root package version:
git tag -a v0.16.0 -m "FrameSeq 0.16.0"
git push origin v0.16.0
The workflow then:
- verifies that the tag, framework version, creator template, and playground dependency agree;
- runs the complete
release:checksuite; - publishes
@pride7/frameseqandcreate-frameseqin separate jobs.
The two publish jobs are independent. If one transiently fails, rerun only its failed job from GitHub Actions rather than creating another tag.
Verify the registry#
npm view @pride7/frameseq version
npm view create-frameseq version
Do not move or recreate a published version tag. npm package name-and-version pairs cannot be reused.