fix(ci): use uv to provide boto3 in the claw server release - #2105
Open
Vasileios Plavos (VasilisPlavos) wants to merge 1 commit into
Open
Conversation
The "Recover existing immutable target" step bootstrapped boto3 with `pip install --user`, which PEP 668 rejects on the macos-14 runner image where python3 is Homebrew's externally-managed interpreter. Both macOS matrix legs failed there, taking the whole BrowserOS neo release down with them, so the download/BrowserOS_neo* CDN aliases were never published and the README download badges still 404. uv is already installed by setup-uv two steps earlier and is used the same way further down this file, so run the recovery script through it instead of touching the system interpreter. No other step in the job needs boto3 - the remaining PYTHON_BIN blocks import only stdlib. Fixes browseros-ai#2104 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LBYURhVWXK7APhMfcCcx27
Contributor
|
PR author is not in the allowed authors list. |
Contributor
|
Thank you for your contribution! Before we can merge this PR, we need you to sign our Contributor License Agreement. To sign the CLA, please add a comment to this PR with the following text: You only need to sign once. After signing, this check will pass automatically. Troubleshooting
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #2104
Problem
Release: BrowserOS neo (full)fails on both macOS matrix legs. Run30975212125(2026-08-05), jobsdarwin-x64(92211393146) anddarwin-arm64(92211393165), both die inRecover existing immutable target:Setup PythonsetsPYTHON_BIN=python3on every non-Windows runner. On themacos-14image that is Homebrew's Python, which is PEP 668 externally managed, sopip install --user boto3is refused. Thelinux-x64andwindows-x64legs of the same matrix pass — this is macOS-only, and it reproduced on two independent runners, so it is deterministic rather than a flake.The step was introduced in 211f949 (#2096).
Because the release never completes,
release/publish.pynever writes thedownload/BrowserOS_neo*aliases thatrelease/common.pyderives fromartifact_prefix.https://cdn.browseros.com/download/BrowserOS_neo.dmgand.../BrowserOS_neo_installer.exeboth return 404 today, and those are the two URLs the README download badges point at.Fix
astral-sh/setup-uvalready runs two steps earlier, and this file already invokes Python throughuvfurther down. Doing the same here keeps the system interpreter untouched and behaves identically on macOS, Linux and Windows:--no-projectkeepsuvfrom trying to resolve a surrounding project for what is a standalone script.Scope
One line, one step.
PYTHON_BINand theSetup Pythonstep stay as they are — the later"$PYTHON_BIN"blocks in this job (Stamp release version,Build Rust binary,Package artifact zip) import only stdlib modules, so dropping the--userinstall has no downstream effect.boto3was needed by this step alone.Not addressed here
The same
pip install --userpattern appears at two more places in this file —Install R2 client(boto3) andInstall AWS CLI(awscli). Both are onubuntu-latest, so they aren't failing today, but they carry the same latent risk on a future runner image bump. Left out to keep this change minimal; happy to fold them in if you'd prefer.Testing
Not verified locally — the failure is specific to the macOS runner image and I don't have one. The change is confined to how a single step obtains
boto3; the Python script it feeds is byte-for-byte unchanged.