Release workflow
TikZJax release automation is tag-driven.
The version in package.json is the release version source used by the GitHub workflows.
Before committing
Run the reproducible install and full checked build:
yarn install --immutable
yarn bfc
When documentation integration matters, also run:
yarn vendor:check
yarn dev
Set the version
Update package.json to the target version, for example:
1.x.y
The release tag must then be exactly:
v1.x.y
Both the GitHub Release workflow and the npm publication workflow reject a tag that does not match package.json with the leading v.
Commit and push
Typical sequence:
git add .
git commit -m "Release 1.x.y"
git push
Create and push the tag
git tag v1.x.y
git push origin v1.x.y
Pushing the tag triggers two independent workflows.
GitHub Release
.github/workflows/release.yml:
- verifies that the tag matches
package.json; - creates release notes from the tagged commit;
- creates the GitHub Release.
npm publication
.github/workflows/npm-publish.yml:
- verifies the tag/version match;
- checks out the known-good
rod2ik/cdnruntime; - configures the pinned Node/npm/Yarn toolchain;
- installs TeX Live dependencies;
- runs
yarn install --immutable; - prepares required runtime assets;
- runs
yarn bfc; - replaces the TeX runtime in
dist/with the known-good CDN runtime; - verifies the npm package contents;
- publishes
@rod2ik/tikzjaxto npm.
This workflow deliberately protects publication from accidentally packaging an incomplete local runtime.
CDN deployment
After the release state has been validated, the existing helper is:
yarn deploy:cdn "commit message"
Keep the npm package, GitHub Release, CDN runtime, and documentation version aligned when completing a release.
GitHub Pages
The documentation workflow is separate from npm publication. At present, the published Pages site loads the released npm/jsDelivr TikZJax assets, while local yarn dev loads the generated local vendor.