Repository navigation
Conversation
…r the release exists - The Dockerfile piped main's install.sh, which now requires RELEASE_VERSION and .sha256 sidecars that no release ships, so the next image build would fail. The release tarball is already laid out as the Debian Postgres paths: download it for the target arch and unpack it into /. - postgres:<pg> moved to Debian trixie (glibc 2.41). Swapping a bookworm data directory (glibc 2.36, every image up to v0.1.0-docker) onto it changes text collation: Postgres warns about a collation version mismatch and text indexes need a REINDEX. Build both bases and tag <pg>-<debian> and <version>-<pg>-<debian>; the existing tags keep pointing at trixie. - The image job waited only for the build job, while the assets it downloads come from the release job. - Readme: the tags, and ALTER EXTENSION typeid UPDATE right after switching images (0.1.0's min/max functions are gone from the new library until the update runs). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
… any release - Package lib/<library> and share/extension/<control, scripts> (files only) with a `<asset>.sha256` sidecar; the tarballs carried the build host's Debian paths and no checksum, so install.sh refused every published release. - install.sh checks the archive by pattern instead of a fixed member list (which stopped at 0.4.0): one library (.so or .dylib), the control file, typeid--<RELEASE_VERSION>.sql required, other typeid--*.sql allowed. - The image installs with install.sh again (copied from the build context, RELEASE_VERSION passed). - test-migrations installs the latest release with install.sh when it has a checksum, else unpacks the old Debian-layout tarball; it called install.sh without RELEASE_VERSION, so it failed on every PR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Why
Deploying 0.4.x onto a database created with
ghcr.io/blitss/typeid-pg:v0.1.0-docker(PG 16, bookworm) turned up a chain of breakages in the release tooling:install.shcan't install any published release. Since c38e997 it requiresRELEASE_VERSION, a<asset>.sha256sidecar and alib/+share/extension/archive layout, with a fixed member list that stops at0.3.0--0.4.0. The release workflow never produces sidecars and packs the build host's Debian paths (usr/lib/postgresql/<pg>/…).Dockerfilepipesinstall.shfrommain, andtest-migrationscalls it withoutRELEASE_VERSION, so the next release's images and every PR's Migration job fail. Thev0.4.1images exist only because they were built on Aug 11, before that commit.postgres:<pg>is Debian trixie now (glibc 2.41). Putting a bookworm data directory (glibc 2.36) under it makes Postgres warncollation version mismatch, and text indexes need aREINDEX.What
lib/typeid.{so,dylib}andshare/extension/typeid.control+typeid--*.sql, files only, plus a<asset>.sha256sidecar (<digest> <asset>). Both are uploaded and attached to the release.typeid--<RELEASE_VERSION>.sqlrequired, any othertypeid--*.sqlallowed. Everything listed is installed.FROM postgres:${PG_VERSION}-${DEBIAN}(defaulttrixie). It runs theinstall.shfrom the build context withRELEASE_VERSION.debian: [bookworm, trixie]with tags<pg>-<debian>and<version>-<pg>-<debian>;<pg>,latestand<version>stay on trixie. The image jobneeds: release.install.shwhen it has a sidecar, else unpacks the old Debian-layout tarball.ALTER EXTENSION typeid UPDATEright after switching images. The 0.4.1 library droppedtype_id_min_state_wrapper,type_id_max_state_wrapper,typeid_ge_wrapperandtypeid_uuid_generate_v7_wrapper, which 0.1.0's SQL objects reference, somin()/max()over typeids fail until the update.Verified locally
postgres:16-bookworm. Fed v0.4.1's pg16/arm64 files repacked exactly as the new packaging step does. Result: checksum OK, installed,CREATE EXTENSIONgives 0.4.1,typeid_generateworks. Asking forRELEASE_VERSION=0.4.2with that archive is refused (missing required member: share/extension/typeid--0.4.2.sql).DEBIAN=bookworm: glibc 2.36, PG 16.15.v0.1.0-docker, then the bookworm image on the same volume, thenALTER EXTENSION typeid UPDATE. Result: 0.4.1, IMMUTABLE comparisons,min()works, the typeid join is a Hash Join (~45 ms vs a ~100 s nested loop before), no collation warning.After merging
The first release cut with this (e.g.
v0.4.2) produces installable assets and the bookworm images. A new tag also publishes to PGXN, which is permanent.🤖 Generated with Claude Code