-
Notifications
You must be signed in to change notification settings - Fork 196
Pin secure test dependency floors and drop EOL Python 3.9/3.8 #2045
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
66a7d96
804b463
d2c3ac4
e87f214
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -29,7 +29,7 @@ stages: | |
| vmImage: ubuntu-latest | ||
|
|
||
| variables: | ||
| python.version: "3.9" | ||
| python.version: "3.10" | ||
|
|
||
| steps: | ||
|
|
||
|
|
@@ -125,8 +125,6 @@ stages: | |
|
|
||
| strategy: | ||
| matrix: | ||
| py39: | ||
| python.version: 3.9 | ||
| py310: | ||
| python.version: 3.10 | ||
| py311: | ||
|
|
@@ -170,8 +168,6 @@ stages: | |
|
|
||
| strategy: | ||
| matrix: | ||
| py39: | ||
| python.version: 3.9 | ||
| py310: | ||
| python.version: 3.10 | ||
| py311: | ||
|
|
@@ -215,11 +211,6 @@ stages: | |
|
|
||
| strategy: | ||
| matrix: | ||
| py39: | ||
| python.version: 3.9 | ||
| py39_32: | ||
| python.version: 3.9 | ||
| architecture: x86 | ||
| py310: | ||
| python.version: 3.10 | ||
| py311: | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This revision removes both
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks — this is the same x86-CI vs. win32-packaging tension raised (and discussed in depth) in the thread above, so I'll consolidate here and keep it open for a maintainer call rather than force a change in this PR. Both options you list have been evaluated, with evidence:
For context, this PR didn't create the gap: the only prior x86 leg was Recommendation: keep win32 packaging as-is in this PR (which you've approved) and track "restore an x86 test signal with wheel-only deps (gevent excluded on x86)" or "retire the win32 wheel surface" as a separate, deliberate follow-up. Happy to implement whichever direction you choose — leaving this open for your call.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks — this is the same x86-CI vs. win32-packaging tension raised (and discussed in depth) in the thread above, so I'll consolidate here and keep it open for a maintainer call rather than force a change in this PR. Both options you list have been evaluated, with evidence:
For context, this PR didn't create the gap: the only prior x86 leg was Recommendation: keep win32 packaging as-is in this PR (which you've approved) and track "restore an x86 test signal with wheel-only deps (gevent excluded on x86)" or "retire the win32 wheel surface" as a separate, deliberate follow-up. Happy to implement whichever direction you choose — leaving this open for your call. |
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📍 azure-pipelines/pipelines.yaml:211
This revision removes
py39andpy39_32and adds nothing in their place, so the Windows matrix is nowpy310–py314with zero 32-bit legs — yetsetup.py:is_applicablestill packageswin32artifacts (return plat in ("win32", "win-amd64")). debugpy continues to ship awin32wheel surface with no x86 CI signal. Either restore a singlepy310_32(architecture: x86) leg — and smoke-installtests/requirements.txton win32 cp310 to confirm the unpinned C-extension deps resolve — or removewin32fromsetup.py:is_applicableso packaging and CI agree. Do not merge with a shipped-but-untested architecture.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks — this is a real tension, but I don't think either literal option is the right change to make inside this PR, so I'm flagging it for a maintainer call rather than forcing it here. Reasoning, with evidence:
Option A — restore a
py310_32(x86) leg: This re-introduces the exact failure class this PR exists to remove. As established in the (now-resolved) thread above,geventships no cp310-win32 wheel (only...-cp310-cp310-win_amd64.whl), sopip install -r tests/requirements.txton win32 cp310 falls back to a source build of gevent (greenlet/libev/c-ares) and risks failing the leg at install. There's no PEP 508 marker that reliably distinguishes a 32-bit interpreter on 64-bit Windows (platform_machinereflects the OS, not the interpreter), so gevent can't be cleanly gated off only the x86 leg without either still source-building or silently dropping gevent coverage. Adding the leg back is therefore a coverage/risk tradeoff that you flagged yourself — a maintainer decision, not something I should force in autonomously.Option B — remove
win32fromsetup.py:is_applicable: This doesn't actually stop debugpy from shipping a win32 wheel —is_applicableonly filters which vendored pydevd native binaries (.exe/.dll/.pdb/.pyd) get copied into the wheel. Droppingwin32there would still build a win32 wheel, just a broken one missing the attach-to-process binaries. Genuinely retiring the win32 wheel surface means changing the build/packaging matrix and would break existing 32-bit Windows users — clearly out of scope for "drop EOL 3.9/3.8 + pin secure dep floors."Note this PR didn't newly create the gap: the only prior 32-bit leg was
py39_32, removed here solely because Python 3.9 is EOL. The win32 packaging surface is unchanged.My recommendation: keep win32 packaging as-is in this PR and track "restore an x86 test signal (wheel-only deps, gevent excluded on x86)" or "retire the win32 wheel" as a separate, deliberate follow-up. Happy to implement whichever direction you choose — leaving this thread open for your call.