一键导入
release
Release all packages to Hackage following PVP
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Release all packages to Hackage following PVP
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | release |
| description | Release all packages to Hackage following PVP |
| argument-hint | [major|minor|patch] |
| disable-model-invocation | true |
| allowed-tools | Read, Bash, Edit, Glob, Grep, Write, AskUserQuestion |
Release all packages from this multi-package repository to Hackage using a single shared version.
All packages share the same version number and are released together. A single git tag v<version> marks each release.
The packages MUST be published in this order due to inter-package dependencies:
pgmq-bench is NOT released to Hackage (it is a benchmark suite).
$ARGUMENTS is optional:
major, minor, or patch — specifies the bump level.cabal file (they all share the same version).v* to identify the last release point.git log --oneline <last-tag>..HEAD to list commits since the last release.Present a summary showing:
The Haskell PVP version format is A.B.C.D:
A.B is the major version — bump for breaking API changes (removed/renamed exports, changed types, changed semantics)C is the minor version — bump for backwards-compatible API additions (new exports, new modules, new type class instances)D is the patch version — bump for bug fixes, documentation, internal-only changes, performance improvementsRules:
$ARGUMENTS is major, minor, or patch, use that bump level.Increment the version:
B, reset C and D to 0 (e.g., 0.2.0.1 → 0.3.0.0)C, reset D to 0 (e.g., 0.2.0.1 → 0.2.1.0)D (e.g., 0.2.0.1 → 0.2.0.2)pgmq-core/pgmq-core.cabalpgmq-hasql/pgmq-hasql.cabalpgmq-migration/pgmq-migration.cabalpgmq-effectful/pgmq-effectful.cabalpgmq-config/pgmq-config.cabalpgmq-core dependency bound in pgmq-hasql/pgmq-hasql.cabal, pgmq-effectful/pgmq-effectful.cabal, and pgmq-config/pgmq-config.cabal.pgmq-hasql dependency bound in pgmq-effectful/pgmq-effectful.cabal and pgmq-config/pgmq-config.cabal.pgmq-effectful dependency bound in pgmq-config/pgmq-config.cabal.CHANGELOG.md, add a new section for the new version above any previous entries. Use today's date in YYYY-MM-DD format.CHANGELOG.md.Show the user ALL changes (version bumps, dependency bounds, changelog entries) for review before committing.
nix fmt to ensure code is properly formatted.cabal build all to verify cabal build succeeds.nix build to verify nix build succeeds.
git add-ed before nix build will see them, since nix uses the git tree..cabal and CHANGELOG.md files.Release <new-version>git tag -a v<version> -m "Release <version>"git push && git push --tagsFor EACH package, in dependency order (pgmq-core → pgmq-hasql → pgmq-migration → pgmq-effectful → pgmq-config):
cd <pkg-dir>cabal check to verify no packaging issues.cabal test <pkg> to ensure tests pass (skip for packages without test suites).cabal sdist and then cabal upload --publish <tarball-path> to publish the source distribution.cabal haddock --haddock-for-hackage --haddock-hyperlink-source --haddock-quickjump and then cabal upload --publish --documentation <docs-tarball-path> to publish documentation.The Hackage URLs follow the pattern: https://hackage.haskell.org/package/<pkg>-<version>
After all packages are published, present a summary:
| Package | Version | Hackage URL |
|---|---|---|
| pgmq-core | X.Y.Z.W | https://hackage.haskell.org/package/pgmq-core-X.Y.Z.W |
| pgmq-hasql | X.Y.Z.W | https://hackage.haskell.org/package/pgmq-hasql-X.Y.Z.W |
| pgmq-migration | X.Y.Z.W | https://hackage.haskell.org/package/pgmq-migration-X.Y.Z.W |
| pgmq-effectful | X.Y.Z.W | https://hackage.haskell.org/package/pgmq-effectful-X.Y.Z.W |
| pgmq-config | X.Y.Z.W | https://hackage.haskell.org/package/pgmq-config-X.Y.Z.W |
cabal check, tests, or nix build.nix build), stop and report the error rather than continuing.nix fmt before committing to ensure proper formatting.