Skip to content

fix: run remote generators with Chromium's bundled python - #922

Merged
MarshallOfSound merged 2 commits into
electron:mainfrom
nornagon:fix/remote-generator-python
Oct 23, 2026
Merged

MarshallOfSound merged 2 commits into
electron:mainfrom
nornagon:fix/remote-generator-python

Conversation

@nornagon

@nornagon nornagon commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

#889 sets remote_command = "python3" on the remote generator rules, which only works if the worker image has python3 installed.

Chromium's rules no longer need that. Since crrev.com/c/8160801 they run the Linux python3 from third_party/cpython3 and add it to their inputs, so we've been uploading it and then ignoring it. This drops the override.

  • That python is fetched on every host OS, so macOS and Windows hosts have it too.
  • Older branches are unaffected: Chromium's rules there already say python3.

Also gives the two grit rules a 10 minute timeout. They set none, so siso asks for 2 hours, which backends with a lower cap reject.

Tested on a Linux host against a backend whose workers have no python3: all 2,113 generator steps in electron ran remotely, with output identical to a local build.

Not tested on Electron's RBE or from macOS/Windows hosts.

The generator steps' action digests change, so expect cache misses for them on the first build after merging.

@nornagon
nornagon requested review from a team and ckerr as code owners October 23, 2026 15:51
@nornagon nornagon changed the title Fix/remote generator python fix: run remote generators with Chromium's bundled python Oct 23, 2026
The mojom, Blink, grit and TypeScript/WebUI generator steps were forced to
run as plain `python3` on the remote worker. That only works if the worker
image has python3 installed; otherwise they fail with "python3: not found".

This matched Chromium's own rules when it was added. Chromium has since
switched them to the Linux python3 it ships in third_party/cpython3
(crrev.com/c/8160801) and adds that interpreter to each rule's inputs, so it
was already being uploaded and then ignored. Stop overriding remote_command
so it gets used.

Branches from before that change are unaffected, because their rules already
say `python3`.
Chromium's two grit rules set no timeout, so siso requests a 2 hour action
timeout for them. A backend with a lower limit rejects the action outright
instead of running it.

Default the remote generator rules to 10 minutes. The other eight rules
already set 2 minutes and keep it.

@ckerr ckerr left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks fine to me.

edit Other than needing signed commits to satisfy the policy bot

@nornagon
nornagon force-pushed the fix/remote-generator-python branch from 4e4f763 to 8f4e249 Compare October 23, 2026 17:43
@nornagon

Copy link
Copy Markdown
Contributor Author

@ckerr commits are signed now!

@MarshallOfSound
MarshallOfSound enabled auto-merge (squash) October 23, 2026 18:07
@MarshallOfSound
MarshallOfSound merged commit f3e78a8 into electron:main Oct 23, 2026
13 checks passed
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.

3 participants