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-146197: Add Emscripten to CI by hoodmane · Pull Request #146198 · python/cpython

Conversation

@hoodmane

@hoodmane hoodmane commented Mar 20, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor

Time:

  • 19m 28s without cache
  • 17m 8s with cache

By comparison, the build bot took 32m 8s with cache. I guess the github action runners are quite a bit faster than the instance running the build bot.

  • Issue: Add CI job for Emscripten #146197

Sorry, something went wrong.

Uh oh!

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

All reactions
@hoodmane
hoodmane requested review from AA-Turner, ezio-melotti, hugovk and webknjaz as code owners March 20, 2026 09:31
@bedevere-app bedevere-app Bot mentioned this pull request Mar 20, 2026
Add CI job for Emscripten #146197
Closed
@bedevere-app bedevere-app Bot added the awaiting review label Mar 20, 2026
@hoodmane hoodmane added skip news OS-emscripten and removed awaiting review labels Mar 20, 2026
@hoodmane
pythongh-146197: Add Emscripten to CI
9da3ed3
@hoodmane
hoodmane force-pushed the emscripten-ci branch from 0fe20eb to 9da3ed3 Compare March 20, 2026 09:33
webknjaz
webknjaz approved these changes Mar 20, 2026
View reviewed changes

@webknjaz webknjaz left a comment

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 great at glance! Does it need an entire hour to complete though? If not, I'd make the timeout smaller.

Sorry, something went wrong.

Uh oh!

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

All reactions
@bedevere-app bedevere-app Bot added the awaiting core review label Mar 20, 2026
@hoodmane

hoodmane commented Mar 20, 2026

Copy link
Copy Markdown
Contributor Author

I just copied the timeout-minutes: 60 from reusable-wasi which doesn't need 60 minutes either.

All reactions

Sorry, something went wrong.

Uh oh!

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

@hoodmane

hoodmane commented Mar 20, 2026

Copy link
Copy Markdown
Contributor Author

!buildbot emscripten

All reactions

Sorry, something went wrong.

Uh oh!

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

@bedevere-bot

bedevere-bot commented Mar 20, 2026

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @hoodmane for commit 9da3ed3 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F146198%2Fmerge

The command will test the builders whose names match following regular expression: emscripten

The builders matched are:

  • WASM Emscripten PR
All reactions

Sorry, something went wrong.

Uh oh!

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

@hoodmane
Try to fix cache
d77a339
@hoodmane

hoodmane commented Mar 20, 2026

Copy link
Copy Markdown
Contributor Author

So it took 19m 28s with no cache. But the cache is not working yet.

webknjaz reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

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

@hoodmane

hoodmane commented Mar 20, 2026

Copy link
Copy Markdown
Contributor Author

!buildbot emscripten

All reactions

Sorry, something went wrong.

Uh oh!

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

@bedevere-bot

bedevere-bot commented Mar 20, 2026

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @hoodmane for commit d77a339 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F146198%2Fmerge

The command will test the builders whose names match following regular expression: emscripten

The builders matched are:

  • WASM Emscripten PR
All reactions

Sorry, something went wrong.

Uh oh!

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

hugovk
hugovk reviewed Mar 20, 2026
View reviewed changes
Comment thread Tools/build/compute-changes.py Resolved

Uh oh!

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

@hoodmane @hugovk
Update Tools/build/compute-changes.py
4276a51
Co-authored-by: Hugo van Kemenade <[email protected]>
@hoodmane

hoodmane commented Mar 20, 2026

Copy link
Copy Markdown
Contributor Author

!buildbot Emscripten

All reactions

Sorry, something went wrong.

Uh oh!

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

@bedevere-bot

bedevere-bot commented Mar 20, 2026

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @hoodmane for commit 4276a51 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F146198%2Fmerge

The command will test the builders whose names match following regular expression: Emscripten

The builders matched are:

  • WASM Emscripten PR
All reactions

Sorry, something went wrong.

Uh oh!

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

@hoodmane

hoodmane commented Mar 20, 2026

Copy link
Copy Markdown
Contributor Author

!buildbot Emscripten

All reactions

Sorry, something went wrong.

Uh oh!

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

@bedevere-bot

bedevere-bot commented Mar 20, 2026

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @hoodmane for commit 4276a51 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F146198%2Fmerge

The command will test the builders whose names match following regular expression: Emscripten

The builders matched are:

  • WASM Emscripten PR
All reactions

Sorry, something went wrong.

Uh oh!

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

hoodmane added 2 commits March 20, 2026 11:30
@hoodmane
Check that cache works
830188c
@hoodmane
Move mpdec and libffi into a dependencies subtable
1520ee8
@hoodmane

hoodmane commented Mar 20, 2026

Copy link
Copy Markdown
Contributor Author

!buildbot emscripten

All reactions

Sorry, something went wrong.

Uh oh!

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

@bedevere-bot

bedevere-bot commented Mar 20, 2026

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @hoodmane for commit 1520ee8 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F146198%2Fmerge

The command will test the builders whose names match following regular expression: emscripten

The builders matched are:

  • WASM Emscripten PR
All reactions

Sorry, something went wrong.

Uh oh!

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

@bedevere-bot

bedevere-bot commented Mar 20, 2026

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @hoodmane for commit 9d545d1 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F146198%2Fmerge

The command will test the builders whose names match following regular expression: emscripten

The builders matched are:

  • WASM Emscripten PR
All reactions

Sorry, something went wrong.

Uh oh!

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

@webknjaz

webknjaz commented Mar 20, 2026

Copy link
Copy Markdown
Member

Alright, let's set the timeout to 25-30 minutes — this will help catch problems early. We just need to cover the cacheless run, plus have some margin for networking + minor flakiness. Otherwise, situations with something getting stuck for 40min+ would waste CI resources..

All reactions

Sorry, something went wrong.

Uh oh!

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

@hoodmane

hoodmane commented Mar 20, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor Author

Well we have:

  1 job  with timeout-minutes: 30
  5 jobs with timeout-minutes: 5
  8 jobs with timeout-minutes: 10
 26 jobs with timeout-minutes: 60

Since most other CI jobs seem to have timeout-minutes: 60 I'd prefer to just keep the setting here as for the rest and then lowering these timeouts can be dealt with systematically as a separate issue.

hugovk reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

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

freakboy3742
freakboy3742 approved these changes Mar 22, 2026
View reviewed changes

@freakboy3742 freakboy3742 left a comment

Copy link
Copy Markdown
Contributor

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.

Changes to the build script make sense to me; I'll leave it to others to approve the CI configs, but they broadly look good to me. I'll leave it to @hugovk or @webknjaz to make the final call on timeouts; I agree that 60 minutes seems excessive, but it's also consistently excessive, which is a separate problem.

Sorry, something went wrong.

Uh oh!

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

All reactions
hugovk
hugovk approved these changes Mar 23, 2026
View reviewed changes

@hugovk hugovk left a comment

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.

Future PR to review all timeout-minutes welcome.

The main reason for the setting is to make sure if something gets stuck, it doesn't sit there for the full six hours.

They don't get stuck too often, and better to have more spare time available than have slow builds cancelled before they're finished.

Sorry, something went wrong.

Uh oh!

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

All reactions
@hugovk
hugovk merged commit c94048b into python:main Mar 23, 2026
60 checks passed

Uh oh!

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

@bedevere-app bedevere-app Bot removed the awaiting merge label Mar 23, 2026
@miss-islington-app

miss-islington-app Bot commented Mar 23, 2026

Copy link
Copy Markdown

Thanks @hoodmane for the PR, and @hugovk for merging it 🌮🎉.. I'm working now to backport this PR to: 3.14.
🐍🍒⛏🤖

All reactions

Sorry, something went wrong.

Uh oh!

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

@miss-islington-app

miss-islington-app Bot commented Mar 23, 2026

Copy link
Copy Markdown

Sorry, @hoodmane and @hugovk, I could not cleanly backport this to 3.14 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker c94048be025ad9d39cd9307db8f503039094df11 3.14
All reactions

Sorry, something went wrong.

Uh oh!

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

@miss-islington-app miss-islington-app Bot assigned hugovk Mar 23, 2026
@hugovk

hugovk commented Mar 23, 2026

Copy link
Copy Markdown
Member

@hoodmane Please could you check the backport? Thanks!

hoodmane reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

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

@hoodmane
hoodmane deleted the emscripten-ci branch March 23, 2026 14:35
hoodmane added a commit to hoodmane/cpython that referenced this pull request Mar 23, 2026
@hoodmane @hugovk
[3.14] pythongh-146197: Add Emscripten to CI (pythonGH-146198)
68bbcec
(cherry picked from commit c94048b)

Co-authored-by: Hood Chatham <[email protected]>
Co-authored-by: Hugo van Kemenade <[email protected]>
hoodmane added a commit to hoodmane/cpython that referenced this pull request Mar 23, 2026
@hoodmane @hugovk
[3.14] pythongh-146197: Add Emscripten to CI (pythonGH-146198)
4aff0ca
(cherry picked from commit c94048b)

Co-authored-by: Hood Chatham <[email protected]>
Co-authored-by: Hugo van Kemenade <[email protected]>
@bedevere-app

bedevere-app Bot commented Mar 23, 2026

Copy link
Copy Markdown

GH-146331 is a backport of this pull request to the 3.14 branch.

All reactions

Sorry, something went wrong.

Uh oh!

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

@bedevere-app bedevere-app Bot removed the needs backport to 3.14 bugs and security fixes label Mar 23, 2026
@hoodmane

hoodmane commented Mar 23, 2026

Copy link
Copy Markdown
Contributor Author

@hugovk unfortunately the github action will be crashing on main because we were crossed up by a commit that broke Emscripten tests. Fixed by this:
#146330

All reactions

Sorry, something went wrong.

Uh oh!

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

@webknjaz

webknjaz commented Mar 23, 2026

Copy link
Copy Markdown
Member

FTR it's usually easier to set the right timeout as a part of the initial integration since the following runs will make use of cache and somebody handling this in the future would need to have privileges to wipe all the cache records to see the slow durations for each job.

All reactions

Sorry, something went wrong.

Uh oh!

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

@hoodmane

hoodmane commented Mar 23, 2026

Copy link
Copy Markdown
Contributor Author

Well that makes sense. Do you think 30 minutes makes sense here? That is about 50% higher than the worst run without cache. Or 40 minutes for 2x?

All reactions

Sorry, something went wrong.

Uh oh!

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

CuriousLearner added a commit to CuriousLearner/cpython that referenced this pull request Mar 23, 2026
@CuriousLearner
Merge branch 'main' of github.com:python/cpython into fix-pythongh-13…
3e05fa3
…8577

* 'main' of github.com:python/cpython:
  pythongh-146197: Run -m test.pythoninfo on the Emscripten CI (python#146332)
  pythongh-146325: Use `test.support.requires_fork` in test_fastpath_cache_cleared_in_forked_child (python#146330)
  pythongh-146197: Add Emscripten to CI (python#146198)
  pythongh-143387: Raise an exception instead of returning None when metadata file is missing. (python#146234)
  pythongh-108907: ctypes: Document _type_ codes (pythonGH-145837)
  pythongh-146175: Soft-deprecate outdated macros; convert internal usage (pythonGH-146178)
  pythongh-146056: Rework ref counting in treebuilder_handle_end() (python#146167)
  Add a warning about untrusted input to `configparser` docs (python#146276)
  pythongh-145264: Do not ignore excess Base64 data after the first padded quad (pythonGH-145267)
  pythongh-146308: Fix error handling issues in _remote_debugging module (python#146309)
  pythongh-146192: Add base32 support to binascii (pythonGH-146193)
  pythongh-135953: Properly obtain main thread identifier in Gecko Collector (python#146045)
  pythongh-143414: Implement unique reference tracking for JIT, optimize unpacking of such tuples (pythonGH-144300)
  pythongh-146261: Fix bug in `_Py_uop_sym_set_func_version` (pythonGH-146291)
  pythongh-145144: Add more tests for UserList, UserDict, etc (pythonGH-145145)
  pythongh-143959: Fix test_datetime if _datetime is unavailable (pythonGH-145248)
  pythongh-146245: Fix reference and buffer leaks via audit hook in socket module (pythonGH-146248)
  pythongh-140049: Colorize exception notes in `traceback.py` (python#140051)
  Update docs for pythongh-146056 (pythonGH-146213)
@freakboy3742 freakboy3742 added the needs backport to 3.14 bugs and security fixes label Mar 23, 2026
@miss-islington-app

miss-islington-app Bot commented Mar 23, 2026

Copy link
Copy Markdown

Thanks @hoodmane for the PR, and @hugovk for merging it 🌮🎉.. I'm working now to backport this PR to: 3.14.
🐍🍒⛏🤖

All reactions

Sorry, something went wrong.

Uh oh!

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

@miss-islington-app

miss-islington-app Bot commented Mar 23, 2026

Copy link
Copy Markdown

Sorry, @hoodmane and @hugovk, I could not cleanly backport this to 3.14 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker c94048be025ad9d39cd9307db8f503039094df11 3.14
All reactions

Sorry, something went wrong.

Uh oh!

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

@vstinner vstinner removed the needs backport to 3.14 bugs and security fixes label Mar 23, 2026
@vstinner

vstinner commented Mar 23, 2026

Copy link
Copy Markdown
Member

@freakboy3742 freakboy3742 added the needs backport to 3.14 label

@hoodmane already created #146331 to add the CI to the 3.14 branch.

freakboy3742 reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

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

ambv pushed a commit that referenced this pull request Mar 23, 2026
@hoodmane @hugovk @vstinner
[3.14] gh-146197: Add Emscripten to CI (GH-146198) (GH-146331)
7c8a46b
(cherry picked from commit c94048b)

Co-authored-by: Hood Chatham <[email protected]>
Co-authored-by: Hugo van Kemenade <[email protected]>
Co-authored-by: Victor Stinner <[email protected]>
@webknjaz

webknjaz commented Mar 24, 2026

Copy link
Copy Markdown
Member

Well that makes sense. Do you think 30 minutes makes sense here? That is about 50% higher than the worst run without cache. Or 40 minutes for 2x?

@hoodmane my personal approach is having tight limits to get responsive cancelations. So I see how it performs when caching is not in use, then add a minute for each networking-related step/operation (things like git clone, various API access and similar), plus other known sources of flaky behaviors. And only increase that if I see that this doesn't account for all the flakiness. One other thing to take into account is that CPython's test runner re-runs the failing tests with verbosity so for the worst-case scenario, I'd add the duration of the rerun of the entire test suite. It's probably fine to add another 5% to the estimate computed like that.

Often, we can make an educated guess that the jobs won't be able to complete early: when git clone starts getting stuck for 10-15 minutes, there's a good chance the CI won't be able to finish. This is one of the indicators that GH (as a platform with multiple components) is having internal problems/outage (not necessarily announced in public), but it's usually a good idea to get those cancelations and wait until things calm down before restarting, which is why I perfect tight timeouts.

So yes, 30 minutes should be fine but if you feel more comfortable with 40, that's good too. I like documenting how I estimated the timeout in a YAML comment. So if you feel like sending a follow-up, plz do that too.

All reactions

Sorry, something went wrong.

Uh oh!

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

@hoodmane

hoodmane commented Mar 24, 2026

Copy link
Copy Markdown
Contributor Author

Opened #146378

All reactions

Sorry, something went wrong.

Uh oh!

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

@pablogsal pablogsal mentioned this pull request Apr 4, 2026
gh-130273: Fix traceback color output with unicode characters #142529
Merged
ljfp pushed a commit to ljfp/cpython that referenced this pull request Apr 25, 2026
@hoodmane @hugovk @ljfp
pythongh-146197: Add Emscripten to CI (python#146198)
074f342
Co-authored-by: Hugo van Kemenade <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@freakboy3742 freakboy3742 freakboy3742 approved these changes
@webknjaz webknjaz webknjaz approved these changes
@hugovk hugovk hugovk approved these changes
@AA-Turner AA-Turner Awaiting requested review from AA-Turner AA-Turner is a code owner
@ezio-melotti ezio-melotti Awaiting requested review from ezio-melotti ezio-melotti is a code owner

Uh oh!

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

Assignees

@hugovk hugovk

Labels

OS-emscripten skip news

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

@hoodmane @bedevere-bot @hugovk @webknjaz @vstinner @freakboy3742
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.