Skip to content

Conversation

@brettcannon
Copy link
Member

@brettcannon brettcannon commented Jan 16, 2026

Along the way, leave a deprecated Tools/wasm/wasi/main.py behind for backwards-compatibility.

Along the way, leave a deprecated Tools/wasm/wasi/__main__.py behind for backwards-compatibility.
Copy link
Member

@zware zware left a comment

Choose a reason for hiding this comment

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

LGTM with a CODEOWNERS nit and a future archaeology suggestion. Note that I didn't really actually review any changes in __main__.py since it's completely recreated.

Co-authored-by: Zachary Ware <zachary.ware@gmail.com>
@brettcannon brettcannon self-assigned this Jan 16, 2026
@AlexWaygood AlexWaygood removed their request for review January 16, 2026 23:45
Copy link
Member

@StanFromIreland StanFromIreland left a comment

Choose a reason for hiding this comment

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

Can you please update:

WASI_DIRS = frozenset({Path("Tools", "wasm")})

Copy link
Contributor

@freakboy3742 freakboy3742 left a comment

Choose a reason for hiding this comment

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

This set of changes all makes sense to me.

The only concern I have is related to the integration with buildbots. As a result of this change, the buildbot will be invoking the deprecated entry point. That's fine for initial continuity of compatibility, but it strikes me as fragile in the long term.

However, AIUI, the buildbot doesn't have the ability to be configured for PR configurations on a per-branch basis (i.e., it's not possible to do a PR build with knowledge that it's a PR against a 3.X branch, and adjust rules accordingly). That means:

  • it's not possible to fully deprecate the old endpoint until the oldest supported Python version has the new entry point
  • it's not possible to use any new feature of the entry point until such time as the old entry point has been deprecated.

The second point in particular is currently causing headaches for me with both Emscripten and iOS builds.

This doesn't have to block margin this PR; but this is a limitation that we'll need to address sooner rather than later, especially if we're planning to do this sort of migration for the Android, iOS, Apple and Tools/wasm/emscripten folders.

@mhsmith
Copy link
Member

mhsmith commented Jan 19, 2026

It might be a little awkward, but couldn't we make the buildbot run a short script that checks for the existence of certain paths in the repository and adapts accordingly?

@zware
Copy link
Member

zware commented Jan 19, 2026

We can do per-branch configuration on the buildbots, it's just not pretty :)

@brettcannon
Copy link
Member Author

As a result of this change, the buildbot will be invoking the deprecated entry point. That's fine for initial continuity of compatibility, but it strikes me as fragile in the long term.

There's a reason I set the stated deprecation until 3.15 is EOL. 😅 I do have a note to clean it up once 3.20 comes out.

  • it's not possible to use any new feature of the entry point until such time as the old entry point has been deprecated.

That was true before, though.

It might be a little awkward, but couldn't we make the buildbot run a short script that checks for the existence of certain paths in the repository and adapts accordingly?

Something like https://github.com/python/buildmaster-config/blob/48d410a498ed40d2ff4b76cca9d6c822f72c31e9/master/custom/factories.py#L910 ?

We can do per-branch configuration on the buildbots, it's just not pretty :)

You can do per-version if you set up distinct workers per version.

@brettcannon brettcannon requested a review from webknjaz as a code owner January 19, 2026 19:25
Copy link
Member

@webknjaz webknjaz left a comment

Choose a reason for hiding this comment

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

The CI changes look fine. I only noticed one outdated reference to the old folder.

@freakboy3742
Copy link
Contributor

[@zware]

We can do per-branch configuration on the buildbots, it's just not pretty :)

[@brettcannon]

It might be a little awkward, but couldn't we make the buildbot run a short script that checks for the existence of certain paths in the repository and adapts accordingly?

Something like https://github.com/python/buildmaster-config/blob/48d410a498ed40d2ff4b76cca9d6c822f72c31e9/master/custom/factories.py#L910 ?

Oh! TIL - I've had a couple of conversations with people about this and everyone said it wasn't possible and needed fixes in buildbot itself... clearly I was asking the wrong people (or the wrong questions :-) )

@webknjaz webknjaz moved this to 🧐 @webknjaz's review queue 📋 in 📅 Procrastinating in public Jan 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants