CI: Python 3.12-related fixes on Cirrus CI #794
Merged
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.
Identify the Bug
CI is failing with Python 3.12 in Cirrus, as of #779.
(That PR fixed Python 3.12 issues in GitHub Actions, but introduced more ones in Cirrus, which we didn't catch right away, since Cirrus is currently running only once per day, on Mondays, Wednesdays and Fridays.)
Description of the Change
setuptools
on the Cirrus ARM Linux task.distutils
out of the box... and thepython3 -m pip install setuptools
command had been failing due to "no module named 'pip'"... We only need to addsetuptools
on Python 3.12 or later anyhow, and we should be able to doapt-get install python3-pip
at such a time as this would be needed, if ever.brew update
before runningbrew install
on the Cirrus Apple Silicon macOS task, so that it is aware of the existence of [email protected], and can install it successfully.These changes resolve the two Python 3.12-related issues in Cirrus (which were introduced alongside bona-fide fixes in #779, which is a PR I personally review-approved).
Alternate Designs
apt-get install python3-pip
on the Arm Linux task.brew update
, some other dependencies were unexpectedly updated as well, includinggit
andcurl
. This is somewhat desirable for supply-chain security in CI. It uses more CPU-time, so we should watch credit usage on the macOS tasks in Cirrus after this PR. But we're only using 14 credits (September) and 11 credits (October) lately, so we're not running too close to the 50 credit-equivalent free limit per month set by Cirrus.Possible Drawbacks
Actually upgrading to Python 3.12 on the macOS task unexpectedly increased macOS CI time by ~3 minutes on a test run. So, we should watch credit usage, but again, we're only using 14 credits (September) and 11 credits (October) lately, so we're not running too close to the 50 credit-equivalent free limit per month set by Cirrus.
Verification Process
Triggered a cron build on Cirrus to test this, CI is passing over there and a Rolling release was generated successfully. ✅
Release Notes
N/A (CI-only fix) but if I were to put it in a changelog it would be "Python 3.12-related fixes on Cirrus CI"