Skip to content

Align nightly cassert with main: 17.11 / 18.6 / 19beta3, drop PG16 - #8822

Merged
ibrahim halatci (ihalatci) merged 4 commits into
mainfrom
ihalatci-cassert-minor-bump
Sep 8, 2026
Merged

ibrahim halatci (ihalatci) merged 4 commits into
mainfrom
ihalatci-cassert-minor-bump

Conversation

@ihalatci

@ihalatci ibrahim halatci (ihalatci) commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

What

Realigns .github/workflows/nightly_cassert.yml with main. Its params job is meant to be a mirror of build_and_test.yml, but it had drifted in both directions:

  • it still built PG16, which main no longer compiles against, and
  • it was missing PG19, which main does test.

main's params job currently pins 17.11 / 18.6 / 19beta3 and declares no pg16_version at all.

Changes

Output Before After
pg_versions 16.13, 17.9, 18.3 17.11, 18.6, 19beta3
pg_upgrade_pairs 16→17, 17→18 17→18, 18→19, 17→19
citus_upgrade_pg 16.13, 17.9 17.11, 18.6

Plus the file header comment, which advertised PG 16/17/18 and referenced a pg19-support branch that no longer exists (PG19 landed in main). citus_old_version is untouched.

Why PG16 comes out

Citus main no longer compiles against PostgreSQL 16 — configure aborts with:

configure: error: Citus is not compatible with the detected PostgreSQL version 16.

Every PG16 job was therefore guaranteed to fail regardless of minor. In run 34182646836 (2026-09-08), all 14 PG16 jobs were red:

cassert PG16 - regress / isolation / columnar / tap / failure /
               generator / citus-upgrade / arbitrary-configs-0..5
cassert PG16-PG17 - pg-upgrade

That is categorically different from a normal cassert failure: it is a build that cannot start, so it drowns out the assert signal this nightly exists to surface.

Why PG19 goes in

main already runs PG19 (19beta3), so the nightly should too. Unlike PG16, PG19 does build, so any redness it produces is real assert signal — exactly what this workflow is for, per its own header note that runs are expected to be red as pre-existing asserts surface.

citus_upgrade_pg deliberately stays at 17 + 18, mirroring main's test-citus-upgrade matrix: the older Citus versions used by that suite do not run on PG19.

Verification

The three params outputs are JSON-in-YAML strings, so they were checked by parsing rather than by eye. A script YAML-loads this workflow and fetches build_and_test.yml from main, then asserts the nightly mirrors it:

  • majors match main's pg*_version set exactly (17, 18, 19), and every full equals main's
  • pg_upgrade_pairs equals main's test-pg-upgrade include set exactly (17→18, 18→19, 17→19), with each old_full/new_full resolved from main
  • citus_upgrade_pg majors equal main's test-citus-upgrade matrix (17, 18)
  • no 16 / 16.13 token remains anywhere in the file, and no stale pg19-support reference

Result: MIRRORS MAIN EXACTLY - ALL ASSERTIONS PASSED.

The PG builds are from source via pgenv (setup_cassert_pg), whose input is documented as accepting betas (e.g. 17.10 / 18.4 / 19beta1). The 19beta3 source tarball is published (postgresql-19beta3.tar.bz2, HTTP 200), so the build is viable.

Notes

Companion to citus#8816 (nightly_arm64.yml). If that workflow has the same PG16/PG19 drift, it is best fixed there.

Refs citus#8804.

Bump 17.9->17.11 and 18.3->18.6 to match build_and_test.yml after #8804. PG16 (16.13) intentionally unchanged (main sets no 16 minor).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@codecov

codecov Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.72%. Comparing base (4ae7278) to head (aa7f469).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8822      +/-   ##
==========================================
- Coverage   88.73%   88.72%   -0.01%     
==========================================
  Files         289      289              
  Lines       65013    65013              
  Branches     8204     8204              
==========================================
- Hits        57687    57686       -1     
+ Misses       4957     4956       -1     
- Partials     2369     2371       +2     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ihalatci
ibrahim halatci (ihalatci) marked this pull request as ready for review September 3, 2026 09:53
Citus main no longer compiles against PostgreSQL 16 -- configure aborts
with "Citus is not compatible with the detected PostgreSQL version 16".
Every PG16 job in the nightly is therefore guaranteed to fail: run
34182646836 (2026-09-08) had all 14 PG16 jobs red, including
PG16-PG17 pg-upgrade.

Remove PG16 from all three version lists so the nightly reports real
signal instead of a permanently red major:

  - pg_versions       -> 17, 18
  - pg_upgrade_pairs  -> 17 -> 18 only
  - citus_upgrade_pg  -> 17 only

The 17.11 / 18.6 minor alignment from this PR is unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1ed7b58a-0ba9-4f47-a1de-3ee665bae7f2
@ihalatci ibrahim halatci (ihalatci) changed the title Align nightly cassert PG minors to main (17.11/18.6) Align nightly cassert PG minors to main (17.11/18.6) and drop PG16 Sep 8, 2026
The params job is meant to be a mirror of build_and_test.yml. main now
pins 17.11 / 18.6 / 19beta3 and has no pg16_version at all, so the
nightly was stale in both directions: it carried PG16, which no longer
compiles, and lacked PG19, which main tests.

Bring it back in line with main:

  - pg_versions       -> 17.11, 18.6, 19beta3
  - pg_upgrade_pairs  -> 17->18, 18->19, 17->19 (main's three pairs)
  - citus_upgrade_pg  -> 17.11, 18.6 (main covers 17 and 18; PG19 is
                         excluded there because old Citus versions do
                         not run on PG19)

setup_cassert_pg builds PG from source via pgenv and documents beta
versions as supported; the 19beta3 source tarball is published, so the
build is viable.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1ed7b58a-0ba9-4f47-a1de-3ee665bae7f2
@ihalatci ibrahim halatci (ihalatci) changed the title Align nightly cassert PG minors to main (17.11/18.6) and drop PG16 Align nightly cassert with main: 17.11 / 18.6 / 19beta3, drop PG16 Sep 8, 2026
@ihalatci
ibrahim halatci (ihalatci) merged commit 1b43e3d into main Sep 8, 2026
130 checks passed
@ihalatci
ibrahim halatci (ihalatci) deleted the ihalatci-cassert-minor-bump branch September 8, 2026 15:05
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