Repository navigation
test(analysis): regenerate the reference answers on Ubuntu 26.04 and pin it - #2062
Conversation
…pin it ubuntu-latest moved from 24.04 to 26.04. pyproj's PROJ uses the system's libm, and 26.04's glibc rounds some results differently in the last digits, so generate.py --check found six buffer answers and cases.json differing by about 1e-13 relative. The check compares bytes, so it failed on any pull request touching the corpus. The answers are regenerated with a matching glibc and the job is pinned to ubuntu-26.04, so a later move of ubuntu-latest can't break it unannounced.
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
Code reviewScope: the CI runner change in Bugs
Security
Performance
Quality
AGENTS.md
Needs confirmation before merge
Prior review threads: none on this PR, so no earlier concerns were left alone. Change sizeCompared: the whole PR against main (merge base a13d490 to PR head cedd371).
|
📖 Docs preview
GitHub Pages takes a minute or two to publish a new commit. |
Cause
The "Reference answers match generate.py" check fails on #2061 (run):
cases.jsonand six buffer answers differ from whatgenerate.pywrites. It runs only when a pull request touches the reference corpus orreference.yml, so it hadn't run since it passed on Nov 7.Between those runs
ubuntu-latestmoved from Ubuntu 24.04 (image 20261101.360) to 26.04 (20261111.82). The script's Python dependencies are pinned and resolve identically on Python 3.12, 3.13 and 3.14 (Shapely 2.1.2 with GEOS 3.13.1, pyproj 3.7.2 with PROJ 9.5.1, numpy 2.5.4), and its output is identical from run to run. What changed is the system's libm, which PROJ uses: 26.04's glibc rounds some results differently in the last digits, about 1e-13 relative (e.g.14015.746772213406→14015.746772211674). The check compares bytes, so it fails.Fix
ubuntu-26.04instead ofubuntu-latest, with a comment saying why, so a later image move can't break it unannounced: moving to a new image means regenerating on it.Evidence
uv run generate.py --checkfailed on the same seven files as CI before regenerating, and passes after.cargo test -p rustgis-analysis --test referencepasses with the new answers.Summary by CodeRabbit