Repository navigation
fix(conda): build each macOS conda package on its own architecture (#1822) - #1825
Conversation
|
Verdict: NEEDS CHANGES at
Two statements in
Fix round under way. The cryptography choice on #1822 is still open. |
…1822) - cron-conda.yml, create-release.yml: the conda legs gain macos-26-intel, which builds osx-64 natively. macos-latest, an arm64 runner, publishes the osx-arm64 package it built instead of relabelling it osx-64 with conda convert, which copied its arm64 binaries unchanged. A leg whose conda built another platform fails before any upload. version_check still counts linux-64 and osx-64 alone. - util/conda_vendor.py: PLATFORMS is keyed by conda subdir and gains Intel macOS; --smoke fails unless info/index.json names this runner's platform and every ELF or Mach-O binary in the package is for it. - tests/project/test_conda_native_platforms_1822.py pins the label mapping against the runner-images snapshot, runs the build step with a stand-in conda, and reads stub binaries of each architecture. The #1660 and #1814 tests follow the new axis and index.json; releasing.rst's conda count and diagram, and the docs' create-release.yml line citations, follow too. tests/project passes and --check is unchanged. The smoke passes real manylinux, arm64 and x86_64 wheels and fails them relabelled. Closes #1822
12dcebf to
7b5299e
Compare
|
Verdict: GOOD TO GO at This verdict covers the PR as it stands, which takes option A from #1822: cryptography is built from source on the Intel leg. If you pick B or C there, I'll follow up with a revision. |
|
Coverage: 90.05% (unit tier, Python 3.15,
Per-file detail: the |
|
Please hold this one: your ruling on #1822 (option B, a platform pin for cryptography on Intel macOS) needs a revision first. The revision is under way. |
|
This merged before the option-B revision landed. That work continues in #1827, as a follow-up on top of |
Please follow the guide below
You will be asked some questions, please read them carefully and answer honestly
Put an
xinto all the boxes [ ] relevant to your pull request (like that [x])Use Preview tab to see how your pull request will actually look like
Searched for similar pull requests
Followed the coding style (
make pylint,make mypy,make isort)make testpasses, and a test case covers the change. Narrow runs only, listed below.Added a changelog entry under
docs/source/changelog/and regeneratedCHANGELOG.md, if the change is user-visible: N/A — centralised in docs(changelog): shared 1.5.0 changelog — long-lived, merges last (#610, #616, #617, #618, #620) #657What is the purpose of your pull request?
Tick the commit type your subject line carries.
fix— corrects a defectfeat— adds a featureperf— changes performance, not behaviourrefactor— changes neither behaviour nor performancetest— tests onlydocs— documentation onlyci— workflows or build toolingrelease— bumps the version or rolls up a distributionchore— anything elseDescription
Closes #1822. The
osx-64conda package used to be built on arm64macos-latestand relabelled withconda convert, so it shipped arm64 binaries (lxml, and since #1821 also cffi and cryptography).macos-26-intelbuildsosx-64. Per GitHub's runner docs,macos-15-intelandmacos-26-intelare the only Intel images, andmacos-13is gone.macos-latestpublishesosx-arm64. Anaconda already carries it for recent betas, because the old upload pushed the unconverted package too.ubuntu-lateststayslinux-64.conda convertremains. A leg whose build produced another platform fails before upload.{'linux-64', 'osx-64'}, as before.--smokenow checksinfo/index.jsonagainst the runner, and checks every ELF/Mach-O binary's architecture. Universal binaries pass if they carry the right slice. Run against real wheels, the arm64 wheels relabelledosx-64fail on every binary, and correctly labelled sets pass.tests/project/test_conda_native_platforms_1822.pypins the mapping in both workflows, runs the build step with a fakeconda, and tests the header reader. It fails onmain. The fulltests/projectrun gives 973 passed, 1 skipped.Decision needed (#1822): cryptography has shipped no Intel macOS wheel since 49.0.0 (verified: 48.0.1 is universal2; 49.0.0 and 50.0.2 have none). The
osx-64leg would therefore build it from source, probably linking the runner's Homebrew OpenSSL.Not verified: no Actions run was possible here, so the Intel leg, the source build and an actual Intel Mac import are all untested.