Pin Cython<3.3 for pyzmq source-build compat (master) - #70120
Open
dwoz wants to merge 1 commit into
Open
Conversation
dwoz
force-pushed
the
dwoz/fix/cython-3.3-pin-master
branch
from
August 22, 2026 22:45
037066f to
e111042
Compare
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.
What broke
Cython 3.3.0 was published to PyPI on 2026-08-22. It rejects variable
redeclarations that
pyzmq==27.1.0'szmq/backend/cython/_zmq.pystillemits:
pyzmq's own
pyproject.tomldeclaresbuild-system.requires = ["Cython>=3.1.1"]unpinned, so its isolated PEP 517 build env picks upCython 3.3.0.
Salt's onedir build sets
--no-binary=:all:(with a small allow-list) onLinux and macOS so that native deps link against the relenv toolchain. That
policy forces a pyzmq source build on every Linux/macOS × Python 3.10..3.14
target, so every onedir/RPM/DEB build broke.
Fix
Add
Cython < 3.3torequirements/constraints.txt.tools/pkg/build.pysets
PIP_CONSTRAINT=requirements/constraints.txtfor everypip installthat source-builds onedir deps, and
PIP_CONSTRAINTstill propagates toPEP 517 build envs on pip <26.2 (pip 26.1.2, which the current onedir ships,
emits a deprecation warning but still applies it). This caps pyzmq's build
env on the Cython 3.2 line, unblocking the source build.
Scope
Build-tooling only. No runtime deps, no
pyzmqversion change, nonoxfile.py/workflow changes. Cython is not a Salt runtime dep; it onlyappears as a transitive PEP 517 build requirement of source-built C
extensions.
Cross-branch
Same fix applied on every active branch:
Verification
pre-commit run --files requirements/constraints.txt changelog/*.fixed.md: clean