From e65f58eb0d66bbc1e60303e3a35b5d5ef708f00b Mon Sep 17 00:00:00 2001 From: Brad Barnett <127794626+bdbarnett@users.noreply.github.com> Date: Tue, 10 Nov 2026 23:28:55 -0600 Subject: [PATCH] cloud-workspace-install: clone the CircuitPython commit the firmware pins The cloud install defaulted CircuitPython to 10.3.0, a major behind the firmware and the parity oracle. It now reads the circuitpython line of micropython-pydevices' DEPENDENCIES.lock, the way it already reads MicroPython's, and falls back to 11.0.0-alpha.2 when there is no lock. PYDEVICES_CP_TAG still overrides. I ran the reader against the current lock (it returns the pinned commit, which the clone helper fetches by full SHA) and with the lock missing (the fallback). bash -n and shellcheck are clean. I haven't run a full cloud install. --- scripts/cloud-workspace-install.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/cloud-workspace-install.sh b/scripts/cloud-workspace-install.sh index d6d7252..8886cef 100755 --- a/scripts/cloud-workspace-install.sh +++ b/scripts/cloud-workspace-install.sh @@ -225,8 +225,15 @@ mp_pin() { echo v1.29.0 fi } +# The CircuitPython commit comes from the same file, so a cloud checkout builds +# the interpreter the firmware and the parity tests use. +cp_pin() { + local lock="$REPOS/micropython-pydevices/DEPENDENCIES.lock" pin="" + [[ -f "$lock" ]] && pin=$(awk '$1 == "circuitpython" { print $3 }' "$lock") + echo "${pin:-11.0.0-alpha.2}" +} MP_TAG="${PYDEVICES_MP_TAG:-$(mp_pin)}" -CP_TAG="${PYDEVICES_CP_TAG:-10.3.0}" +CP_TAG="${PYDEVICES_CP_TAG:-$(cp_pin)}" shallow_clone_if_missing micropython https://github.com/micropython/micropython.git "$MP_TAG" shallow_clone_if_missing circuitpython https://github.com/adafruit/circuitpython.git "$CP_TAG" if [[ -f "$REPOS/micropython-pydevices/patches/apply_patches.py" ]]; then