Skip to content

fix: build release binaries with Python 3.10 - #816

Merged
thomasrockhu-codecov merged 1 commit into
mainfrom
th/fix-binary-python-310
Oct 28, 2026
Merged

thomasrockhu-codecov merged 1 commit into
mainfrom
th/fix-binary-python-310

Conversation

@thomasrockhu-codecov

Copy link
Copy Markdown
Contributor

Summary

  • v11.3.2's Linux and Alpine binary jobs fail at uv python pin 3.9 because requires-python is now >=3.10. publish_release never runs, so nothing is handed off to cli.codecov.io.
  • Build those binaries with the distro CPython 3.10 instead: python:3.10-bullseye (glibc 2.31, the same floor as ubuntu 20.04; deadsnakes no longer publishes Focal) and Alpine 3.16 (oldest Alpine whose python3 is 3.10, musl 1.2.3).
  • Force UV_PYTHON_PREFERENCE=only-system so uv does not download its own interpreter and change the libc baseline baked into the PyInstaller binary.

Merging this does not republish v11.3.2. The release workflow checks out the tag, so the binaries go out with the next release.

Test plan

  • python:3.10-bullseye arm64 build produces codecovcli_linux_arm64; codecovcli --version prints 11.3.2. Bundled libpython uses glibc symbols up through 2.30.
  • alpine:3.16 arm64 build produces codecovcli_alpine_arm64 with the musl bootloader; codecovcli --version prints 11.3.2.
  • CI on this PR does not run the release asset job. The x86_64 variants use the same scripts and should be confirmed on the next release workflow.

Made with Cursor

Linux and Alpine release builds still pinned CPython 3.9, which uv
rejects now that requires-python is >=3.10. Those assets never
uploaded, so the publish step that feeds cli.codecov.io never ran.

Build on python:3.10-bullseye (glibc 2.31, same floor as ubuntu 20.04)
and Alpine 3.16 (oldest Alpine with Python 3.10), and force uv to use
that system interpreter.

Co-authored-by: Cursor <cursoragent@cursor.com>
@codecov

codecov Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
723 1 722 1
View the full list of 1 ❄️ flaky test(s)
api.temp.calculator.test_calculator::test_divide

Flake rate in main: 100.00% (Passed 0 times, Failed 1835 times)

Stack Traces | 0.001s run time
def
                test_divide():
                > assert Calculator.divide(1, 2) == 0.5
                E assert 1.0 == 0.5
                E + where 1.0 = <function Calculator.divide at 0x104c9eb90>(1, 2)
                E + where <function Calculator.divide at 0x104c9eb90> = Calculator.divide
                .../temp/calculator/test_calculator.py:30: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@thomasrockhu-codecov
thomasrockhu-codecov merged commit 2f51212 into main Oct 28, 2026
19 checks passed
@thomasrockhu-codecov
thomasrockhu-codecov deleted the th/fix-binary-python-310 branch October 28, 2026 17:19
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.

2 participants