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

Remove support for pip<20.0 cache entries #7502

Closed
xavfernandez opened this issue Dec 19, 2019 · 7 comments · Fixed by #9438
Closed

Remove support for pip<20.0 cache entries #7502

xavfernandez opened this issue Dec 19, 2019 · 7 comments · Fixed by #9438
Labels
type: maintenance Related to Development and Maintenance Processes
Milestone

Comments

@xavfernandez
Copy link
Member

Cf https://github.com/pypa/pip/pull/7319/files#diff-e455c1048a1016c5fa2c413f52146488R142

@triage-new-issues triage-new-issues bot added the S: needs triage Issues/PRs that need to be triaged label Dec 19, 2019
@xavfernandez xavfernandez added this to the 21.0 milestone Dec 19, 2019
@xavfernandez xavfernandez added the type: maintenance Related to Development and Maintenance Processes label Dec 19, 2019
@triage-new-issues triage-new-issues bot removed the S: needs triage Issues/PRs that need to be triaged label Dec 19, 2019
@pfmoore
Copy link
Member

pfmoore commented Jan 9, 2021

A quick note. Pip 21.0 is due for release in about 2 weeks (see #9282). This item is on the 21.0 milestone, so it either needs to be implemented and merged to master before then, or it will miss the release (and I'll move it to the 21.1 milestone).

@pradyunsg
Copy link
Member

@pfmoore if there's any deprecations scheduled for this release, we'd either need to update the timeline in the codebose for them, or remove the deprecated code.

That's a consequence of how the deprecated function works - otherwise we'd actually create a hard break, since it raises an exception in the deprecated call instead of printing a warning.

@pfmoore
Copy link
Member

pfmoore commented Jan 10, 2021

I’m not quite sure what you mean here. Are you saying this is essential to avoid a broken release? If so, then as RM I need to go through the code checking for “deprecated in 21.0” calls and doing “something” for each of them. That’s fine and thanks for the heads up - is it covered in the “how to do a release” docs? Particularly what the “something” is... If it isn’t I should probably add it.

Also, should this be on the release issue rather than here? I’m not sure how it’s specific to this issue.

@pfmoore
Copy link
Member

pfmoore commented Jan 10, 2021

Hmm, I just checked. There are two deprecated(... gone_in"21.0") in the current code base:

  • Extras after specifiers (name>=1.0[extras])
  • git+git@ VCS specifiers

But thinking about it, after 21.0, deprecated will raise - is that not what we want to happen? The previously-deprecated approach is now an error? I'd be happy to accept PRs to give a better failure than the raise PipDeprecationError that deprecated raises, but that's mostly a cosmetic matter (and likely better handled by someone who understands the relevant code, not by the RM).

Did I miss your point here?

@pfmoore
Copy link
Member

pfmoore commented Jan 10, 2021

Actually I reviewed the link from this issue, and it looks like what you (and this issue) are saying is that because the original code was merged, old cache entries will get ignored once 20.0 gets released, without any warning.

Yep, that's what this issue is about - and I guess at this point, it's too late, as we won't have a release between now and 21.0 in which we warn. Looks like we missed the chance, so we either just close this issue, or we revert the change (which is likely hard, after all this time).

With my "release what's on master" philosophy, I'm going to say close this issue. But I'll leave it for now in case someone else wants to take a different approach. After 21.0 is released, if this is still open I'll just close it rather than moving it to the 21.0 milestone.

@sbidoul
Copy link
Member

sbidoul commented Jan 10, 2021

@pfmoore this particular issue is "just" about cleaning up legacy code. In #7319 (released in 20.0) the wheel cache layout was changed, but we made sure that pre-existing entries in the old layout were still used. What we implied in the release notes is that in 21.0 such entries would become ignored. There is no particular urgency, but since it should be easy to do and we announced it I'll see if I can do it.

@sbidoul
Copy link
Member

sbidoul commented Jan 10, 2021

Done in #9438

bors bot referenced this issue in duckinator/emanate Jan 31, 2021
215: Update pip to 21.0.1 r=duckinator a=pyup-bot


This PR updates [pip](https://pypi.org/project/pip) from **20.3.3** to **21.0.1**.



<details>
  <summary>Changelog</summary>
  
  
   ### 21.0.1
   ```
   ===================

Bug Fixes
---------

- commands: debug: Use packaging.version.parse to compare between versions. (`9461 &lt;https://github.com/pypa/pip/issues/9461&gt;`_)
- New resolver: Download and prepare a distribution only at the last possible
  moment to avoid unnecessary network access when the same version is already
  installed locally. (`9516 &lt;https://github.com/pypa/pip/issues/9516&gt;`_)

Vendored Libraries
------------------

- Upgrade packaging to 20.9
   ```
   
  
  
   ### 21.0
   ```
   =================

Deprecations and Removals
-------------------------

- Drop support for Python 2. (`6148 &lt;https://github.com/pypa/pip/issues/6148&gt;`_)
- Remove support for legacy wheel cache entries that were created with pip
  versions older than 20.0. (`7502 &lt;https://github.com/pypa/pip/issues/7502&gt;`_)
- Remove support for VCS pseudo URLs editable requirements. It was emitting
  deprecation warning since version 20.0. (`7554 &lt;https://github.com/pypa/pip/issues/7554&gt;`_)
- Modernise the codebase after Python 2. (`8802 &lt;https://github.com/pypa/pip/issues/8802&gt;`_)
- Drop support for Python 3.5. (`9189 &lt;https://github.com/pypa/pip/issues/9189&gt;`_)
- Remove the VCS export feature that was used only with editable VCS
  requirements and had correctness issues. (`9338 &lt;https://github.com/pypa/pip/issues/9338&gt;`_)

Features
--------

- Add ``--ignore-requires-python`` support to pip download. (`1884 &lt;https://github.com/pypa/pip/issues/1884&gt;`_)
- New resolver: Error message shown when a wheel contains inconsistent metadata
  is made more helpful by including both values from the file name and internal
  metadata. (`9186 &lt;https://github.com/pypa/pip/issues/9186&gt;`_)

Bug Fixes
---------

- Fix a regression that made ``pip wheel`` do a VCS export instead of a VCS clone
  for editable requirements. This broke VCS requirements that need the VCS
  information to build correctly. (`9273 &lt;https://github.com/pypa/pip/issues/9273&gt;`_)
- Fix ``pip download`` of editable VCS requirements that need VCS information
  to build correctly. (`9337 &lt;https://github.com/pypa/pip/issues/9337&gt;`_)

Vendored Libraries
------------------

- Upgrade msgpack to 1.0.2.
- Upgrade requests to 2.25.1.

Improved Documentation
----------------------

- Render the unreleased pip version change notes on the news page in docs. (`9172 &lt;https://github.com/pypa/pip/issues/9172&gt;`_)
- Fix broken email link in docs feedback banners. (`9343 &lt;https://github.com/pypa/pip/issues/9343&gt;`_)


.. note

    You should *NOT* be adding new change log entries to this file, this
    file is managed by towncrier. You *may* edit previous change logs to
    fix problems like typo corrections or such.

    To add a new change log entry, please see
        https://pip.pypa.io/en/latest/development/contributing/#news-entries

.. towncrier release notes start
   ```
   
  
  
   ### 20.3.4
   ```
   ===================

Features
--------

- ``pip wheel`` now verifies the built wheel contains valid metadata, and can be
  installed by a subsequent ``pip install``. This can be disabled with
  ``--no-verify``. (`9206 &lt;https://github.com/pypa/pip/issues/9206&gt;`_)
- Improve presentation of XMLRPC errors in pip search. (`9315 &lt;https://github.com/pypa/pip/issues/9315&gt;`_)

Bug Fixes
---------

- Fixed hanging VCS subprocess calls when the VCS outputs a large amount of data
  on stderr. Restored logging of VCS errors that was inadvertently removed in pip
  20.2. (`8876 &lt;https://github.com/pypa/pip/issues/8876&gt;`_)
- Fix error when an existing incompatibility is unable to be applied to a backtracked state. (`9180 &lt;https://github.com/pypa/pip/issues/9180&gt;`_)
- New resolver: Discard a faulty distribution, instead of quitting outright.
  This implementation is taken from 20.2.2, with a fix that always makes the
  resolver iterate through candidates from indexes lazily, to avoid downloading
  candidates we do not need. (`9203 &lt;https://github.com/pypa/pip/issues/9203&gt;`_)
- New resolver: Discard a source distribution if it fails to generate metadata,
  instead of quitting outright. This implementation is taken from 20.2.2, with a
  fix that always makes the resolver iterate through candidates from indexes
  lazily, to avoid downloading candidates we do not need. (`9246 &lt;https://github.com/pypa/pip/issues/9246&gt;`_)

Vendored Libraries
------------------

- Upgrade resolvelib to 0.5.4.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pip
  - Changelog: https://pyup.io/changelogs/pip/
  - Homepage: https://pip.pypa.io/
</details>



Co-authored-by: pyup-bot <github-bot@pyup.io>
@pypa pypa locked as resolved and limited conversation to collaborators Feb 28, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: maintenance Related to Development and Maintenance Processes
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants