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]

Reply via email to