Skip to content

Add PostgreSQL 19 support (topn 2.7.1) - #1212

Merged
ibrahim halatci (ihalatci) merged 3 commits into
debian-topnfrom
ihalatci-pg19-debian-topn
Aug 21, 2026
Merged

ibrahim halatci (ihalatci) merged 3 commits into
debian-topnfrom
ihalatci-pg19-debian-topn

Conversation

@ihalatci

Copy link
Copy Markdown
Contributor

Adds PostgreSQL 19 to the postgresql-topn Debian/Ubuntu packaging, bumping to upstream v2.7.1.

Changes

  • pkgvars — pkglatest 2.7.0.citus-1 -> 2.7.1.citus-1
  • postgres-matrix.yml — new entry 2.7.1: postgres_versions: [ 11, 12, 13, 14, 15, 16, 17, 18, 19 ] (appended last; nightly reads version_matrix[-1])
  • debian/changelog — new 2.7.1.citus-1 entry
  • .github/workflows/build-package.yml — migrated off the retired secrets.GH_TOKEN PAT to actions/create-github-app-token@v3, matching all-citus

Note on 11/12/13 in the matrix

Left as-is deliberately. On deb there is a single *-all build image whose DEB_PG_SUPPORTED_VERSIONS is "14 15 16 17 18 19", which intersects the matrix down — so 11/12/13 are inert here and cause no build. The RPM path is different (one container per PG version, so every entry is really compiled), which is why the redhat-topn PR does narrow the range.

Why the workflow change is in here

scripts/fetch_and_build_deb writes Authorization: token ${GITHUB_TOKEN} into ~/.curlrc and resolves the upstream tag through the GitHub API. secrets.GH_TOKEN no longer exists, so that call returned 401 on a request that succeeds anonymously, and the build died with could not determine commit for git tag v2.7.1. MAIN_BRANCH still references the dead secret, so this fix has to land here for the branch to build at all.

Upstream tag note

v2.7.1 was originally signed with a key that GitHub reported as unknown_key, which trips the signature gate in fetch_and_build_deb. The tag has been re-signed with the established release key (4FB72F64B64E3FFC) and force-pushed upstream — same commit, same message, GitHub now reports verification=true, reason=valid. Local clones may need git fetch --tags --force.

Verification

Dry run on the feature branch: all 5 deb platforms green (bullseye, bookworm, trixie, jammy, noble).
Package publishing skipped since current branch is not equal to debian-topn confirmed in the logs — nothing was uploaded.

⚠️ Merging publishes

on: push: branches: ["**"] with --build_type release, and upload_to_package_cloud.py only skips when current_branch != MAIN_BRANCH. Merging this PR ships topn 2.7.1.citus-1 to citusdata/community.

ihalatci-msft and others added 3 commits August 20, 2026 13:52
Bump pkglatest to 2.7.1.citus-1 and append a 2.7.1 entry to postgres-matrix.yml so PostgreSQL 19 is built and published for the deb platforms.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1ed7b58a-0ba9-4f47-a1de-3ee665bae7f2
The build container's fetch_and_build_deb/_rpm scripts write
GITHUB_TOKEN into ~/.curlrc as an Authorization header before
resolving the upstream release tag. secrets.GH_TOKEN no longer
exists, so that header was empty/invalid and api.github.com
returned 401 -- breaking a request that succeeds anonymously.
The tag lookup then yielded null and the build aborted with
"could not determine commit for git tag".

Switch to the actions/create-github-app-token@v3 flow already
used on all-citus, exporting the installation token as both
GH_TOKEN and GITHUB_TOKEN.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1ed7b58a-0ba9-4f47-a1de-3ee665bae7f2
tools v0.8.35 mutates input_output_parameters.output_dir inside
build_packages() and never restores it, so sign_packages() looks under
"{base}/{sub_folder}/{sub_folder}", matches zero packages, and skips
signing silently while the job still reports success. Fixed upstream in
4c862ce, first released in v0.8.36, which all-citus already uses.

Effect here: the produced .deb files regain the per-package dpkg-sig
signature that citus packages already carry. RPM verification was not
affected (packagecloud re-signs RPMs on upload with be79ad6a) and apt
verification was not affected (InRelease is signed by packagecloud), so
this restores defense-in-depth rather than repairing a broken trust path.

The only other runtime change between v0.8.35 and v0.8.36 is an optional
postgres_version argument to build_packages(); it defaults to None and is
not passed by this workflow.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1ed7b58a-0ba9-4f47-a1de-3ee665bae7f2
@ihalatci
ibrahim halatci (ihalatci) merged commit 939c899 into debian-topn Aug 21, 2026
10 checks passed
@ihalatci
ibrahim halatci (ihalatci) deleted the ihalatci-pg19-debian-topn branch August 21, 2026 06:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants