원클릭으로
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.