-
Notifications
You must be signed in to change notification settings - Fork 3k
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
refactor pip's use of "#egg=" #1289
Comments
@qwcode could you link to an example puppet / chef module that makes use of that currently? |
|
cc @coderanger |
To be fair, the reason I've not merged that PR is because I don't want to be parsing pip-specific URL syntax. |
the module we use at work uses a python helper module (that uses pip to handle the parsing), so no rewriting of pip in ruby. but regardless, the issue is whether the vcs requirement form should require or at least allow an identifier tag like if you're only thinking about what pip needs to do an install, then you could argue it's not necessary (and worse actually misleads pip). you could just say that pip should always be cloning and using the real name and version from setup.py to determine how it gets processed relative to the other requirements. but for a CM system that might want to support the vcs url form as a valid way to declare a resource (i.e. not just package specifiers 'pkg==version'), then having an identifier like |
So, I've realised that although pip might deprecate making use of that field, there's no-one saying we should disallow the fragment being in the url, right? |
but I'm thinking it's more than just allowing arbitrary fragments. moreover, pip might start using the conventions itself for fast determination of fulfillment:
|
I think that this is still an issue, I'm not sure it makes sense to get rid of it, but at the very least we should rename it since we have deprecated eggs and the terminology is confusing to people. |
I think it should (very) slowly be deprecated in favor of the PEP-508 blessed |
Yea that's likely a reasonable outcome. |
So... the actionable part of this would be to deprecate Would this be a documentation only change? |
Ping? |
Maybe a warning to suggest the new PEP 508 syntax ? And a very long deprecation period... |
Cool. Let's do this then. |
This issue is a good starting point for anyone who wants to help out with pip's development -- it's simple and the process of fixing this should be a good introduction to pip's development workflow. See the discussion above to understand what the desired fix is. Feel free to give me a mention "@pradyunsg" if you have any doubts or questions. |
So, the solution to it is to deprecate the use of |
Merging in #9429, which is basically another reason why Proposed solution from #9429 (comment):
|
I've given some more thought to this, and I think the first thing to do is to support |
I opened #9471 for |
Wouldn't ignoring fragment with a warning be more sensible here? |
Cross-linking #10002 (comment) for my thoughts about warnings (tl;dr I don’t think we should do this for now). |
Hello. It seems like this issue has been fragmented into many issues that were already resolved. Can we close this one? |
This is still definitely relevant. I've poked at pypa/packaging#264 again, to get the ball rolling again for #9471. |
Cross-referencing: there's a discussion here on removing |
It was suggested in the forum's discussion to remove the
The only way it can work currently is as follows:
To my knowledge, there is no other way than using an egg fragment to specify an extra, so if this gets removed before an equivalent implementation in |
The PEP 508 syntax should provide equivalent functionalities, the fact that |
Cross-referencing #11617 since that's the one that is linked to in the deprecation warning for the issue I mentioned above. |
Ah, it seems that it's not possible to add cross-references on locked issues/PRs. Then I would suggest to change the deprecation warning:
To:
Ie, adding a link to the current issue, since #1161 has no relevant information for the case of |
Hello from 2024, will installing an editable from a VCS URI really be removed in pip 25? https://github.com/common-workflow-language/cwl-utils/blob/67dbfa590c733b6ad5bf9139866e42cb5cd02aa2/release-test.sh#L64 Thanks |
Just to clarify, extras are allowed in (URL specifiers)[https://packaging.python.org/en/latest/specifications/dependency-specifiers/]:
As noted (above)[https://github.com//issues/1289#issuecomment-1510735040], support for the But at some point, you will need to switch from |
I suspect pip doesn't really need the"egg=" value (assuming we make some modifications)
setuptools used it in two cases:
pip's support is like so:
3 changes are needed, to make pip not require "egg=":
even if it turns out
#egg=
is not used in any way by pip, it may be important to document a convention as visual aid (possibly as#pkg=
, see #1265), when the vcs url would otherwise contain no clear indication as to what it is. I know for example that various CM modules for chef and puppet make use of this indicatorThe text was updated successfully, but these errors were encountered: