gregfelice opened a new pull request, #2445:
URL: https://github.com/apache/age/pull/2445
## What
Pin the CI runner image and guard the Bison version for the Cypher GLR
grammar.
- `runs-on: ubuntu-latest` → `ubuntu-24.04`
- Add a "Verify Bison version" step that fails with a clear, actionable
message if Bison ever drifts off 3.8.x.
## Why
`src/backend/parser/cypher_gram.y` pins exact conflict counts via `%expect
7` / `%expect-rr 3`, and Bison treats `%expect` as **exact-match** (not a
ceiling) — any deviation fails the build. `ubuntu-latest` floats to new Ubuntu
releases, which can ship a different Bison version that reports different
conflict counts, breaking the build with a cryptic grammar-generation error
unrelated to the actual change.
Freezing the runner image freezes Bison at 3.8.x, so the pinned `%expect`
counts stay reproducible. The version guard turns a future drift into an
explicit, self-explanatory failure ("re-run bison, update `%expect`, and bump
the pinned runner together") instead of a confusing one.
Reproducibility comes from pinning the variable rather than widening the
conflict-count tolerance, keeping the exact-match alarm for genuinely new
grammar conflicts intact. This mirrors PostgreSQL's own `gram.y`, which keeps
an exact `%expect` and updates it on intentional changes.
## Testing
CI config only; no source or test changes. The existing `Build / Regression`
workflow runs unchanged on the pinned image.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]