Uh oh!
There was an error while loading. Please reload this page.
Update buildbot to use XCframework build script. - #691
Conversation
vstinner
commented
Mar 26, 2026
Correct. IMO it's an acceptable trade-off. I don't see any simple solution using buildbot API to use different steps depending on an actual check run on the worker (ex: check if
|
encukou
commented
Mar 26, 2026
It's probably not worth worrying about 3.13. For 3.14, maybe do something like |
freakboy3742
commented
Mar 26, 2026
👍
Good idea - I'll push an update shortly. |
39e0ec3 to
1ee9d59Compare| [ | ||
| ShellCommand( | ||
| name="Set up compatibility symlink (will fail on <= 3.13 branches)", | ||
| command="[ -e Platforms/Apple ] || ln -s ../Apple Platforms/Apple", |
There was a problem hiding this comment.
The docs say single-string format should work...
The Platforms folder exists on 3.14; it doesn't on 3.13 - so this command will fail early on a 3.13-based build.
87b6799 to
2de77fdCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
vstinner
left a comment
There was a problem hiding this comment.
LGTM. python/cpython#146497 landed in the Python main branch, so this PR is ready to be merged, right? Just one coding style suggestion :-)
| self.addSteps( | ||
| [ |
There was a problem hiding this comment.
Coding style suggestion: you may move [ after addSteps( to remove one indentation level.
| self.addSteps( | |
| [ | |
| self.addSteps([ |
freakboy3742
commented
Mar 29, 2026
Correct. I'll wait until I know there's someone around who can poke the buildbot in case something goes wrong.
Fixed. |
Uh oh!
There was an error while loading. Please reload this page.
I merged the change and deployed manually the change. I forced a new build on the iOS 3.x worker: https://buildbot.python.org/#/builders/1380/builds/6193 Ooops, the worker uses Python 3.9 and I wrote python/cpython#146624 to use Python 3.9 type annotations: use |
freakboy3742
commented
Mar 30, 2026
Oops indeed... 🤦 Python 3.9 is the version that comes with Xcode; I'll make a note that when I update the buildbot to macOS 26, I also need to fix the Python setup. |
vstinner
commented
Mar 30, 2026
New build, new error: https://buildbot.python.org/#/builders/1380/builds/6195 Traceback (mostrecentcalllast):
File"/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/runpy.py", line197, in_run_module_as_mainreturn_run_code(code, main_globals, None,
File"/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/runpy.py", line87, in_run_codeexec(code, run_globals)
File"/Users/buildbot/buildarea/3.x.rkm-arm64-ios-simulator.iOS-simulator.arm64/build/Platforms/Apple/testbed/__main__.py", line436, in<module>main()
File"/Users/buildbot/buildarea/3.x.rkm-arm64-ios-simulator.iOS-simulator.arm64/build/Platforms/Apple/testbed/__main__.py", line387, inmainclone_testbed(
File"/Users/buildbot/buildarea/3.x.rkm-arm64-ios-simulator.iOS-simulator.arm64/build/Platforms/Apple/testbed/__main__.py", line182, inclone_testbedframework.relative_to(xc_framework_path.parent, walk_up=True)
TypeError: relative_to() gotanunexpectedkeywordargument 'walk_upwalk_up parameter was added to Python 3.12. |
freakboy3742
commented
Mar 30, 2026
I've now updated the iOS buildbot to use Python 3.12; that has unstuck the build, but it's now hitting a separate problem in the build. |
vstinner
commented
Mar 30, 2026
Follow-up fix: python/cpython#146628. |
vstinner
commented
Mar 30, 2026
3.13, 3.14 and 3.x buildbot workers are back to green. |
vstinner
commented
Apr 1, 2026
In the server logs, I started to see @freakboy3742: Any idea what's going on? |
freakboy3742
commented
Apr 2, 2026
I'm not exactly sure how it happened, but it looks like a second iOS buildbot was started (or tried to start). This might have been related to switching over to the 3.12 venv... but I don't remember seeing those errors at the time. I think I've cleaned it up now (at least, I'm not seeing any more message in the logs about duplicate workers). I'll keep an eye on it; let me know if you spot any more problems. |
vstinner
commented
Apr 2, 2026
Thanks. The "rejecting duplicate worker" error is gone :-) |
vstinner
commented
Apr 3, 2026
@freakboy3742: And the "rejecting duplicate worker" (rkm-arm64-ios-simulator) error is back. Maybe you have again two clients running in parallel? |
freakboy3742
commented
Apr 4, 2026
@vstinner I'm really confused about how this is happening... Looking at the logs, something happened at around 06:17 UTC on Thursday: I had to manually restart the buildbot at around 04:37 to correct a different error that started happening (some really odd file permission errors), but the buildbot came back online without any problems (as far as I can tell). It seemed to run happily until this 06:47 timestamp. That looks like it might coincide with the master server restart mentioned in Discord... but I can't explain why that would have caused a problem (or, more specifically, why it was only a problem with the iOS buildbot). When I logged in today and tried a So... it looks like it's restarted cleanly again... but I'm no wiser as to why this is happening. |
The iOS XCframework build script will shortly be moved to
Platforms/iOS.This updates the Buildbot config to use the new XCframework buildbot in "slow" mode for 3.15+ builds (ensuring a full, multi-architecture XCframework is built and tested.
I haven't pushed the corresponding CPython PR yet; this is to explore options for branch-based configuration of the build script.As I currently understand it, this will work for buildbot runs that are triggered on a merge of a PR on main, 3.13, 3.14, or the 3.15 branch (when it is forked). A PR build will succeed on main and 3.15 (when it is forked). But a PR build based off a 3.13/3.14 branch will fail (because there's currently no way to identify the base branch of a PR job).python/cpython#146497 has the changes necessary for this build script to work.
It introduces a symlink for 3.14 compatibility. It falls back to the old build script for builds explicitly on the 3.13 branch. PR builds based off a 3.13 branch will fail as the XCframework script wasn't introduced until 3.14, and there's not currently any way to identify the base branch for a "custom" PR build.