ワンクリックで
release
Release the openapi-hs package to Hackage following PVP
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Release the openapi-hs package to Hackage following PVP
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | release |
| description | Release the openapi-hs package to Hackage following PVP |
| argument-hint | [major|minor|patch] |
| disable-model-invocation | true |
| allowed-tools | Read, Bash, Edit, Glob, Grep, Write, AskUserQuestion |
Release the openapi-hs package to Hackage following the Haskell PVP.
This is a single-package repository: openapi-hs.cabal at the repo root.
The example executable and the spec test-suite are components of that same
package — they ride along inside the sdist and are not published separately.
Nothing else is uploaded to Hackage.
The Haskell PVP version format is A.B.C.D:
A.B is the major version — bump for breaking API changes (removed or
renamed exports, changed types, changed semantics).C is the minor version — bump for backwards-compatible API additions
(new exports, new modules, new instances).D is the patch version — bump for bug fixes, docs, internal-only
changes, and performance improvements.A single git tag — the bare version number (e.g. 4.0.0), with no v
prefix — marks each release. This matches the fork's 3.x/4.x convention; the
older v* tags predate the fork and are not the pattern to follow.
$ARGUMENTS is optional:
major, minor, or patch — forces the bump level.openapi-hs.cabal (the version: field).git tag --list | grep -E '^[0-9]' | sort -V | tail -1.git log --oneline <last-tag>..HEAD to list commits since the last
release. (If that tag was never created — e.g. the current cabal version was
bumped in a prep commit but never tagged — use the previous released tag.)Present a summary showing:
Rules:
$ARGUMENTS is major, minor, or patch, use that bump level.!/BREAKING CHANGE →
majorIncrement the version (A.B.C.D):
B, reset C and D to 0 (e.g. 4.0.0 → 4.1.0,
written as 4.1.0 or 4.1.0.0 to match the existing field's arity).C, reset D to 0 (e.g. 4.0.0 → 4.0.1).D (e.g. 4.0.0 → 4.0.0.1).Keep the version arity consistent with how the cabal file currently writes it (the current
version:is4.0.0). PVP treats a trailing.0as equal, so4.1.0and4.1.0.0are equivalent — just be consistent across the cabal file, the tag, and the changelog.
openapi-hs.cabal to set the new version:.CHANGELOG.md (repo root) uses a header-underline format with no dates and
no "Unreleased" section — each entry is the version on its own line, an
underline of dashes, then a bullet list. Match that exactly. For example:
4.1.0
-----
- Added foo to `Data.OpenApi.Bar`.
- Fixed quux roundtripping [#NN](https://github.com/shinzui/openapi-hs/pull/NN).
4.0.0
-----
...
**Breaking:**) when the bump is major,
then new features, then fixes, then other changes. Only include what applies.Show the user all changes (the version bump and the changelog entry) for review before committing.
Run these and stop on the first failure — do not proceed to commit or publish if any gate fails:
nix fmt — format with treefmt (fourmolu + cabal-fmt + nixpkgs-fmt). Run
this before nix flake check, since the treefmt check will fail on
unformatted files.nix flake check — runs the treefmt and pre-commit gates.
nix evaluates the git tree, so any newly created/edited files must be
git add-ed before they are visible to the check.checks / devShells / formatter (no
packages.default), so nix flake check is the right gate here.cabal build all — verify the library, the example executable, and the
spec test-suite all compile.cabal test — run the spec suite; it must pass.openapi-hs.cabal and CHANGELOG.md.chore(release): <new-version>. The body should summarize what's in the
release and justify the chosen bump.v):
git tag -a <version> -m "Release <version>".git push && git push --tags.cabal check is a mandatory gate here — run it first and stop on failure.
cabal check — verify there are no packaging issues.cabal sdist — build the source distribution tarball.cabal upload --publish <tarball-path> — publish the sdist to Hackage.
(Run cabal upload <tarball-path> first for a candidate dry-run if you want
to inspect it on Hackage before the irreversible --publish.)cabal haddock --haddock-for-hackage --haddock-hyperlink-source --haddock-quickjump
then cabal upload --publish --documentation <docs-tarball-path> — publish
the Haddock documentation.https://hackage.haskell.org/package/openapi-hs-<version>.After the Hackage upload succeeds, create a GitHub release for the tag:
gh release create <version> --title "<version>" --notes "$(cat <<'EOF'
## Hackage
https://hackage.haskell.org/package/openapi-hs-<version>
## What's Changed
<the new section's bullets from CHANGELOG.md>
EOF
)"
CHANGELOG.md section for the notes body.nix fmt before committing so nix flake check passes.nix flake check, cabal build all, cabal test, and
cabal check. If any fails, stop and report the error rather than
continuing.cabal upload --publish is irreversible —
confirm the tarball and version before running it.v prefix), annotated.