Repository navigation
Prepares uxid 1.0.0 - #10
Merged
Merged
Conversation
The release tarball is a git archive of the tag, and with no export-ignore line it would ship the tracker files, the agent instructions and settings, the CI and release workflows, the gate's tool pins, Docker image and lint settings, and the changelog fragments beside the extension. None of them is needed to install the extension or to run its tests. The tarball now holds the control file, the extension script, the Makefile, test/ (so make installcheck runs from it), the corpus and its check, docs/, LICENSE, README.md and CHANGELOG.md. export-ignore changes only what git archive writes; a checkout, and so CI and the release workflow's verify job, still has every file. Refs: uxpg-fot
Promotes the changelog fragments into a 1.0.0 section of CHANGELOG.md and deletes them. The section opens with what the first release covers: the functions, the uxid domain, the SQL and PL/pgSQL build with no dependency, PostgreSQL 14 and later with CI on 14 to 18, the three install paths, the random source, the refusal SQLSTATEs and the corpus tag. Every function name in it is one the surface test reads from the catalog. The release workflow takes this section as the release notes. The version needs no bump: uxid.control, uxid_version() and the script's file name read 1.0.0 since the scaffold, and no version was released before. Refs: uxpg-e74
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The release prep for uxid 1.0.0, the first release of the extension, as a GitHub release. Two commits: the tarball's contents first, then the changelog promotion.
Bead: uxpg-e74 (with uxpg-fot folded in as the first commit).
The release tarball's contents
The release workflow makes
uxid-pg-<version>.tar.gzwithgit archiveof the tag, and.gitattributescarried noexport-ignoreline, so the tarball would have shipped the repository's own tooling. It now marks these pathsexport-ignore:.beads/(the tracker),.claude/(the agent manifest and settings),AGENTS.mdandCLAUDE.md(the agent instructions).github/(the CI and release workflows)mise.toml(the gate's tool pins),.sqlfluff(the lint settings) anddocker/(the gate's image and scripts): no install path in the README uses them; the README's development section runs them from a checkoutchangelog.d/(the fragments, and its README, which only a contributor reads).gitattributesand.gitignoreIt keeps the extension (
uxid.control,uxid--1.0.0.sql), its build file (Makefile), the tests (test/, so a user can runmake installcheck), the corpus and its check (conformance/,scripts/),docs/,LICENSE,README.mdandCHANGELOG.md.Checked on this branch's head:
git archive HEAD | tar -tlists exactly the kept paths above and none of the left-out ones.make installandmake installcheck: all 17 regression tests pass, the corpus runner included.sh scripts/corpus-check.shpasses in the extracted directory too.export-ignorechanges only whatgit archivewrites. CI and the release workflow'sverifyjob work on a checkout, which still holds every file, so the gate,docker/extension-version.shand the CHANGELOG read are unchanged.The release commit
default_versioninuxid.control, the valueuxid_version()returns and the script's file nameuxid--1.0.0.sqlread 1.0.0, as does every version in the README's install commands (uxid-pg-1.0.0.tar.gz,v1.0.0,-v version=1.0.0). That 1.0.0 is set from the scaffold, before any release, was decided by the conductor under a standing consent, 2026-10-24.CHANGELOG.mdgains## 1.0.0 - 2026-10-25, the heading formchangelog.d/README.mdgives, replacing the Unreleased note. It opens with a paragraph on what the release covers (the functions, theuxiddomain overtext COLLATE "C", the monotonic generator's session state, the SQL and PL/pgSQL build with no dependency, PostgreSQL 14 and later with CI on 14 to 18, the three install paths, the random source, the SQLSTATEs 22023 and 22P02 with the corpus's refusal names andinvalid_argument, and the corpus tagv2.10.0), then### Addedwith every fragment's bullets in file-name order. Every function name and signature in the section is one the surface test (test/expected/surface.out) reads from the catalog.awkinrelease.yml, "Make the tarball, its SHA-256 and the release notes") was run over the newCHANGELOG.mdfor1.0.0: it takes the whole section, from the paragraph to the last bullet.Gate
mise run gateis green on the staged tree of the release commit: 17 of 17 regression tests on PostgreSQL 18.6, the sqlfluff lint, and the corpus check (v2.10.0, 96 cases). The commit's tree is byte-identical to the tree that run checked, with the gate lock and a machine slot held across both.After the merge
Nothing here tags or releases. Once this is on
mainand its CI is green there, thev1.0.0tag is pushed at the merge commit and the release workflow creates the release.