pip icon indicating copy to clipboard operation
pip copied to clipboard

Pip releases should test against all versions of Python for Windows

Open notatallshaw opened this issue 1 year ago • 5 comments

What's the problem this feature will solve?

Currently for regular PRs pip only tests against the oldest supported Python version and the newest supported Python version: https://github.com/pypa/pip/blob/ec5faeac4ef6bae97df0e779566ceb2b0de89d3f/.github/workflows/ci.yml#L175-L182

But when pip does a final release I think it would be reassuring for all versions of Python to be tested against.

Describe the solution you'd like

Somehow in the GitHub workflow file have a condition that runs all untested versions of Python for the final release.

Alternative Solutions

Do nothing.

Additional context

I don't know how to implement this yet, but if no one else does this I plan to spend a bit of time investigating this in the future and raise a PR. I'm guessing have a job associated with a specific path filter on NEWS.rst that tests these versions of Python on Windows.

Code of Conduct

notatallshaw avatar Oct 13 '24 13:10 notatallshaw

The release process creates a branch named release/YY.N(.P), to using that to determine that more tests should run could be an option. Although as a RM I wouldn't want to discover issues at that stage.

Maybe a scheduled run of the pipeline with more tests enabled instead?

sbidoul avatar Oct 13 '24 15:10 sbidoul

Although as a RM I wouldn't want to discover issues at that stage.

Agreed. I think if we want to test against all Python versions, we should be doing that sufficiently before the release that we have the time to assess and fix any issues before starting the release. And in particular, anything that makes it the RM's responsibility to deal with failures here isn't reasonable - we recently changed policy to merge vendoring updates well in advance of a release in order to remove the risk that they cause issues with the release. Any testing of all Python versions should follow the same principle.

Maybe a scheduled run of the pipeline with more tests enabled instead?

That sounds like a better idea. Maybe run it quarterly, in the month before each release is due?

pfmoore avatar Oct 13 '24 16:10 pfmoore

There's already a weekly scheduled test run:

https://github.com/pypa/pip/blob/ec5faeac4ef6bae97df0e779566ceb2b0de89d3f/.github/workflows/ci.yml#L11-L12

Assuming there's a way to distguish that in the workflow file, seems like this would be a reasonable place to add these test runs based on feedback.

notatallshaw avatar Oct 13 '24 16:10 notatallshaw

We'd dropped this because Windows CI was exceedingly slow and we were hitting issues due to low quotas for the CI pipelines. I think we can reasonably remove that limitation now.

pradyunsg avatar Oct 13 '24 18:10 pradyunsg

IIRC we're on a [much larger] organisation plan now. Perhaps it would be easiest to run the full suite of Windows jobs across the entire Python version matrix. I'm a little worried that weekly runs may have poor visibility (AFAIK it's only maintainers that get notifications if they fail).

ichard26 avatar Oct 13 '24 23:10 ichard26