Skip to content

fix(ci): lower Linux release glibc baseline#707

Open
SyntaxSawdust wants to merge 2 commits into
usestrix:mainfrom
SyntaxSawdust:codex/fix-glibc-baseline
Open

fix(ci): lower Linux release glibc baseline#707
SyntaxSawdust wants to merge 2 commits into
usestrix:mainfrom
SyntaxSawdust:codex/fix-glibc-baseline

Conversation

@SyntaxSawdust

Copy link
Copy Markdown

Summary

  • Pin the linux-x86_64 release build to ubuntu-22.04 so PyInstaller artifacts inherit an older glibc baseline.
  • Add a focused regression test that keeps the Linux release matrix target on that runner.

Why

Fixes #563

The current Linux release build uses ubuntu-latest, which can produce PyInstaller binaries that require a newer glibc than Ubuntu 22.04 / Debian 12-class systems provide.

Tests

  • PYTHONDONTWRITEBYTECODE=1 uv run pytest -p no:cacheprovider tests/test_build_release_workflow.py
  • uv run ruff check --no-cache tests/test_build_release_workflow.py
  • uv run ruff format --check --no-cache tests/test_build_release_workflow.py
  • git diff --check upstream/main

Scope

  • Only changes the Linux release runner and its regression test.
  • Does not change runtime code, macOS/Windows release jobs, or publish a release artifact locally.
  • The next release workflow run is the end-to-end proof for the produced binary.

@SyntaxSawdust SyntaxSawdust marked this pull request as ready for review July 6, 2026 21:59
@greptile-apps

greptile-apps Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR pins the Linux x86_64 release build from ubuntu-latest to ubuntu-22.04 so that PyInstaller artifacts inherit an older glibc baseline and remain compatible with Ubuntu 22.04 / Debian 12-class systems. A new pytest module is added to catch future accidental regressions of this runner assignment.

  • Workflow change (.github/workflows/build-release.yml): one-line swap of ubuntu-latestubuntu-22.04 with an explanatory comment; no other jobs or steps are affected.
  • Regression test (tests/test_build_release_workflow.py): parses the workflow YAML via a hand-rolled line scanner and asserts linux-x86_64 targets ubuntu-22.04; path is correctly anchored to __file__ so it runs from any working directory.

Confidence Score: 5/5

Safe to merge — the workflow change is a one-line runner swap with no effect on runtime code, and the new test only reads the workflow file.

Both changes are narrow and low-risk: the workflow fix replaces a single runner label, and the test is an isolated YAML assertion. There are no runtime code changes, no schema migrations, and no auth or data paths touched.

No files require special attention. The YAML parser in the test is slightly fragile but harmless for the current workflow layout.

Important Files Changed

Filename Overview
.github/workflows/build-release.yml Replaces ubuntu-latest with ubuntu-22.04 for the Linux x86_64 build matrix entry to lower the glibc baseline; adds an explanatory comment. Change is minimal and correct.
tests/test_build_release_workflow.py New regression test that parses the workflow YAML via a hand-rolled line scanner and asserts linux-x86_64 uses ubuntu-22.04. Path anchoring correctly uses __file__. The parser works for the current YAML layout but would silently misparse if the matrix block's YAML structure changed.

Reviews (2): Last reviewed commit: "test(ci): anchor release workflow fixtur..." | Re-trigger Greptile

Comment thread tests/test_build_release_workflow.py Outdated
@bearsyankees

Copy link
Copy Markdown
Collaborator

@greptile

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.

[BUG] error GLIBC_2.38

2 participants