Repository navigation
build!: require Python 3.8+ and drop the BPC conversion (#2051) - #2053
Conversation
776bbbe to
e35f671
Compare
|
NEEDS CHANGES at
Also being cleaned up: the dead Checks that held:
|
e35f671 to
858f3e3
Compare
|
Pushed
The touched files and the floor test give |
|
GOOD TO GO at
The touched files and |
|
Red, being fixed: |
The owner ruled on #2040 that 1.5.0 is a full turn to Python 3.8+; the bpc-* backport tools are no longer maintained. - pyproject.toml: requires-python ">=3.8"; drop the bpc-* and pathlib2 requirements and the markers constant from 3.8 on (scapy's >= '3.7'). - setup.py: drop refactor() and the build commands that only ran it. - pcapkit: drop the version gates 3.8 can no longer take, in compat.py and the py37/py38 flags elsewhere; the compat names stay exported. - vermin.ini targets 3.8. - CI: drop the 3.7 KTLO legs, and empty coverage-comment.yml's EXPECTED, as the pypy3.10 legs install since #2040's cryptography cap. - Docs and comments that stated 3.6/3.7 support or the conversion, and the 1.5.0 changelog entries, CHANGELOG.md regenerated. - Tests: retarget the 3.7 pins; pin the floor, no bpc-* requirement and no constant marker; the updater does not re-add a dropped version. Affected test files pass, run one by one. Closes #2040
858f3e3 to
676ad23
Compare
|
Pushed |
|
GOOD TO GO at |
|
Coverage: 91.52% (unit tier, Python 3.15,
Per-file detail: the |
|
Ordering check on |
After #2053 setup.py was a Python 2 guard and a bare setup(); pyproject.toml declares everything, and the wheel builds the same files without it. - Delete setup.py and tests/project/test_setup.py. - Add tests/project/test_no_setup_py_2061.py: fails if setup.py returns, or if a COPY in examples/benchmark/Dockerfile names an untracked path. - examples/benchmark/Dockerfile: stop copying setup.py. - pyproject.toml, test_actions_pinned_1968: the static readme is now explained by Dependabot building the editable from pyproject.toml alone (fetch_project_file falls back to it when setup.py is absent), not by its stub setup.py. - util/classify_changes.py, tests/_tiers.py: examples no longer name the removed files. - Changelog entry in 1.5.0.rst; CHANGELOG.md regenerated.
After #2053 setup.py was a Python 2 guard and a bare setup(); pyproject.toml declares everything, and the wheel builds the same files without it. - Delete setup.py and tests/project/test_setup.py. - Add tests/project/test_no_setup_py_2061.py: fails if setup.py returns, or if a COPY in examples/benchmark/Dockerfile names an untracked path. - examples/benchmark/Dockerfile: stop copying setup.py. - pyproject.toml, test_actions_pinned_1968: the static readme is now explained by Dependabot fetching pyproject.toml in setup.py's place (fetch_project_file) and passing it through unstubbed, not by its stub setup.py. - util/classify_changes.py, tests/_tiers.py: examples no longer name the removed files. - Changelog entry in 1.5.0.rst; CHANGELOG.md regenerated.
After #2053 setup.py was a Python 2 guard and a bare setup(); pyproject.toml declares everything, and the wheel builds the same files without it. - Delete setup.py and tests/project/test_setup.py. - Add tests/project/test_no_setup_py_2061.py: fails if setup.py returns, or if a COPY in examples/benchmark/Dockerfile names an untracked path. - examples/benchmark/Dockerfile: stop copying setup.py. - pyproject.toml, test_actions_pinned_1968: the static readme is now explained by Dependabot fetching pyproject.toml in setup.py's place (fetch_project_file) and passing it through unstubbed, not by its stub setup.py. - util/classify_changes.py, tests/_tiers.py: examples no longer name the removed files. - Changelog entry in 1.5.0.rst; CHANGELOG.md regenerated.
make pylint,make mypy,make isort)make testpasses, and a test case covers the changeWhat is the purpose of your pull request?
build— changes the build system or external dependenciesDescription of your pull request and other information
Closes #2051. Closes #2040. The owner ruled that 1.5.0 requires Python 3.8+, because BPC is no longer maintained, and that the 3.7 KTLO legs go.
pyproject.toml:requires-python = ">=3.8", with no upper bound: nothing reads<4, and a cap gets copied into every dependent's metadata.bpc-*requirements and their note are gone.>= '3.7', andpathlib2for 3.4.setup.py: onlysetup()is left.refactor()and the four command overrides that existed only to call it are removed. The<= 2guard stays on purpose: pip builds metadata withsetup.pybefore it checksrequires-python, so a 3.8 guard would replace pip's clean error with a traceback (measured).compat.py,pcapng,pcap/frame,ethernet,arp,toolkit/pypcapfile,infoclassandprotocol. The 3.9–3.11 gates stay."3.7"is dropped from.github/python-versions.toml, so thePython,IntegrationandCompat3.7 KTLO legs go. No required check orneeds:named them, and the updater does not re-add a dropped EOL version, which a new test checks.EXPECTEDincoverage-comment.ymlis now empty. Its 3.7 entries are gone, and so is thepypy3.10entry, now stale: on ci(conda): upload the macos-26-intel legs with the anaconda CLI (#2044) #2049's CI that leg installed and passed 930 tests.targets = 3.8. It stays non-blocking.tests/project/test_requires_python_floor_2051.pyfails onmain'spyproject.tomlandvermin.ini(4 failed) and passes here. The pins of the old contract are updated; 284 affected test files pass.On 3.7,
pip install .now stops withERROR: Package 'pypcapkit' requires a different Python: 3.7.16 not in '>=3.8'.