Prepare and publish Pake releases with version updates, tests, build checks, and verification after publishing. Covers both full releases with GitHub release notes and fixes published only to npm, the package registry.
中文简介正在准备中。当前显示英语简介。
原文查看原文说明
Prepare, validate, and publish a Pake release. Not for version bumps without release intent.
Verifying workflows and published package versions
包含的文件(1)
SKILL.md5.6 KB
SKILL.md(原文)
安装前可以查看交给 AI 代理的指令内容。
Release Skill
Use this skill when preparing or executing a Pake release. Shared facts live in AGENTS.md and are not repeated here: the four version files and tag format (Version Management), CI jobs, Trusted Publishing, surface separation, and the contributors bot (Release Workflow), and issue closeout (Issue Closeout After a Fix).
Pre-Release
Before changing files or running any formatter/build, freeze the full baseline with git status --short --branch -uall, git diff, and git diff --cached. If the checkout contains unrelated or ambiguously owned changes, prepare the release in an isolated worktree.
Confirm the new version (jq .version package.json; previous tag per AGENTS.md Version Management) and that npm view pake-cli@X.Y.Z version returns 404.
Update all four version files.
pnpm run format, then pnpm test. If pnpm test fails at the suite's pnpm install pake-cli@latest (run in /tmp) against a mirror, re-run once; two consecutive failures are real.
pnpm run cli:build, then pnpm run release:check (version sync, format, vitest, package contents, npm dry-run).
Re-read git status --short --branch -uall, git diff, and git diff --cached. Restore only build-churn paths that were clean in the baseline and provably generated by this run; otherwise repeat in an isolated worktree.
Commit chore: bump version to VX.Y.Z with the rebuilt dist/cli.js staged via git add -f dist/cli.js.
Tag And Verify
git tag -a VX.Y.Z -m "Release VX.Y.Z"
git push origin VX.Y.Z
If the bump push is rejected, rebase onto the contributors bot commit as AGENTS.md describes, push, then tag the last real commit. Never force-push.
gh run list --workflow=release.yml, then poll gh run view <run-id> --json status,conclusion.
gh release view VX.Y.Z --json tagName,url,assets, then fill the title and body per GitHub Release Notes below; CI leaves a bare placeholder.
gh run list --workflow=npm-publish.yml, then npm view pake-cli@X.Y.Z version gitHead dist.tarball --json and npm view pake-cli version for latest.
Record gh run list --workflow=quality-and-test.yml --limit 3 separately.
Confirm the release workflow's Move Major Action Tag job moved the major tag: git ls-remote origin refs/tags/v3 must equal the VX.Y.Z commit (git rev-parse VX.Y.Z^{commit}), since the Action docs pin tw93/Pake@v3. The job runs only after Build CLI succeeds and skips when the tag is not the newest VX.* release, so a re-pushed older tag never moves it back. Never force-push it by hand unless that job failed.
Add the six positive reactions (+1, laugh, heart, hooray, rocket, eyes) to repos/tw93/Pake/releases/<id>/reactions via gh api and read them back. Never -1 or confused.
npm-Only Hotfix (no tag)
For CLI or Rust-template fixes that must reach npm without an app release. The version number is still consumed, so the next V* tag skips over it.
Bump all four version files, pnpm run cli:build, stage the version files and git add -f dist/cli.js.
pnpm run release:check (already includes vitest). For a Rust-template fix, also run the narrow current-platform Rust check.
Commit chore: bump version to VX.Y.Z, push main, record <publish-sha> with git rev-parse HEAD.
Wait for gh run list --workflow=quality-and-test.yml --commit <publish-sha> --limit 3 --json databaseId,headSha,status,conclusion to be completed / success; for Rust-template changes also Full Tauri Build (windows-latest).
gh workflow run npm-publish.yml --ref main -f expected_sha=<publish-sha> -f quality_run_id=<quality-run-id>. If main moved, wait for the new head's own Quality run.
Poll gh run view <run-id> --json headSha,status,conclusion; headSha and the npm gitHead must both equal <publish-sha>.
Issue closeout per AGENTS.md; for a Rust-template fix, tell users to rebuild their app after upgrading.
Skip for a hotfix: no V* tag, no GitHub Release or notes, no reactions, no Docker.
A successful publish followed by a verification timeout does not authorize republishing: npm scans new packages for 5 to 15+ minutes. Re-read the registry until the version appears. Local fallback, only when the trusted path is blocked: npm exec --yes --package=pnpm@10.26.2 -- npm publish --registry=https://registry.npmjs.org.
GitHub Release Notes
Before writing notes, gh release view <previous release> and treat its structure as the hard template, codename included. Title: V<X.Y.Z> <Codename>, one English codename word, optionally one emoji (V3.11.8 Polish, V3.11.0 Evolve 👻); patch releases get a codename too. Source items from git log VPREV..VX.Y.Z, user-facing only.
<div align="center">
<img src="https://raw.githubusercontent.com/tw93/Pake/main/assets/logo.png" alt="Pake Logo" width="120" height="120" style="border-radius:50%" />
<h1 style="margin: 12px 0 6px;">Pake VX.Y.Z</h1>
<p><em>Turn any webpage into a desktop app with one command.</em></p>
</div>
### Changelog
1. ...
### 更新日志
1. ...
Special thanks to @user for the reports and PRs behind this release. If Pake helps you, please consider giving it a star and recommending it to your friends.
> https://github.com/tw93/Pake
Turn a website or local HTML build into a desktop app with Pake. Guides app naming, icons, unique app identifiers, proxy settings, and build verification, including checking the paths of generated installers or bundles.