-
-
Notifications
You must be signed in to change notification settings - Fork 634
Implement compatibility with pip 25.3 #2253
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
base: main
Are you sure you want to change the base?
Conversation
|
I don't think a test is required as it's a bugfix that depends on upstream pip. If I do need to include a test, say the word and I will give it a go. |
|
closes #2252 |
webknjaz
left a comment
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 for starting this effort!
Here's a few other things that are required to make this mergeable:
- Bump 25.2 to 25.3 in the supported marker in
tox.ini— so that we're actually testing this change in CI - Deprecate the
--use-pep517, at least when pip is 25.3+ with a plan to drop in from the user-facing CLI later. Add adeprecationchange note about this. - Have a regression test for the change or make sure that it is already covered elsewhere (having the CLI setting true/false); plus a test for the deprecation.
I have bumped. Could you provide some guidance for the deprecation? The use-pep517 option was never explicitly supported and thus, is never actually mentioned. I will check the tests whenever the |
@shifqu are you saying this is coming from
I approved the CI run and it's now evident that a bunch of other tests are failing. Things like P.S. Note that if you're planning to stick around and get involved more, you can log in at https://jazzband.co to join the org. This will result in you not having to go through the CI approvals. Alternatively, if you get some other small PR merged, GH will stop requiring approvals in your following PRs too. |
|
@shifqu FYI you should be able to reproduce the failures locally with something like |
c7cf286 to
0a5a68d
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Indeed, this is coming from pip-args. I will check to see where exactly we can warn or error out.
Thanks, I have joined jazzband and ran the CI. Still some failures, but they are somewhat cryptic to me. The global_options one was very clear, but here it just says pip has failed. I am looking into it locally though, as I can reproduce there. |
Yeah, I find it a bit annoying having to go through the Click testing layer when things fail. Here's how the CLI entrypoints are invoked: https://click.palletsprojects.com/en/stable/testing/ / https://click.palletsprojects.com/en/stable/api/#testing. Sometimes, running a single test with |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
b172e9e to
4a6b1dc
Compare
|
So locally I have found out that for some tests the output is |
|
@shifqu not sure — do you have a log to post? Any isolated repro? |
|
@webknjaz yes -- I have rebased the rerun failed tests in this PR and the outputs show the same thing. For tests with legacy resolver the setuptools error is present, for backtracking resolver tests, it shows a more generic, less useful error. To reproduce locally with pdb I used the same command you suggested: The commands are for the failing tests I pasted above. One for backtracking and one for legacy respectively. Unfortunately I am unable to make much of these errors as I don't have a very good understanding of the tests (yet) Edit: |
|
@sirosen yeah, I suppose. It's easier to pass a |
🤦 Yep, totally easier than what I suggested! -commands = pytest {posargs}
+commands =
+ py38: pytest --fail-under=98 {posargs}
+ !py38: pytest {posargs}Does that seem right? Maybe there's a better way? I'll open a separate issue for tracking the idea of doing this via a coverage plugin, so that we can handle more cases as they crop up. |
set_env =
py38: PYTEST_ADDOPTS = {env:PYTEST_ADDOPTS} --fail-under=98 |
|
If that works it's preferable. I wasn't sure if tox respects that layered with the existing |
|
So would that mean in tox.ini under setenv? setenv =
coverage: PYTEST_ADDOPTS=--strict-markers --doctest-modules --cov --cov-report=term-missing --cov-report=xml {env:PYTEST_ADDOPTS:}
py38: PYTEST_ADDOPTS=--fail-under=98As I think the |
|
You're right. |
|
@sirosen I also realized the Python 3.8 jobs seem to skip the codecov coverage upload step. So I can't see what it is that isn't covered in that env. I suppose it's those pip version conditionals as they also coincide with Pip dropping support for Python 3.8. |
tox.ini
Outdated
| commands = | ||
| py38: pytest --fail-under=98 {posargs} | ||
| !py38: pytest {posargs} |
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.
Wonder if this doesn't work due to TOXENV=pipsupported-coverage rather than py38. Hopefully, using those pragmas (https://github.com/jazzband/pip-tools/pull/2253/files#r2501228610) will help.
🤔 Looks like this is only happening for failures.. I should add a |
485c535 to
b74c238
Compare
Co-authored-by: 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) <[email protected]>
Co-authored-by: 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) <[email protected]>
Co-authored-by: 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) <[email protected]>
|
@shifqu I've added the pragmas you missed. Will see if that will handle the CI properly.. |
|
Ah sorry, @webknjaz , I missed those indeed. Lol, one more check failing. FAIL Required test coverage of 99.0% not reached. Total coverage: 98.99% 0.01% 😢 |
That's exactly why we need conditional pragmas everywhere and the target of 100%. Without that, the ratio of covered lines to the total number is unstable (because the total number of lines changes, even if your patch is 100% covered). |
|
@sirosen perhaps we should look into adding pragmas everywhere as a prerequisite for this PR? https://app.codecov.io/gh/jazzband/pip-tools/commit/30ed5888bba3f68026592b89a257281fec5b940f/tree?search=&displayType=list shows 9 partials and 12 fully uncovered lines. This seems doable. |
pip 25.2 ships with Python 3.14.0. If we upgrade to 25.3 we run into an incompatibility between pip-tools and pip. Progress on fixing it is being tracked here: jazzband/pip-tools#2253
pip 25.2 ships with Python 3.14.0. If we upgrade to 25.3 we run into an incompatibility between pip-tools and pip. Progress on fixing it is being tracked here: jazzband/pip-tools#2253
pip 25.2 ships with Python 3.14.0. If we upgrade to 25.3 we run into an incompatibility between pip-tools and pip. Progress on fixing it is being tracked here: jazzband/pip-tools#2253
pip 25.2 ships with Python 3.14.0. If we upgrade to 25.3 we run into an incompatibility between pip-tools and pip. See [1] for progress on fixing the incompatibility. See [2] for the GitHub action docs on pip-version. [1] jazzband/pip-tools#2253 [2] https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#using-the-pip-version-input
pip 25.2 ships with Python 3.14.0. If we upgrade to 25.3 we run into an incompatibility between pip-tools and pip. See [1] for progress on fixing the incompatibility. See [2] for the GitHub action docs on pip-version. [1] jazzband/pip-tools#2253 [2] https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#using-the-pip-version-input
Removed
use_pep517reference to enable compatibility with pip 25.3+Resolves #2252.
Contributor checklist
changelog.d/(seechangelog.d/README.mdfor instructions) or the PR text says "no changelog needed".Maintainer checklist
skip-changeloglabel.