Release a pg_ripple version. Use when: tagging a release, preparing release notes, running the release checklist, creating a GitHub release. Covers pre-release verification, changelog finalization, GitHub release creation.
This skill runs end-to-end without pausing for approval once invoked. The agent:
fix-ci skillgit tag command for the user to runThe only step the agent does NOT perform is git tag. Tagging is a manual, irreversible act by the maintainer. Everything leading up to it is automated.
When to pause (genuine blockers only):
Always read these before starting a release:
Run every check in the RELEASE.md pre-release checklist:
cargo fmt --all -- --check
cargo clippy --features pg18 -- -D warnings
cargo pgrx test pg18
cargo pgrx regress pg18 --postgresql-conf "allow_system_table_mods=on"
If any check fails, fix it autonomously using the same self-healing loop as in the implement-version skill. Do not stop and ask the user — these are mechanical failures. Load the fix-ci skill if CI-specific patterns appear.
All four must pass with zero warnings and zero failures before proceeding.
grep '^version' Cargo.toml
grep 'default_version' pg_ripple.control
Both must show the target version (e.g. 0.2.0). If they don't match, fix the discrepancy and commit before continuing.
Open the target version section in ROADMAP.md and verify each exit criterion explicitly. List them with pass/fail in the final summary.
# If there's a previous tag:
git log --oneline v0.X.(Y-1)..HEAD
# If no previous tag exists:
git log --oneline
Follow the style in RELEASE.md § Changelog Style:
<details> collapsible block for developersMove the [Unreleased] content under the new version heading. Reset [Unreleased] to point at the next milestone.
ls sql/pg_ripple--*.sql | sort
There must be a sql/pg_ripple--X.(Y-1).Z--X.Y.Z.sql file. If it is missing, create it now (see AGENTS.md § Extension Versioning). This is a hard blocker — PostgreSQL cannot upgrade without it.
git add CHANGELOG.md
git commit -m "docs: finalize release notes for vX.Y.Z"
git push origin main
If other files were touched (migration script, version bumps), include them in the same commit.
gh run list --limit 3
Poll until the run for the HEAD commit has a final status. If it fails, immediately load the fix-ci skill and resolve the failure. Push the fix and wait again. Repeat until CI is green.
Do not proceed to step 8 while CI is still running or red.
When CI is green, output the exact commands for the maintainer to run:
git tag -a vX.Y.Z -m "Release vX.Y.Z — <version name from ROADMAP>"
git push origin vX.Y.Z
Explain that pushing the tag triggers .github/workflows/release.yml, which runs the full test suite on the tagged commit and creates the GitHub release automatically using the CHANGELOG entry.
create_file--postgresql-conf "allow_system_table_mods=on" — the pg_ripple schema has a pg_ prefix that PostgreSQL restricts by defaultsql/pg_ripple--prev--next.sql in the repoPushing the tag triggers .github/workflows/release.yml, which:
CHANGELOG.mdNo manual gh release create step is needed. Monitor the workflow run:
gh run list --limit 5
gh run view <run-id>
create_file--postgresql-conf "allow_system_table_mods=on" — the pg_ripple schema has a pg_ prefix that PostgreSQL restricts by default