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 — Emscripten buildbot: Support multiple Emscripten versions · Issue #145177 · python/cpython

Emscripten buildbot: Support multiple Emscripten versions #145177

New issue
Copy link
New issue
Copy link
Closed
Closed
Emscripten buildbot: Support multiple Emscripten versions#145177
Copy link
Labels
OS-emscriptentype-featureA feature request or enhancementA feature request or enhancement

Description

@hoodmane
hoodmane
opened on Feb 24, 2026
Issue body actions

We want to allow different branches to use different Emscripten versions. The plan is as follows:

  1. Add emscripten_version.txt file and add --emsdk-cache argument to emscripten/__main__.py. If --emsdk-cache is passed, the build script will require that the appropriate emsdk version is found in that directory.
  2. Backport this to 3.14.x
  3. Set up buildbot cache dir
  4. Make a PR to buildmaster config to pass the --emsdk-cache argument

cc @freakboy3742

Linked PRs

  • gh-145177: Support multiple Emscripten versions for Emscripten buildbot #145180
  • [3.14] gh-145177: Support multiple Emscripten versions for Emscripten buildbot (GH-145180) #145582
  • gh-145177: Put node version into emscripten/config.toml as well. #146156
  • gh-145177: Add make-dependencies command to emscripten build script #146158
  • [3.14] gh-145177: Put node version into emscripten/config.toml. (GH-146156) #146159
  • gh-145177: Add emscripten run --test, uses test args from config.toml #146160
  • [3.14] gh-145177: Add make-dependencies command to emscripten build script (GH-146158) #146184
  • [3.14] gh-145177: Add emscripten run --test, uses test args from config.toml (GH-146160) #146186
  • gh-145177: Fix Emscripten help text #150874
  • [3.15] gh-145177: Fix Emscripten help text (GH-150874) #150894
  • [3.14] gh-145177: Fix Emscripten help text (GH-150874) #150895
  • gh-145177: Bump emscripten version to 5.0.7 #150896
  • gh-145177: Bump emscripten version to 4.0.19 #150926
  • [3.15] gh-145177: Bump emscripten version to 4.0.19 (GH-150926) #150939
  • gh-145177: Bump emscripten to 5.0.4 #151421
  • gh-145177: Bump Emscripten to 6.0.0 #151611
  • gh-145177: Update Emscripten to 6.0.2 #153235
  • gh-145177: Upgrade to Emscripten 6.0.3 #154029
  • gh-145177: Upgrade to Emscripten 6.0.4 #154743
  • gh-145177: Upgrade to Emscripten 6.0.5 #155179
  • gh-145177: Upgrade to Emscripten 6.0.6 #155260
  • gh-145177: Upgrade to Emscripten 6.0.8 #156334
  • gh-145177: Upgrade to Emscripten 6.0.9 #156804
  • gh-145177: Update to Emscripten 6.0.10 #157935
  • gh-145177: Update to Emscripten 6.0.11 #158627
  • gh-145177: Update to Emscripten 6.0.13 #160854
  • gh-145177: Update to Emscripten 7.0.0 #161527

Activity

Next
  1. hoodmane
    added a commit that references this issue on Feb 24, 2026

    pythongh-145177: Support multiple Emscripten versions for Emscripten …

    4513656
  2. StanFromIreland
    added
    type-featureA feature request or enhancementA feature request or enhancement
    OS-emscripten
    on Feb 24, 2026
  3. freakboy3742 commented on Feb 25, 2026

    @freakboy3742
    freakboy3742
    on Feb 25, 2026
    Contributor
    More actions

    I did some preliminary work on the buildbot in preparation for this about 6 months ago, and then got distracted by other things. Thanks for picking this up again, @hoodmane.

    Agreed that this is something that needs to be addressed, as it's a blocker on us bumping the Emscripten version. I don't recall if we were going to lock the Emscripten version for the pyodide_2025_0 tag at beta 1 or RC1 - but if it's beta 1, time is obviously a factor.

    The one question I've got about the design specification here is whether a separate file is the best way to handle version specification. Having it in a separate file isn't a huge problem to parse... but if it was a constant in the Emscripten build script to start with that you can access with python -m emscripten --emdsk-version, doesn't that simplify the common use cases (in that it doesn't need independent file access and parsing)?

    On the subject of the build script - there are some other housekeeping items that I'd like to address:

    1. clean should be a little more selective. It currently destroys all of cross-build; it should only be purging the parts of cross-build that are emscripten specific (so that Emscripten, iOS and Android builds can co-exist). This is admittedly a "me" problem... but it's a problem I have :-)
    2. The cross-build directory name should be configurable. Again, this is somewhat a "me" problem... but I currently need to have cross builds for 3.10-3.15, and they can't currently co-exist.
    3. We shouldn't be building dependencies (libFFI and mpdec) on every build. A similar caching strategy to the one described for EMSDK should be possible - look to this directory; if the cache has a build for the right emscripten version, use it rather than rebuilding.
    4. @brettcannon has been trying to move all the platform build tooling to the Platforms folder;

    These issues don't necessarily need to be handled all in one PR - and I'm happy to deal with the ones that are me problems :-) However, we do want to minimize the number of changes that are needed in the buildbot configuration, and we need to be aware how the impact of changes in the interface to building will impact on the ability of the buildbot configuration to identify which Python version is being built.

  4. hoodmane commented on Feb 25, 2026

    @hoodmane
    hoodmane
    on Feb 25, 2026
    ContributorAuthor
    More actions

    a separate file is the best way to handle version specification. Having it in a separate file isn't a huge problem to parse... but if it was a constant in the Emscripten build script to start with that you can access with python -m emscripten --emdsk-version, doesn't that simplify the common use cases (in that it doesn't need independent file access and parsing)?

    I don't think it matters that much, but sure I can switch to that approach.

  5. hoodmane commented on Feb 25, 2026

    @hoodmane
    hoodmane
    on Feb 25, 2026
    ContributorAuthor
    More actions

    Updated the PR.

  6. hoodmane commented on Feb 25, 2026

    @hoodmane
    hoodmane
    on Feb 25, 2026
    ContributorAuthor
    More actions

    @freakboy3742 should clean only remove cross-build/wasm32-emscripten and leave alone cross-build/build for now?

  7. hoodmane commented on Feb 25, 2026

    @hoodmane
    hoodmane
    on Feb 25, 2026
    ContributorAuthor
    More actions

    there are some other housekeeping items that I'd like to address:

    I opened #145219 for items 1-3. Item 4 is tracked as #145176.

  8. brettcannon commented on Feb 25, 2026

    @brettcannon
    brettcannon
    on Feb 25, 2026
    Member
    More actions

    The one question I've got about the design specification here is whether a separate file is the best way to handle version specification.

    WASI does it in a separate file to make backports easier; you can just copy the file blindly as a backport if the per-Python variance is separate from the code.

  9. freakboy3742
    added a commit that references this issue on Mar 6, 2026

    gh-145177: Support multiple Emscripten versions for Emscripten buildb…

    c3fb0d9
  10. miss-islington
    added a commit that references this issue on Mar 6, 2026

    pythongh-145177: Support multiple Emscripten versions for Emscripten …

    959bb86
  11. freakboy3742
    added a commit that references this issue on Mar 8, 2026

    [3.14] gh-145177: Support multiple Emscripten versions for Emscripten…

    ae6c211
  12. hoodmane
    closed this as completedon Mar 9, 2026
  13. hoodmane
    added 2 commits that reference this issue on Mar 19, 2026

    pythongh-145177: Put node version into emscripten/config.toml as well.

    f7b4182

    pythongh-145177: Add make-dependencies command to emscripten build sc…

    9fef69b
  14. 39 remaining items

  15. freakboy3742
    added a commit that references this issue on Jul 19, 2026

    gh-145177: Upgrade to Emscripten 6.0.3 (#154029)

    51de91d
  16. freakboy3742
    added a commit that references this issue on Jul 26, 2026

    gh-145177: Upgrade to Emscripten 6.0.4 (#154743)

    993a0c6
  17. freakboy3742
    added 2 commits that reference this issue on Aug 4, 2026

    gh-145177: Upgrade to Emscripten 6.0.5 (#155179)

    83b3354

    gh-145177: Upgrade to Emscripten 6.0.6 (#155260)

    2dcb32b
  18. mbeijen
    added 3 commits that reference this issue on Aug 14, 2026

    pythongh-145177: Upgrade to Emscripten 6.0.4 (python#154743)

    57bc4de

    pythongh-145177: Upgrade to Emscripten 6.0.5 (python#155179)

    be30541

    pythongh-145177: Upgrade to Emscripten 6.0.6 (python#155260)

    19933cb
  19. freakboy3742
    added a commit that references this issue on Aug 25, 2026

    gh-145177: Upgrade to Emscripten 6.0.8 (#156334)

    8e3271d
  20. clin1234
    added a commit that references this issue on Aug 27, 2026

    pythongh-145177: Upgrade to Emscripten 6.0.8 (python#156334)

    b862021
  21. freakboy3742
    added a commit that references this issue on Sep 2, 2026

    gh-145177: Upgrade to Emscripten 6.0.9 (#156804)

    3daa7f8
  22. clin1234
    added a commit that references this issue on Sep 12, 2026

    pythongh-145177: Upgrade to Emscripten 6.0.9 (python#156804)

    bcf0950
  23. hoodmane
    added a commit that references this issue on Sep 21, 2026

    pythongh-145177: Update to Emscripten 6.0.10

    8ce0643
  24. freakboy3742
    added a commit that references this issue on Sep 22, 2026

    gh-145177: Update to Emscripten 6.0.10 (#157935)

    10e308c
  25. freakboy3742
    added a commit that references this issue on Oct 29, 2026

    gh-145177: Update to Emscripten 6.0.13 (#160854)

    a9a81b1
  26. freakboy3742
    added a commit that references this issue on Nov 9, 2026

    gh-145177: Update to Emscripten 7.0.0 (#161527)

    c07d1f4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    OS-emscriptentype-featureA feature request or enhancementA feature request or enhancement

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      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.