-
-
Notifications
You must be signed in to change notification settings - Fork 611
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
Deprecation policy of supported pip versions #926
Comments
@vphilippon @davidovich I've pinned this and pinged you guys to bring more attention to the important issue. |
For extra context, I'm linking here pip's changelog, and noting from it that:
Notes on other projects:
Looking at these, I'd support "casually" deprecating But I'm an update junkie. I personally wouldn't mind deprecating anything older than Alpine's stable offering, or option 3 in OP. I don't think option 2 would be sensitive enough to specific pip release fixes or features that this project may find important. It's disheartening to see these very old packages in the table, and while I don't normally like vendoring, this data along with the nature of |
Thanks @atugushev for opening up the discussion, and thanks @AndydeCleyre for the breakdown of (Grab onto something, wall-of-text incoming!) First off, I'd strongly suggest against vendoring pip once again. By doing that, Now about the range of supported As I was done writing this bit, I was about to suggest keeping support for And then I read the table again, just to see how that suggestion held up over time.
Oh, hohohoho heck no. For that other baseline, maybe keeping 1 year worth of [1]: That's a thing I started thinking about when comparing how [2]: Not entirely true, |
I like the idea of supporting only the last minor version. Add On the other hand, it makes a developer's life easier, but not a user's one, which is a poor strategy in most cases of software development. |
I second @atugushev comment. I believe should someone prefer to use an old version of pip, they might as well use an old version of pip-tools too. We have barely enough maintainers as it is, we simply can't effort to support all old versions. I personally don't even consider dropping an old version a breaking change every package explicitly defines its dependencies. Possible dependency conflicts will be displayed by pip. In any event, I don't see this as a problem for users. They will see the dependency update and update it or not 🤷♂ Still, it doesn't change the fact, that we should definitely drop support for all old version. It will significantly reduce overhead for us and propel our other efforts. New features that users will benefit from. |
All things considered, I think its reasonable to drop support of older As suggested by others before, it would be best to make sure we have at least one version of I would still treat this About adding |
I'm okay with
So we can release |
Yes please, we should also drop Python to in the same release. A clean cut. |
Do we need a depreciation period? This would help to bring the users' attention and we could get feedback. |
Strictly speaking we don't need to do anything. But it's rather uncommon to deprecate dependencies. Deprecation is usually done for Python APIs. What we should do however is to add |
I'm inclined to agree with you 👍
FYI #889. |
Regarding using I think we can have Regarding Python 2.7 support drop, suggested by @codingjoe, I would rather suggest to follow what My reasons are based on the discussion that lead If there's a need for new |
@vphilippon I see your point regarding Python 2 and I'd love to agree if it wasn't for previous experiences. Pip's policy is very vague, which is likely to become a problem. It does not clearly define responsibilities or documents how bugs reported on Python 2 will be treated. It leaves me with more questions than answers and might promote a false sense of security to Python 2 users. I am also not super unhappy with the discussion. It's mostly driven by corporations running won't update their legacy systems at the cost of people who dedicate their free time to open source. I for one will not write a single line of Python 2 compliant code anymore. Finally, if Django with 100 times more users than this package was able to drop Python 2 support years ago, I don't see why we can't. I personally see a lot more risks and issues keeping Python 2 support, than simply with dropping it. |
I'd prefer to start with dropping the old pip version. Later, we can drop the python2 support as soon as pip does. |
Certainly, I'd also prefer to do those changes separately. |
It's settled then, let's drop the old versions. It's a huge amount of work to drop pip<19.3 support (mostly for reviewers, for it would touch lots of LoC). Next version pip==20.0 is going to be released very soon, approximately 2020-01-15. Owing to a lack of time I suggest at first to release pip-tools compatible with pip==20.0 in the old way (WIP #1024) and after that start to work on dropping the old versions. |
@vphilippon FYI, |
@fumblehool was the unpin unintentional? I believe we should keep the issue pinned, until we close it. |
Apologies @atugushev , the unpin was unintentional. |
@fumblehool no worries! 😉 |
FYI, #1055 is WIP for this issue. |
Hi all, #1055 is ready to review. I'd appreciate any feedback 🙏 |
Now that #1055 is merged, anything left for this issue? |
It might be considered to be resolved. Recently though, we discussed privately with @vphilippon that it would be nice to have a section in README which would help users find the version of pip-tools with support for a specific version of
|
Tracking issue #1089. |
|
I've unpinned the issue since 5.0.0 is went smoothly. |
What's the problem this feature will solve?
Since EOL for Python 2 is coming it's time to discuss about deprecation policy of supported pip versions. Currently, pip-tools supports the following pip versions:
Fortunately, pip is under active development and refactoring. The problem is each supported pip version increases CI dimensions and version branches in code, which makes hard to maintain pip-tools.
Describe the solution you'd like
Possible solutions are to prepare a deprecation policy based on:
Alternative Solutions
Vendor pip.
Additional context
This issue follows up on the discussion started in #853.
The text was updated successfully, but these errors were encountered: