chore(deps): drop unused twine pin from requirements-testing.txt - #1326
Draft
crowecawcaw wants to merge 2 commits into
Draft
chore(deps): drop unused twine pin from requirements-testing.txt#1326crowecawcaw wants to merge 2 commits into
crowecawcaw wants to merge 2 commits into
Conversation
twine is a publishing tool, not a test dependency, but it was pinned in requirements-testing.txt, which is installed on every leg of the 3.9-3.14 CI matrix. Nothing under test/ or scripts/ imports it, so the pin only cost install time in 18 jobs that never invoked it. The pin was also inert where twine actually runs: pipeline/build.sh and pipeline/build.ps1 do "pip install --upgrade twine" before pipeline/publish.sh calls "twine upload", so the publish path already resolved the latest twine regardless of the "== 6.*" pin. Removing it also unblocks twine 7 (aws-deadline#1314), which raised its floor to Python >= 3.10 and so could not be pinned in a file installed on the 3.9 matrix legs. The publish path is unaffected: the deadline wheel is universal (py3-none-any), the GitHub release workflows upload via pypa/gh-action-pypi-publish rather than twine, and the internal CodeArtifact publish runs on Python 3.13. Signed-off-by: Stephen Crowe <6042774+crowecawcaw@users.noreply.github.com>
crowecawcaw
force-pushed
the
chore/drop-twine-from-requirements-testing
branch
from
August 7, 2026 21:02
6f5a1e7 to
118b00a
Compare
crowecawcaw
marked this pull request as ready for review
August 7, 2026 21:08
andychoquette
approved these changes
Aug 7, 2026
crowecawcaw
marked this pull request as draft
August 7, 2026 21:24
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 was the problem/requirement? (What/Why)
#1314 (dependabot) bumps
twine == 6.*→7.*inrequirements-testing.txt. That PR's CI is red: twine 7.0.0 raised its floor to Python >= 3.10 (6.0.0 was>=3.8, 6.2.0>=3.9), andrequirements-testing.txtis installed on every leg of the 3.9–3.14 matrix incode_quality.yml:(Only the
ubuntu-latest, 3.9job actually failed there — the other 17 were cancelled by fail-fast.)Adding a
; python_version >= '3.10'marker would go green, but it papers over the real issue: twine does not belong inrequirements-testing.txt. Nothing undertest/orscripts/imports it. It was being installed into all 18 matrix jobs and never invoked by any of them.The pin was also inert where twine actually runs.
pipeline/build.shandpipeline/build.ps1dopip install --upgrade twinebeforepipeline/publish.shcallstwine upload, so the publish path already resolved whatever the latest twine was, regardless of the== 6.*pin.What was the solution? (How)
Delete the
twineline fromrequirements-testing.txt. That's the whole change — one line.This removes twine from all 18 CI matrix jobs and closes out #1314's intent (the publish path picks up twine 7 via the existing
--upgrade, as it always has). Thepipeline/scripts are deliberately left alone.On "do we need more than one Python version to release?" — no
The
deadlinewheel is universal (py3-none-any, confirmed by both the current PyPI artifact andhatch buildlocally), so publishing only ever runs on a single interpreter:manual_pypi_release.ymlpypa/gh-action-pypi-publishrelease_publish.ymlbuild-python-versionfromreusable_tag_release.ymlpipeline/publish.sh)I checked the internal CDK package that owns the CodeArtifact publish project: its Python constants are 3.13.14 for Linux/Windows/macOS, and the publish CodeBuild project uses
LinuxBuildImage.AMAZON_LINUX_2_5. Both are comfortably above twine 7's 3.10 floor, so the--upgrade twinein the publish path resolves fine.The 3.9–3.14 matrix is runtime test coverage for the library; it is not build or publish coverage. twine never needed to run on 3.9.
What is the impact of this change?
Removes a never-used dependency from 18 CI jobs. No change to the shipped package, to any runtime code path, or to the publish scripts.
How was this change tested?
Locally on Python 3.14, matching the three steps the CI matrix runs (
reusable_python_build.yml):hatch -v run lint— clean (ruff check, ruff format, mypy: no issues in 314 source files)hatch -v build— clean; produceddeadline-...-py3-none-any.whl+ sdist, confirming the universal-wheel claim abovehatch run test— 3158 passed, 21 skipped; coverage 77.55% (gate 69%)Also verified in a clean venv that
requirements-testing.txtresolves with no twine present, and that twine 7.0.0 installs and runs (twine --version) on Python 3.14.I have not exercised the internal CodeArtifact publish path end-to-end — that only runs in the internal pipeline. Since
pipeline/publish.shis untouched and already did--upgrade twine, its behaviour is unchanged by this PR.Was this change documented?
No user-facing change; no docs or changelog entry needed.
Is this a breaking change?
No.
This should supersede #1314 — worth closing that one if this merges. If the team would rather keep dependabot tracking twine here, the minimal alternative is
twine == 7.*; python_version >= '3.10'inrequirements-testing.txt; happy to close this in favour of that instead.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.