Skip to content

Fix manylinux image - #62

Merged
joocer merged 2 commits into
mainfrom
fix-manylinux-image
Aug 24, 2026
Merged

Fix manylinux image#62
joocer merged 2 commits into
mainfrom
fix-manylinux-image

Conversation

@joocer

@joocer joocer commented Aug 24, 2026

Copy link
Copy Markdown
Member

This pull request updates the project's supported Python versions, removes Python 3.9 from all build and test workflows, and upgrades the manylinux build image to address compatibility issues with dependencies. It also bumps the package version and sets the minimum required Python version to 3.10.

Python version support updates:

  • Dropped Python 3.9 from all CI jobs and build matrices in .github/workflows/release.yaml and .github/workflows/regression_suite.yaml, so only Python 3.10+ are now supported and tested. [1] [2] [3]
  • Updated setup.py to require Python >=3.10, preventing installation on unsupported versions.

Build system improvements:

  • Switched the manylinux image from manylinux2014 (glibc 2.17) to manylinux_2_28 (glibc 2.28) in the release workflow, due to dependency requirements (e.g., numpy and pyarrow no longer supporting glibc 2.17). Simplified the Docker image selection logic accordingly. [1] [2]
  • Updated the Linux and macOS wheel archiving steps to fail if no files are found, improving CI reliability. [1] [2]

Version bump:

  • Incremented the package version in orso/version.py from 0.0.244 to 0.0.246.

joocer and others added 2 commits August 24, 2026 18:20
numpy dropped manylinux_2_17 wheels at 2.3.0, so inside the manylinux2014
container pip could no longer find a numpy wheel, fell back to the sdist, and
failed against the image's GCC 10.2.1:

    ../meson.build:25:4: ERROR: Problem encountered: NumPy requires GCC >= 10.3

Nothing real is lost by moving to glibc 2.28. numpy and pyarrow are both hard
runtime requirements of orso and both now publish manylinux_2_28 wheels only,
so a glibc 2.17 orso wheel could not have been installed in the first place.
manylinux_2_28 is AlmaLinux 8 with GCC 14 and ships CPython 3.9-3.15, so the
whole matrix is covered; wheels remain compatible with Debian 10+, Ubuntu
18.10+ and RHEL 8+.

The per-entry manylinux_image/plat only existed to special-case the 3.14t
build, and the pull-with-fallback block had degenerated into pulling the same
image twice; both are collapsed into job-level env.

Also set if-no-files-found: error on the linux and macOS artifacts, so an empty
build fails its job rather than quietly publishing an incomplete set - which is
how macOS cp314t went missing from 0.0.243.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.9 reached end of life in October 2025 and orso's own runtime dependencies
have followed: pyarrow, numpy, pandas and ormsgpack all stopped publishing
cp39 wheels, so a 3.9 user installing orso would have pip backtrack to
years-old versions of every one of them.

Removed from the release matrices (manylinux, macOS, Windows) and from the
regression suite; the Windows regression entry moves 3.9 -> 3.10 so it still
covers oldest and newest. The upload job's interpreter goes to 3.12 - it only
needs something modern enough to build the sdist. Every other workflow was
already on 3.10.

Added python_requires=">=3.10" so pip refuses to serve new releases to 3.9
rather than handing over an sdist that cannot resolve its dependencies.

Also bumps the version to 0.0.246. version.py still read 0.0.244 while tags
0.0.244 and 0.0.245 both exist, so the next successful release would have
published artifacts named orso-0.0.244 whatever the tag said. Neither version
reached PyPI, so 0.0.246 is the first clean number.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@joocer
joocer merged commit c09cc35 into main Aug 24, 2026
10 of 12 checks passed
@joocer
joocer deleted the fix-manylinux-image branch August 24, 2026 17:37
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.

1 participant