GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-122931 CI for Linux multiarch co-installability by stefanor · Pull Request #152831 · python/cpython

Conversation

@stefanor

@stefanor stefanor commented Jul 1, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

As suggested in this thread, add some CI tooling to ensure that Python continues to be multi-arch co-installable.

Explicitly skip checking abi3.so and abi3t.so extensions, as they are currently not co-installable (#122931).

We extend reusable-ubuntu to perform an extra set of build+install+hash runs. This required some slightly different configure options to get more co-install-friendly builds. Those configure options broke some existing tests, but the fixes are trivial, and included.

From an earlier implementation that didn't use hash-manifests:

Example failure (without abi3 and abi3t ignored): https://github.com/stefanor/cpython/actions/runs/28550736484/job/84647793000
Example success (with them ignored): https://github.com/stefanor/cpython/actions/runs/28551134448/job/84648971317

  • Issue: Allow stable ABI extensions to include multiarch tuples in the filename #122931

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@stefanor
stefanor requested review from AA-Turner, JacobCoffee, ezio-melotti, hugovk, itamaro and webknjaz as code owners July 1, 2026 22:23
@bedevere-app bedevere-app Bot mentioned this pull request Jul 1, 2026
Allow stable ABI extensions to include multiarch tuples in the filename #122931
Closed
@bedevere-app bedevere-app Bot added the awaiting review label Jul 1, 2026
@stefanor
stefanor force-pushed the ci-multiarch-co-install branch 2 times, most recently from a347830 to 3a52cb5 Compare July 1, 2026 22:38
stefanor added 9 commits July 1, 2026 18:39
@stefanor
In test_cext: Tell setuptools when we are generating a limited_api mo…
6a37083
…dule
@stefanor
Make debug builds configurable in reusable-ubuntu
15cd434
@stefanor
Tidy up YAML
db6e1a9
@stefanor
Make tests optional in reusable-ubuntu
216fae0
@stefanor
Allow reusable-ubuntu to install and upload results
f20a5b0
@stefanor
Matrix to run installs on Ubuntu
f059478
@stefanor
Compare multiple install results
2f5cd99
@stefanor
Skip comparing abi3 and abi3t for now
e6dd647
@stefanor
NEWS entry
b84e719
@stefanor
stefanor force-pushed the ci-multiarch-co-install branch from 3a52cb5 to b84e719 Compare July 1, 2026 22:39
@stefanor

stefanor commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Note: This will require an extra ~165MiB * 5 test builds = ~820 MiB of artifact storage in GitHub CI, per test run. These are stored for 90 days by default. We could configure less...

Duh. Let me store hash manifests instead of storing the installs.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@stefanor
Upload hashes rather than installs
3fce580
webknjaz
webknjaz reviewed Jul 2, 2026
View reviewed changes
Comment thread Tools/coinstall-check/hash-r.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

webknjaz
webknjaz reviewed Jul 2, 2026
View reviewed changes
Comment thread Tools/coinstall-check/hash-r.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

webknjaz
webknjaz reviewed Jul 2, 2026
View reviewed changes
Comment thread .github/workflows/reusable-ubuntu.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

webknjaz
webknjaz reviewed Jul 2, 2026
View reviewed changes
Comment thread .github/workflows/reusable-ubuntu.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

webknjaz
webknjaz reviewed Jul 2, 2026
View reviewed changes
Comment thread .github/workflows/reusable-ubuntu.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

webknjaz
webknjaz reviewed Jul 2, 2026
View reviewed changes
Comment thread .github/workflows/reusable-ubuntu.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

webknjaz
webknjaz reviewed Jul 2, 2026
View reviewed changes
Comment thread .github/workflows/build.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

@webknjaz

webknjaz commented Jul 2, 2026

Copy link
Copy Markdown
Member

We do not do this in the main test suite execution, as achieving multi-arch co-installability requires some non-default configure parameters.

Do you mean the debug option?

But we could share builds, if desired for performance.

Seems like having another matrix will add 15–16 minutes of CI runtime.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

hugovk
hugovk reviewed Jul 30, 2026
View reviewed changes
Comment thread .github/workflows/build.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Misc/NEWS.d/next/Tests/2026-07-01-18-14-25.gh-issue-122931.OeRDeo.rst Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread .github/workflows/reusable-ubuntu.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread .github/workflows/reusable-ubuntu.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread .github/workflows/reusable-ubuntu.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Tools/coinstall-check/compare.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Tools/coinstall-check/hash-r.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Tools/coinstall-check/hash-r.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Tools/coinstall-check/hash-r.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Tools/coinstall-check/compare.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

webknjaz
webknjaz reviewed Jul 30, 2026
View reviewed changes
Comment thread .github/workflows/reusable-ubuntu.yml
required: false
type: string
default: ''
upload-install-hashes:

@webknjaz webknjaz Jul 30, 2026

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this input is always passed exactly opposite to bolt-optimizations. A case could be made that it could be computed instead...

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@stefanor stefanor Jul 30, 2026

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They may currently be opposite, but I think they are orthogonal, I wouldn't want to compute one from the other.

upload-install-hashes should be set once for each (architecture, build flags) combination.

I could imagine adding a check that aborts a build if upload-install-hashes is enable and any other non-architcture, non-build-flag option is non-default. Would that improve things?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
webknjaz
webknjaz reviewed Jul 30, 2026
View reviewed changes
Comment thread .github/workflows/reusable-ubuntu.yml
if: inputs.upload-install-hashes
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: ${{ env.INSTALL_HASHES_FILE }}

@webknjaz webknjaz Jul 30, 2026

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this also expose a wildcard for the consumers to look up the artifacts? Though, this probably won't work with a matrix 🤔

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
webknjaz
webknjaz reviewed Jul 30, 2026
View reviewed changes
Comment thread .github/workflows/build.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

@stefanor stefanor mentioned this pull request Jul 30, 2026
test_zipfile can fail if SOURCE_DATE_EPOCH is set #154948
Closed
stefanor added 7 commits July 30, 2026 14:19
@stefanor
Comment for delayed SOURCE_DATE_EPOCH
21b6432
@stefanor
Tidier case
7d503e8
@stefanor
We don't need inputs.debug
32f21fe
@stefanor
Anonymous refernce
46d5263
@stefanor
Tidy imports
e0567f9
@stefanor
Unused variable
981cbdf
@stefanor
Require -o
02e180e
@stefanor stefanor mentioned this pull request Jul 30, 2026
Some tidying for GitHub Actions #154950
Merged
stefanor added 15 commits July 30, 2026 15:38
@stefanor
Can't benefit from CODEOWNERS without being a core-dev
fb9ec69
@stefanor
Improve file description comment
0bce099
@stefanor
Drop shebangs, not used
abe3f10
@stefanor
Report the names of both sides of a mismatch
727b533
@stefanor
Drop unused definition
273088b
@stefanor
Drop executable bit, not used
1968b91
@stefanor
Don't set SOURCE_DATE_EPOCH at all
9770ca4
It isn't helping make anything more reproducible, setting it so late.
We'll file a bug about `.pyc` reproducibility, later.
@stefanor
More colorful output
eba5adc
@stefanor
Move linux-install-compare into its own reusable workflow
09cdce6
@stefanor
Merge main
5dc25db
@stefanor
Restore blank line
c8fbe8f
@stefanor
Provide the on property
9af8639
@stefanor
Merge branch 'main' into ci-multiarch-co-install
c1392c4
@stefanor
Set SOURCE_DATE_EPOCH again (now that pythonGH-154948 is fixed)
065ab4c
@stefanor
Merge branch 'main' into ci-multiarch-co-install
d4ec3c5
@stefanor
stefanor requested a review from StanFromIreland as a code owner October 18, 2026 09:37
@bedevere-app bedevere-app Bot added the type-feature A feature request or enhancement label Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@webknjaz webknjaz webknjaz left review comments
@hugovk hugovk hugovk left review comments
@ezio-melotti ezio-melotti Awaiting requested review from ezio-melotti ezio-melotti is a code owner
@AA-Turner AA-Turner Awaiting requested review from AA-Turner AA-Turner is a code owner
@itamaro itamaro Awaiting requested review from itamaro itamaro is a code owner
@JacobCoffee JacobCoffee Awaiting requested review from JacobCoffee JacobCoffee is a code owner
@ericsnowcurrently ericsnowcurrently Awaiting requested review from ericsnowcurrently ericsnowcurrently is a code owner
@FFY00 FFY00 Awaiting requested review from FFY00 FFY00 is a code owner
@StanFromIreland StanFromIreland Awaiting requested review from StanFromIreland StanFromIreland is a code owner
+1 more reviewer
@rgommers rgommers rgommers left review comments
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

awaiting core review type-feature A feature request or enhancement

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

6 participants

@stefanor @webknjaz @rgommers @hugovk @ngoldbaum @encukou
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.