Skip to content
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

Pip releases should test against all versions of Python for Windows #13011

Open
1 task done
notatallshaw opened this issue Oct 13, 2024 · 5 comments · May be fixed by #13014
Open
1 task done

Pip releases should test against all versions of Python for Windows #13011

notatallshaw opened this issue Oct 13, 2024 · 5 comments · May be fixed by #13014
Labels
type: maintenance Related to Development and Maintenance Processes

Comments

@notatallshaw
Copy link
Member

notatallshaw commented Oct 13, 2024

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:

- "3.8"
# Commented out, since Windows tests are expensively slow,
# only test the oldest and newest Python supported by pip
# - "3.9"
# - "3.10"
# - "3.11"
# - "3.12"
- "3.13"

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 notatallshaw added type: feature request Request for a new feature S: needs triage Issues/PRs that need to be triaged type: maintenance Related to Development and Maintenance Processes and removed S: needs triage Issues/PRs that need to be triaged type: feature request Request for a new feature labels Oct 13, 2024
@sbidoul
Copy link
Member

sbidoul commented Oct 13, 2024

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?

@pfmoore
Copy link
Member

pfmoore commented Oct 13, 2024

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?

@notatallshaw
Copy link
Member Author

There's already a weekly scheduled test run:

schedule:
- cron: 0 0 * * MON # Run every Monday at 00:00 UTC

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.

@pradyunsg
Copy link
Member

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.

@ichard26
Copy link
Member

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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: maintenance Related to Development and Maintenance Processes
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants