Repository navigation
fix(conda): pin cryptography 48.0.1 on Intel macOS, which has no newer wheel (#1827) - #1828
Merged
Merged
Conversation
…r wheel (#1827) - conda/requirements.txt: cryptography gets a line per platform pin. osx-64 takes 48.0.1, the newest release with an Intel macOS wheel (universal2), since 49.0.0 dropped them; every other build takes the installed release. Each conda leg's pip download evaluates the markers on its own runner, and build.sh installs what it fetched. - util/conda_vendor.py: PLATFORM_PINS holds that pin and its reason. The writer emits a line per pin; --check accepts them, and flags a pin that moved or went and a table entry no build can use. - tests/project/test_conda_cryptography_pin_1827.py pins the committed lines per build and covers the writer and --check, offline; the #1814 tests read the new parse shape. - cron-conda.yml: the comments say where the markers are evaluated. tests/project passes and --check passes on the committed file. pip resolves 48.0.1's universal2 wheel for osx-64 and 50.0.2 elsewhere, on each supported Python. Closes #1827
Owner
Author
|
Verdict: GOOD TO GO at
Non-blocking: the Intel leg's own |
Contributor
|
Coverage: 90.05% (unit tier, Python 3.15,
Per-file detail: the |
This was referenced Oct 16, 2026
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.
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 #1827. This implements option B from the ruling on #1822.
cryptography has shipped no Intel macOS wheel since 49.0.0, so the native
osx-64leg from #1825 would build 50.0.2 from source. That build probably links the runner's Homebrew OpenSSL.conda/requirements.txtnow pinscryptography==48.0.1, the universal2 wheel, with a PEP 508 marker forsys_platform == "darwin" and platform_machine == "x86_64". Every other build keeps 50.0.2. The markers take effect in each leg's ownpip download -r conda/requirements.txtstep, which runs on its native runner.util/conda_vendor.pykeeps the exception in aPLATFORM_PINStable, with the reason as a comment, and the writer emits the marked lines.--check: it now also fails when a fixed pin moves, and when the table names a package or platform no build uses. The next Conda Update cannot silently drop the pin.Verified:
packaging.markersselects 48.0.1 only onosx-64.pip download --only-binary=:all:with each platform's tags resolves the universal2 48.0.1 wheel on Intel macOS and 50.0.2 wheels onlinux-64andosx-arm64, for 3.11–3.15.tests/project/test_conda_cryptography_pin_1827.pyfails onmain(8 failed).tests/projectgives 981 passed, 1 skipped.Not verified: no Actions run.