Skip to content

CI: Linux on ARM64, other Pythons, Enterprise Linux 8 and 9 - #33

Merged
ru551n merged 3 commits into
VUnit:mainfrom
ru551n:ci/enterprise-linux
Oct 15, 2026
Merged

ru551n merged 3 commits into
VUnit:mainfrom
ru551n:ci/enterprise-linux

Conversation

@ru551n

@ru551n ru551n commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator

More Linux in CI: ARM64, the Pythons users have besides python.org's, and Enterprise Linux.

Linux on ARM64

  • One ubuntu-24.04-arm row in the posix matrix, Python 3.14, NVC.
  • NVC has no ARM64 package, so it is built from its release tag, in the step that builds NVC master for the canary.

Other Pythons (new pythons job, ubuntu-24.04, NVC)

  • apt: Ubuntu's own Python 3.12. Its libpython is in the multiarch directory /usr/lib/x86_64-linux-gnu.
  • uv: python-build-standalone 3.13.
  • pyenv: 3.13 built from source.

Enterprise Linux (new el job, almalinux:8 and almalinux:9 containers)

  • The Python, gcc and LLVM of the distribution: python3.11 on EL8 and python3.12 on EL9, since their default Pythons are older than 3.10.
  • EL8 is the oldest toolchain: gcc 8, binutils 2.30.
  • NVC is built from its release, since it has no RPM.

Every new job runs the Python unit tests, the feature tests and the example from a venv outside the checkout with a space in its path, as the posix job does.

Test fix

  • EL8 found one test failure: test_library_exports_exactly_the_contract fails because binutils 2.30 lists the linker's own _edata, _end and __bss_start as defined in every library. The test now ignores them. The library itself exports the same symbols as before.

All new jobs except ARM64 passed locally in podman containers.

Not included: conda. conda-forge's Python ships lib/libpython3.13.so, but its sysconfig reports LDLIBRARY=libpython3.13.a and Py_ENABLE_SHARED=0. The bridge therefore rejects it with its "requires a CPython built with a shared Python library" error. Supporting conda would need a change in the bridge, so it is left to a separate PR.

No news fragment, since only CI and a test change.

🤖 Generated with Claude Code

ru551n and others added 2 commits October 15, 2026 19:17
binutils 2.30 (EL8) lists _edata, _end and __bss_start as defined in every
shared library, newer versions hide them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- ubuntu-24.04-arm with NVC built from its release, which has no ARM64 package
- The Python of Ubuntu, of uv and of pyenv, besides python.org's
- AlmaLinux 8 and 9 containers with the Python, gcc and LLVM of the
  distribution, NVC built from its release; EL8 has the oldest toolchain

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ru551n
ru551n merged commit 4c6197f into VUnit:main Oct 15, 2026
58 checks passed
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