Skip to content

Handle invalid requirement as parameter to uninstall #9052

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

Closed
wants to merge 245 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
245 commits
Select commit Hold shift + click to select a range
49fd5db
Clean up my Git entries
hugovk Dec 14, 2020
9b3e784
-v shows subprocess output
minrk Jan 13, 2021
dc9efc8
Always open tar files with UTF-8
uranusjr Feb 8, 2021
6123570
Cache location calculation functions
uranusjr Apr 26, 2021
f77649e
Provide a better error message when uninstalling packages without dis…
hroncok May 5, 2021
d5777f8
uninstall: Added error handling when 'uninstall' parameter is invalid…
GuyTuval Oct 25, 2020
c257861
tests: uninstall: Added tests for archive and URL parameters to 'unin…
GuyTuval Oct 26, 2020
518d256
uninstall: Added news entry for 'uninstall' with archive/URL parameters.
GuyTuval Oct 26, 2020
683db46
Update docs for less common news extension
McSinyx Oct 19, 2020
3d1c294
Add GitHub Action based testing for MacOS
pradyunsg Oct 26, 2020
6488654
Fix typo
pradyunsg Oct 26, 2020
ca1de3c
Simplify YAML + better names
pradyunsg Oct 26, 2020
aa36cd1
Avoid AssertionError in pip freeze with editable direct URLs
sbidoul Oct 25, 2020
7e1be68
Update news/8996.bugfix.rst
sbidoul Oct 26, 2020
4bee479
Remove --build-dir option, as per deprecation
pfmoore Oct 25, 2020
23854c0
Add news entry
pfmoore Oct 25, 2020
a796c1f
Only do the ensure_text() dance on Windows
uranusjr Jul 30, 2020
3dae0e6
Support multiple `abi` and `platform` values for `pip download`.
katzdm Aug 28, 2020
f09adbf
Use 'append'-style CLI arguments, rather than ','-separated values.
katzdm Aug 29, 2020
86ce43a
Rename news-file to use new *.rst convention.
katzdm Oct 16, 2020
d6566b0
:newspaper:
pradyunsg Oct 20, 2020
52bb4e3
Update user guide to change resolver default
brainwane Oct 23, 2020
033a275
Improve docs on resolver, constraints, and hash-checking
brainwane Oct 27, 2020
eaf759a
Test against Python 3.9 on Travis CI
McSinyx Oct 19, 2020
6f9050c
freeze: deprecate option --find-links
xavfernandez Oct 30, 2020
3d78ff5
:newspaper:
pradyunsg Oct 30, 2020
ee4e4cd
Skip tests that fail on Python 2
pradyunsg Oct 30, 2020
e2a850c
Change where the 2020 resolver warning is logged
pradyunsg Oct 30, 2020
1072d6d
Explicitly state that pip/_vendor/vendor.txt should be available
xavfernandez Oct 30, 2020
49825f8
Add --exclude option to pip freeze and pip list commands
xavfernandez Oct 30, 2020
0c260b6
Bump for release
pradyunsg Oct 31, 2020
3fb40af
Use packaging.version to check version equality
uranusjr Nov 1, 2020
3b31fe1
tests: uninstall: Added tests for archive and URL parameters to 'unin…
GuyTuval Oct 26, 2020
b87e2e0
uninstall: Added news entry for 'uninstall' with archive/URL parameters.
GuyTuval Oct 26, 2020
9833d09
Update news/4958.feature.rst
GuyTuval Nov 27, 2020
8c2f433
Update src/pip/_internal/commands/uninstall.py
GuyTuval Nov 27, 2020
14927b9
Update pip/tests/functional/test_uninstall.py.
GuyTuval Nov 27, 2020
8b521e2
Rephrase the warning printed when run as root on Unix
pradyunsg May 28, 2021
8118120
fork sync.
uranusjr Nov 4, 2020
32b9659
Refactored tests to use pytest parametrize and f-strings.
GuyTuval Dec 27, 2020
5005e8e
Fixed missing import and moved to f-strings.
GuyTuval Feb 21, 2021
b0e81cc
Fix fork sync merge.
GuyTuval May 28, 2021
74580b1
Merge pull request #10022 from pradyunsg/better-root-message
pradyunsg May 28, 2021
b3a848a
Move where show is shown in commands
pradyunsg May 28, 2021
70a2c72
Remove old documentation pages
pradyunsg May 28, 2021
1a0ece1
Add a missing reference
pradyunsg May 28, 2021
7d42fb6
Add a "Topic Guide" section to the documentation
pradyunsg May 28, 2021
d74062a
Merge pull request #10025 from pradyunsg/introduce-docs/topics
pradyunsg May 28, 2021
3930f55
Add a topic guide for Authentication
pradyunsg May 28, 2021
8fe0011
Merge pull request #10027 from pradyunsg/topic/authentication
pradyunsg May 29, 2021
b8f1fcf
Avoid importing a non-vendored version of Tornado
May 28, 2021
5554432
Merge pull request #10029 from bdarnell/develop
uranusjr May 31, 2021
47f7c63
remove support for setup.cfg only projects
FFY00 May 29, 2021
b97e2e0
fix index_urls if multiple creds for same domain
May 31, 2021
9eee1a4
Issue 3931 news file
May 31, 2021
ff03bae
network auth / allow username alone and fix tests
Jun 1, 2021
e620e8e
Add content to .trivial file
hugovk Jun 1, 2021
57be6a7
Merge pull request #9277 from hugovk/hugovk-update-mailmap
uranusjr Jun 1, 2021
c8638ad
Check Requires-Python before other dependencies
uranusjr May 18, 2021
dca1299
network auth / minor changes and more tests
Jun 1, 2021
11259a4
update bugfix description
Jun 1, 2021
6b421bf
update bugfix description
Jun 1, 2021
3c1d181
Merge pull request #9949 from hroncok/error_msg_missing_record
pfmoore Jun 2, 2021
0468eb0
3931.bugfix.rst / add double backticks and trailing new line
Jun 2, 2021
c22e15e
news/3931.bugfix.rst / fix pre-commit errors
Jun 2, 2021
b8e7a70
Fix typos (#10001)
striezel Jun 3, 2021
f533671
Fix pip freeze to use modern format for git repos (#9822)
bwoodsend Apr 21, 2021
8b8fa2b
Explicitly recognise SCP-shorthand git remotes.
bwoodsend May 1, 2021
b38b925
Merge pull request #9822 from bwoodsend/fix-pip-freeze-git
uranusjr Jun 4, 2021
0170e37
Remove second space after comma in find_links help
deepyaman Jun 7, 2021
1e016d2
Convert type hint comments into annotations
DiddiLeija Jun 7, 2021
5394d34
Update vendored six to 1.16.0
domdfcoding Jun 7, 2021
d532a4c
Add news entry
domdfcoding Jun 7, 2021
e89dbbd
Merge pull request #10031 from FFY00/no-setup-cfg
pradyunsg Jun 7, 2021
776238a
Merge pull request #10044 from domdfcoding/update-six
pradyunsg Jun 7, 2021
ad9d492
Merge pull request #10023 from pradyunsg/show-is-for-local-packages
pradyunsg Jun 7, 2021
9cbe7f6
Warning for user when Windows path limit is exceeded
OBITORASU Jun 8, 2021
7204b92
add news entry for issue 10045
OBITORASU Jun 8, 2021
5c73594
change message to error
OBITORASU Jun 8, 2021
e22799b
update padding around default limit
OBITORASU Jun 8, 2021
fe4ab16
add reference link and extra checks
OBITORASU Jun 8, 2021
4dbf953
fix lint issue in docs
OBITORASU Jun 8, 2021
b0626f6
Make proper annotations on `noxfile.py`
DiddiLeija Jun 8, 2021
6069a3d
Create 10047.trivial.rst
DiddiLeija Jun 8, 2021
5e2c0cc
add check to verify error.filename is not none
OBITORASU Jun 8, 2021
4593007
use error.filename instead of error
OBITORASU Jun 8, 2021
67dcdf5
use error.filename, remove padding and shorten url
OBITORASU Jun 8, 2021
560d2e9
move the check to create_os_error_message
OBITORASU Jun 8, 2021
1458166
fix the wordings
OBITORASU Jun 8, 2021
9ba78c9
change wordings for the info message
OBITORASU Jun 9, 2021
9f0338a
fix typo
OBITORASU Jun 11, 2021
7a64c94
minor rephrasing of message
OBITORASU Jun 11, 2021
c87af08
use setLoggerClass to define log.verbose
minrk Jun 11, 2021
5bc83d4
Fix typo in redirect to topics/authentication
pradyunsg Jun 11, 2021
9687f45
Add an intersphinx link, to compatibility section
pradyunsg Jun 11, 2021
de88828
Fix typo in version added directive
pradyunsg Jun 11, 2021
6ad334b
Merge pull request #10047 from DiddiLeija/noxfile.py-annotations-1
pradyunsg Jun 11, 2021
a90dd11
Merge pull request #10033 from snook92/multi_cred_index_url
pradyunsg Jun 11, 2021
3751878
Implement new command 'pip index versions'
Jun 11, 2021
c165851
Merge pull request #9450 from minrk/custom-log-level
uranusjr Jun 11, 2021
119671f
Reword the changelog entry for verbosity changes
pradyunsg Jun 11, 2021
c495eab
Incorporate suggested rephrasing
pradyunsg Jun 11, 2021
4e37816
Merge pull request #10051 from pradyunsg/fix-docs-trivial-mistakes
pradyunsg Jun 11, 2021
cd52165
Merge pull request #10046 from OBITORASU/long-paths-fix
pradyunsg Jun 11, 2021
1f21ae5
Merge pull request #10053 from pypa/news/verbosity
pradyunsg Jun 11, 2021
b1991d5
Merge pull request #10026 from pradyunsg/fix-missing-reference
pradyunsg Jun 11, 2021
9e1a92e
Merge pull request #10024 from pradyunsg/remove-old-docs-pages
pradyunsg Jun 11, 2021
d63f06a
Add a topic guide: Caching
pradyunsg May 28, 2021
498d800
Merge pull request #10054 from pradyunsg/topic/caching
pradyunsg Jun 11, 2021
330cfa3
Enable definition lists in MyST
pradyunsg Jun 11, 2021
0ab159a
Add topic guide: Configuration
pradyunsg Jun 11, 2021
ece6a2c
Merge pull request #10056 from pradyunsg/topic/configuration
pradyunsg Jun 11, 2021
185120d
Stop relying on undocumented duck typing by `urlunsplit()`
jacobtylerwalls Jun 13, 2021
c4e83dc
Rename empty trivial news entry
jacobtylerwalls Jun 13, 2021
c44b23c
Merge pull request #10064 from jacobtylerwalls/urlunsplit-explicit-type
uranusjr Jun 13, 2021
7c3abcc
Merge pull request #9994 from uranusjr/requires-python-before-other-deps
uranusjr Jun 15, 2021
9e220c6
Use UTF-8 for log file
methane Jun 16, 2021
f6a63eb
Add NEWS fragment
methane Jun 16, 2021
f5f9135
Rework resolution ordering to consider "depth"
uranusjr May 31, 2021
288bffc
Unify Python project root detection logic
uranusjr Jun 19, 2021
62f4816
Move "Link requires a different Python" to verbose
uranusjr Jun 18, 2021
4704da4
Merge pull request #10082 from uranusjr/setup-py-freeze
uranusjr Jun 19, 2021
8316051
Upgrade resolvelib to 0.7.1
uranusjr Jun 19, 2021
7a31c61
News for resolvelib 0.7.1
uranusjr Jun 22, 2021
189f63a
Fix the annotations for `setup.py`
DiddiLeija Jun 23, 2021
b37f3ab
Create 10094.trivial.rst
DiddiLeija Jun 23, 2021
4561b1f
Merge pull request #10032 from uranusjr/new-resolver-order-projects-b…
pradyunsg Jun 23, 2021
9db8937
Merge branch 'pypa:main' into setup.py-annotations
DiddiLeija Jun 24, 2021
ad8a1b8
Add topic guide: VCS Support
pradyunsg Jun 25, 2021
9cd3d5d
Drop old VCS support section and update links
pradyunsg Jun 25, 2021
80285c6
Correctly look up `os.devnull` reference
pradyunsg Jun 25, 2021
b9d27d6
Add topic guide: Repeatable Installs
pradyunsg Jun 25, 2021
97bab9f
Add topic guide: Dependency Resolution
pradyunsg Jun 11, 2021
4fe9407
Update IRC links to libera.chat
pradyunsg Jun 25, 2021
e690467
Merge pull request #10083 from uranusjr/resolvelib-0.7.1
uranusjr Jun 25, 2021
1d010c0
Merge pull request #10103 from pradyunsg/update-to-libera
pradyunsg Jun 26, 2021
4cab55f
Rephrase the warning printed when run as root on Unix
pradyunsg May 28, 2021
363e90b
Avoid importing a non-vendored version of Tornado
May 28, 2021
c141edc
remove support for setup.cfg only projects
FFY00 May 29, 2021
e69a8f3
Bump for release
sbidoul Jun 26, 2021
5cf74b2
Bump for development
sbidoul Jun 26, 2021
41aa9f3
Merge branch 'main' into release/21.1.3
sbidoul Jun 26, 2021
c06bb2a
Remove 21.1.3 new fragments
sbidoul Jun 26, 2021
089d246
Merge pull request #10105 from sbidoul/release/21.1.3
sbidoul Jun 26, 2021
95c6f68
Merge branch 'pypa:main' into setup.py-annotations
DiddiLeija Jun 26, 2021
9c2c52b
Merge pull request #10094 from DiddiLeija/setup.py-annotations
uranusjr Jun 27, 2021
44b3c90
Complete type annotations in pip/_internal/cli
DiddiLeija Jun 27, 2021
6a346a4
add default proceed to uninstall
afolksetapart Mar 4, 2021
0a08cf9
add default proceed to uninstall
afolksetapart Mar 4, 2021
bf7ae72
add newline to news rst
afolksetapart Mar 4, 2021
c7c4ade
Update news/9686.feature.rst
afolksetapart Mar 6, 2021
197392c
Update src/pip/_internal/req/req_uninstall.py
afolksetapart Mar 6, 2021
a5ea1d8
Add `.venv` to `.gitignore`
pradyunsg Jun 29, 2021
1b75812
Merge pull request #10112 from pradyunsg/add-venv-to-gitignore
pradyunsg Jun 29, 2021
bef589d
Merge pull request #9687 from afolksetapart/9686-default-uninstall
pradyunsg Jun 30, 2021
e68ac94
Vendor `tomli` v1.0.3
hukkin Jul 1, 2021
b778db5
Replace `toml` usage with `tomli`
hukkin Jul 1, 2021
af79d0d
Replace use of vendored `toml` in tests with PyPI `toml`
hukkin Jul 1, 2021
3ba1951
Unvendor no longer used `toml`
hukkin Jul 1, 2021
d2e0c4c
Fix outdated paths in vendoring README
hukkin Jul 1, 2021
1915c4d
Add news
hukkin Jul 1, 2021
72e38ca
Re-implement Git version parsing with regex
uranusjr Jul 1, 2021
520aed8
Stylise console output with `console` highlighting
pradyunsg Jul 2, 2021
156f71b
Merge pull request #10072 from methane/patch-2
pradyunsg Jul 4, 2021
9582341
Complete type annotations in `pip/_internal/metadata` (#10124)
harupy Jul 4, 2021
2395bc5
Use --color=yes
harupy Jul 4, 2021
f37fc4c
Merge pull request #10126 from harupy/color-pytest
pradyunsg Jul 4, 2021
7cae5f2
Relax PyPy compatibility location warning
uranusjr Apr 25, 2021
414da9b
Reword pip-starts-backtracking sentence
pradyunsg Jul 9, 2021
c1295af
Address review comments
pradyunsg Jul 9, 2021
67da5a6
Fix a typo
pradyunsg Jul 11, 2021
f2ce774
Suppress "not on PATH" warning when `--prefix` is given
Apr 30, 2021
37a2b12
Special case warning for requirements.txt install (#9915)
briantracy Jul 12, 2021
72e1ff3
Complete type annotations in `pip/_internal/resolution` (#10125)
harupy Jul 12, 2021
23eb69f
Complete type annotations in `pip/_internal/locations` (#10127)
harupy Jul 12, 2021
6958b87
Complete type annotations: `pip/_internal/models` (#10138)
DiddiLeija Jul 12, 2021
c1da53d
Migrate 'pip list' to use metadata abstraction
uranusjr Apr 24, 2021
ef8299d
pip list now normalizes the project name
uranusjr Jul 10, 2021
e6c3177
Move assert_[not_]installed to Script and use it
uranusjr Jul 10, 2021
3209ad0
News for the pip list name normalization logic
uranusjr Jul 12, 2021
f9c49ef
Failing test for local unnamed dependency
uranusjr Jun 20, 2021
5d81040
Refactor root requirement collection into factory
uranusjr Jun 20, 2021
73edd74
Detect user-requested package names by preparing
uranusjr Jun 20, 2021
1501272
Use osx_framework_user for Mac framework build
uranusjr Apr 25, 2021
77810bc
Special osx_framework_library prefix scheme
uranusjr Apr 26, 2021
57d9af2
Ignore header difference for osx_framework_user
uranusjr Apr 27, 2021
ad9d46e
Merge pull request #9844 from uranusjr/sysconfig-framework-user
uranusjr Jul 12, 2021
11a9990
Merge pull request #10084 from uranusjr/new-resolver-local-dependencies
uranusjr Jul 12, 2021
4cd3255
Merge pull request #9569 from uranusjr/pax-tar-2
uranusjr Jul 12, 2021
32a3a50
Merge pull request #10077 from uranusjr/requires-python-to-debug
uranusjr Jul 12, 2021
1545996
Merge pull request #10099 from pradyunsg/topic/vcs-support
pradyunsg Jul 12, 2021
c5f9bc5
try-except distutils config parsing
uranusjr Mar 4, 2021
f9710e9
Merge pull request #9684 dont-explode-on-failed-distutils-parse
uranusjr Jul 12, 2021
ad3d498
Merge pull request #9865 from uranusjr/sysconfig-message-improvement
uranusjr Jul 12, 2021
889571a
Re-enable location warning
uranusjr Jul 9, 2021
ca4aa12
Use Python 3.10 sysconfig.get_preferred_scheme()
uranusjr Jul 8, 2021
8349b9a
Ask mypy to shut up about get_preferred_scheme
uranusjr Jul 12, 2021
bd5ac26
Merge pull request #10035 from hukkin/tomli
uranusjr Jul 12, 2021
646aba8
Merge pull request #10145 from uranusjr/py310-sysconfig-api
uranusjr Jul 12, 2021
cccf380
Merge pull request #10148 from uranusjr/location-warning-again
uranusjr Jul 12, 2021
ce86dc8
Complete type annotations in `pip/_internal/index` (#10111)
DiddiLeija Jul 12, 2021
3b3fde2
Fix the `pip/_internal/distributions` annotations (#10074)
DiddiLeija Jul 12, 2021
1f1e1d6
Remove deprecated --find-links option from pip freeze
xavfernandez Jul 13, 2021
cc188ae
Merge branch 'main' into topic/repeatable-installs
pradyunsg Jul 13, 2021
d12ab1c
Merge pull request #10100 from pradyunsg/topic/repeatable-installs
pradyunsg Jul 13, 2021
14e48b5
Rephrase paragraph describing how dependency resolution works
pradyunsg Jul 13, 2021
d7c0e62
Merge branch 'main' into topic/dependency-resolution
pradyunsg Jul 13, 2021
7da05f3
Merge pull request #10102 from pradyunsg/topic/dependency-resolution
pradyunsg Jul 13, 2021
76cd70a
Upgrade packaging to 21.0 (#10144)
lkollar Jul 17, 2021
1cbb8e3
uninstall: Added error handling when 'uninstall' parameter is invalid…
GuyTuval Oct 25, 2020
1f5cbb3
tests: uninstall: Added tests for archive and URL parameters to 'unin…
GuyTuval Oct 26, 2020
642f16d
uninstall: Added news entry for 'uninstall' with archive/URL parameters.
GuyTuval Oct 26, 2020
9654e92
Update docs for less common news extension
McSinyx Oct 19, 2020
0406057
Add GitHub Action based testing for MacOS
pradyunsg Oct 26, 2020
d0e323e
Fix typo
pradyunsg Oct 26, 2020
b03da55
Simplify YAML + better names
pradyunsg Oct 26, 2020
791a1f3
Avoid AssertionError in pip freeze with editable direct URLs
sbidoul Oct 25, 2020
dab4275
Update news/8996.bugfix.rst
sbidoul Oct 26, 2020
4e97231
Remove --build-dir option, as per deprecation
pfmoore Oct 25, 2020
06697c6
Add news entry
pfmoore Oct 25, 2020
61a08dd
Only do the ensure_text() dance on Windows
uranusjr Jul 30, 2020
728f2a9
Support multiple `abi` and `platform` values for `pip download`.
katzdm Aug 28, 2020
154417b
Use 'append'-style CLI arguments, rather than ','-separated values.
katzdm Aug 29, 2020
e7ddd7b
Rename news-file to use new *.rst convention.
katzdm Oct 16, 2020
ae720d3
:newspaper:
pradyunsg Oct 20, 2020
36b7527
Update user guide to change resolver default
brainwane Oct 23, 2020
f04b3fe
Improve docs on resolver, constraints, and hash-checking
brainwane Oct 27, 2020
7d97363
Test against Python 3.9 on Travis CI
McSinyx Oct 19, 2020
646d0e4
:newspaper:
pradyunsg Oct 30, 2020
62ce4cf
Skip tests that fail on Python 2
pradyunsg Oct 30, 2020
100280e
Change where the 2020 resolver warning is logged
pradyunsg Oct 30, 2020
9c05f8c
Explicitly state that pip/_vendor/vendor.txt should be available
xavfernandez Oct 30, 2020
02076a6
Add --exclude option to pip freeze and pip list commands
xavfernandez Oct 30, 2020
7dd5088
Bump for release
pradyunsg Oct 31, 2020
448cfb6
Use packaging.version to check version equality
uranusjr Nov 1, 2020
0553385
tests: uninstall: Added tests for archive and URL parameters to 'unin…
GuyTuval Oct 26, 2020
f3b67ec
uninstall: Added news entry for 'uninstall' with archive/URL parameters.
GuyTuval Oct 26, 2020
40815ee
Update news/4958.feature.rst
GuyTuval Nov 27, 2020
adfdf09
Update src/pip/_internal/commands/uninstall.py
GuyTuval Nov 27, 2020
73ceb8e
Update pip/tests/functional/test_uninstall.py.
GuyTuval Nov 27, 2020
1a2795e
fork sync.
uranusjr Nov 4, 2020
f5f2f6c
Refactored tests to use pytest parametrize and f-strings.
GuyTuval Dec 27, 2020
aef9f12
Fixed missing import and moved to f-strings.
GuyTuval Feb 21, 2021
40aa517
Fix fork sync merge.
GuyTuval May 28, 2021
3aa6a6a
Merge remote-tracking branch 'origin_old/failed-uninstall-parameter-4…
GuyTuval Jul 18, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ contact_links:
about: |
Please ask typical Q&A here: general ideas for Python packaging,
questions about structuring projects and so on
- name: '💬 IRC: #pypa @ Freenode'
url: https://webchat.freenode.net/#pypa
- name: '💬 IRC: #pypa'
url: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa
about: Chat with devs
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/~good-first-issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ labels: ["good first issue"]

---

**Good First Issue**: This issue is a good starting point for first time contributors -- the process of fixing this should be a good introduction to pip's development workflow. If you've already contributed to pip, work on [another issue without this label](https://github.com/pypa/pip/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+-label%3A%22good+first+issue%22) instead. If there is not a corresponding pull request for this issue, it is up for grabs. For directions for getting set up, see our [Getting Started Guide](https://pip.pypa.io/en/latest/development/getting-started/). If you are working on this issue and have questions, feel free to ask them here, [`#pypa-dev` on Freenode](https://webchat.freenode.net/?channels=%23pypa-dev), or the [distutils-sig mailing list](https://mail.python.org/mailman3/lists/distutils-sig.python.org/).
**Good First Issue**: This issue is a good starting point for first time contributors -- the process of fixing this should be a good introduction to pip's development workflow. If you've already contributed to pip, work on [another issue without this label](https://github.com/pypa/pip/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+-label%3A%22good+first+issue%22) instead. If there is not a corresponding pull request for this issue, it is up for grabs. For directions for getting set up, see our [Getting Started Guide](https://pip.pypa.io/en/latest/development/getting-started/). If you are working on this issue and have questions, feel free to ask them here, [`#pypa-dev` on Libera.chat](https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev), or the [distutils-sig mailing list](https://mail.python.org/mailman3/lists/distutils-sig.python.org/).
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ tests/data/common_wheels/
*~
.*.sw?
.env/
.venv/

# For IntelliJ IDEs (basically PyCharm)
.idea/
Expand Down
2 changes: 2 additions & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ Endoh Takanao <[email protected]>
Erik M. Bray <[email protected]>
Gabriel de Perthuis <[email protected]>
Hsiaoming Yang <[email protected]>
Hugo van Kemenade <[email protected]> Hugo <[email protected]>
Hugo van Kemenade <[email protected]> hugovk <[email protected]>
Igor Kuzmitshov <[email protected]> <[email protected]>
Ilya Baryshev <[email protected]>
Jakub Stasiak <[email protected]>
Expand Down
14 changes: 12 additions & 2 deletions NEWS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,16 @@

.. towncrier release notes start

21.1.3 (2021-06-26)
===================

Bug Fixes
---------

- Remove unused optional ``tornado`` import in vendored ``tenacity`` to prevent old versions of Tornado from breaking pip. (`#10020 <https://github.com/pypa/pip/issues/10020>`_)
- Require ``setup.cfg``-only projects to be built via PEP 517, by requiring an explicit dependency on setuptools declared in pyproject.toml. (`#10031 <https://github.com/pypa/pip/issues/10031>`_)


21.1.2 (2021-05-23)
===================

Expand Down Expand Up @@ -350,7 +360,7 @@ Features
- When installing a git URL that refers to a commit that is not available locally
after git clone, attempt to fetch it from the remote. (`#8815 <https://github.com/pypa/pip/issues/8815>`_)
- Include http subdirectory in ``pip cache info`` and ``pip cache purge`` commands. (`#8892 <https://github.com/pypa/pip/issues/8892>`_)
- Cache package listings on index packages so they are guarenteed to stay stable
- Cache package listings on index packages so they are guaranteed to stay stable
during a pip command session. This also improves performance when a index page
is accessed multiple times during the command session. (`#8905 <https://github.com/pypa/pip/issues/8905>`_)
- New resolver: Tweak resolution logic to improve user experience when
Expand Down Expand Up @@ -422,7 +432,7 @@ Features
and considered good enough. (`#8023 <https://github.com/pypa/pip/issues/8023>`_)
- Improve error message friendliness when an environment has packages with
corrupted metadata. (`#8676 <https://github.com/pypa/pip/issues/8676>`_)
- Cache package listings on index packages so they are guarenteed to stay stable
- Cache package listings on index packages so they are guaranteed to stay stable
during a pip command session. This also improves performance when a index page
is accessed multiple times during the command session. (`#8905 <https://github.com/pypa/pip/issues/8905>`_)
- New resolver: Tweak resolution logic to improve user experience when
Expand Down
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,6 @@ rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_.
.. _Issue tracking: https://github.com/pypa/pip/issues
.. _Discourse channel: https://discuss.python.org/c/packaging
.. _Development mailing list: https://mail.python.org/mailman3/lists/distutils-sig.python.org/
.. _User IRC: https://webchat.freenode.net/?channels=%23pypa
.. _Development IRC: https://webchat.freenode.net/?channels=%23pypa-dev
.. _User IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa
.. _Development IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev
.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md
2 changes: 1 addition & 1 deletion docs/html/cli/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ pip
pip_install
pip_uninstall
pip_list
pip_show
pip_freeze
pip_check
```
Expand All @@ -34,7 +35,6 @@ pip_hash
:maxdepth: 1
:caption: Package Index information

pip_show
pip_search
```

Expand Down
227 changes: 9 additions & 218 deletions docs/html/cli/pip_install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ for the name and project version (this is in theory slightly less reliable
than using the ``egg_info`` command, but avoids downloading and processing
unnecessary numbers of files).

Any URL may use the ``#egg=name`` syntax (see :ref:`VCS Support`) to
Any URL may use the ``#egg=name`` syntax (see :doc:`../topics/vcs-support`) to
explicitly state the project name.

Satisfying Requirements
Expand Down Expand Up @@ -372,168 +372,7 @@ that enables installation of pre-releases and development releases.
VCS Support
-----------

pip supports installing from Git, Mercurial, Subversion and Bazaar, and detects
the type of VCS using URL prefixes: ``git+``, ``hg+``, ``svn+``, and ``bzr+``.

pip requires a working VCS command on your path: ``git``, ``hg``, ``svn``, or
``bzr``.

VCS projects can be installed in :ref:`editable mode <editable-installs>` (using
the :ref:`--editable <install_--editable>` option) or not.

* For editable installs, the clone location by default is ``<venv
path>/src/SomeProject`` in virtual environments, and
``<cwd>/src/SomeProject``
for global installs. The :ref:`--src <install_--src>` option can be used to
modify this location.
* For non-editable installs, the project is built locally in a temp dir and then
installed normally. Note that if a satisfactory version of the package is
already installed, the VCS source will not overwrite it without an
``--upgrade`` flag. VCS requirements pin the package version (specified
in the ``setup.py`` file) of the target commit, not necessarily the commit
itself.
* The :ref:`pip freeze` subcommand will record the VCS requirement specifier
(referencing a specific commit) if and only if the install is done using the
editable option.

The "project name" component of the URL suffix ``egg=<project name>``
is used by pip in its dependency logic to identify the project prior
to pip downloading and analyzing the metadata. For projects
where ``setup.py`` is not in the root of project, the "subdirectory" component
is used. The value of the "subdirectory" component should be a path starting
from the root of the project to where ``setup.py`` is located.

If your repository layout is::

pkg_dir
├── setup.py # setup.py for package "pkg"
└── some_module.py
other_dir
└── some_file
some_other_file

Then, to install from this repository, the syntax would be:

.. tab:: Unix/macOS

.. code-block:: shell

python -m pip install -e "vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir"

.. tab:: Windows

.. code-block:: shell

py -m pip install -e "vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir"


Git
^^^

pip currently supports cloning over ``git``, ``git+http``, ``git+https``,
``git+ssh``, ``git+git`` and ``git+file``.

.. warning::

Note that the use of ``git``, ``git+git``, and ``git+http`` is discouraged.
The former two use `the Git Protocol`_, which lacks authentication, and HTTP is
insecure due to lack of TLS based encryption.

Here are the supported forms::

[-e] git+http://git.example.com/MyProject#egg=MyProject
[-e] git+https://git.example.com/MyProject#egg=MyProject
[-e] git+ssh://git.example.com/MyProject#egg=MyProject
[-e] git+file:///home/user/projects/MyProject#egg=MyProject

Passing a branch name, a commit hash, a tag name or a git ref is possible like so::

[-e] git+https://git.example.com/MyProject.git@main#egg=MyProject
[-e] git+https://git.example.com/[email protected]#egg=MyProject
[-e] git+https://git.example.com/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject
[-e] git+https://git.example.com/MyProject.git@refs/pull/123/head#egg=MyProject

When passing a commit hash, specifying a full hash is preferable to a partial
hash because a full hash allows pip to operate more efficiently (e.g. by
making fewer network calls).

.. _`the Git Protocol`: https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols

Mercurial
^^^^^^^^^

The supported schemes are: ``hg+file``, ``hg+http``, ``hg+https``,
``hg+static-http``, and ``hg+ssh``.

Here are the supported forms::

[-e] hg+http://hg.myproject.org/MyProject#egg=MyProject
[-e] hg+https://hg.myproject.org/MyProject#egg=MyProject
[-e] hg+ssh://hg.myproject.org/MyProject#egg=MyProject
[-e] hg+file:///home/user/projects/MyProject#egg=MyProject

You can also specify a revision number, a revision hash, a tag name or a local
branch name like so::

[-e] hg+http://hg.example.com/MyProject@da39a3ee5e6b#egg=MyProject
[-e] hg+http://hg.example.com/MyProject@2019#egg=MyProject
[-e] hg+http://hg.example.com/[email protected]#egg=MyProject
[-e] hg+http://hg.example.com/MyProject@special_feature#egg=MyProject

Subversion
^^^^^^^^^^

pip supports the URL schemes ``svn``, ``svn+svn``, ``svn+http``, ``svn+https``, ``svn+ssh``.

Here are some of the supported forms::

[-e] svn+https://svn.example.com/MyProject#egg=MyProject
[-e] svn+ssh://svn.example.com/MyProject#egg=MyProject
[-e] svn+ssh://[email protected]/MyProject#egg=MyProject

You can also give specific revisions to an SVN URL, like so::

[-e] svn+svn://svn.example.com/svn/MyProject#egg=MyProject
[-e] svn+http://svn.example.com/svn/MyProject/trunk@2019#egg=MyProject

which will check out revision 2019. ``@{20080101}`` would also check
out the revision from 2008-01-01. You can only check out specific
revisions using ``-e svn+...``.

Bazaar
^^^^^^

pip supports Bazaar using the ``bzr+http``, ``bzr+https``, ``bzr+ssh``,
``bzr+sftp``, ``bzr+ftp`` and ``bzr+lp`` schemes.

Here are the supported forms::

[-e] bzr+http://bzr.example.com/MyProject/trunk#egg=MyProject
[-e] bzr+sftp://[email protected]/MyProject/trunk#egg=MyProject
[-e] bzr+ssh://[email protected]/MyProject/trunk#egg=MyProject
[-e] bzr+ftp://[email protected]/MyProject/trunk#egg=MyProject
[-e] bzr+lp:MyProject#egg=MyProject

Tags or revisions can be installed like so::

[-e] bzr+https://bzr.example.com/MyProject/trunk@2019#egg=MyProject
[-e] bzr+http://bzr.example.com/MyProject/[email protected]#egg=MyProject

Using Environment Variables
^^^^^^^^^^^^^^^^^^^^^^^^^^^

Since version 10, pip also makes it possible to use environment variables which
makes it possible to reference private repositories without having to store
access tokens in the requirements file. For example, a private git repository
allowing Basic Auth for authentication can be refenced like this::

[-e] git+http://${AUTH_USER}:${AUTH_PASSWORD}@git.example.com/MyProject#egg=MyProject
[-e] git+https://${AUTH_USER}:${AUTH_PASSWORD}@git.example.com/MyProject#egg=MyProject

.. note::

Only ``${VARIABLE}`` is supported, other formats like ``$VARIABLE`` or
``%VARIABLE%`` won't work.
This is now covered in :doc:`../topics/vcs-support`.

Finding Packages
----------------
Expand Down Expand Up @@ -574,62 +413,14 @@ overridden by using ``--cert`` option or by using ``PIP_CERT``,
Caching
-------

Starting with v6.0, pip provides an on-by-default cache which functions
similarly to that of a web browser. While the cache is on by default and is
designed do the right thing by default you can disable the cache and always
access PyPI by utilizing the ``--no-cache-dir`` option.

When making any HTTP request pip will first check its local cache to determine
if it has a suitable response stored for that request which has not expired. If
it does then it simply returns that response and doesn't make the request.

If it has a response stored, but it has expired, then it will attempt to make a
conditional request to refresh the cache which will either return an empty
response telling pip to simply use the cached item (and refresh the expiration
timer) or it will return a whole new response which pip can then store in the
cache.

While this cache attempts to minimize network activity, it does not prevent
network access altogether. If you want a local install solution that
circumvents accessing PyPI, see :ref:`Installing from local packages`.

The default location for the cache directory depends on the operating system:

Unix
:file:`~/.cache/pip` and it respects the ``XDG_CACHE_HOME`` directory.
macOS
:file:`~/Library/Caches/pip`.
Windows
:file:`<CSIDL_LOCAL_APPDATA>\\pip\\Cache`

Run ``pip cache dir`` to show the cache directory and see :ref:`pip cache` to
inspect and manage pip’s cache.

This is now covered in :doc:`../topics/caching`

.. _`Wheel cache`:

Wheel Cache
^^^^^^^^^^^

pip will read from the subdirectory ``wheels`` within the pip cache directory
and use any packages found there. This is disabled via the same
``--no-cache-dir`` option that disables the HTTP cache. The internal structure
of that is not part of the pip API. As of 7.0, pip makes a subdirectory for
each sdist that wheels are built from and places the resulting wheels inside.

As of version 20.0, pip also caches wheels when building from an immutable Git
reference (i.e. a commit hash).

pip attempts to choose the best wheels from those built in preference to
building a new wheel. Note that this means when a package has both optional
C extensions and builds ``py`` tagged wheels when the C extension can't be built
that pip will not attempt to build a better wheel for Pythons that would have
supported it, once any generic wheel is built. To correct this, make sure that
the wheels are built with Python specific tags - e.g. pp on PyPy.

When no wheels are found for an sdist, pip will attempt to build a wheel
automatically and insert it into the wheel cache.

This is now covered in :doc:`../topics/caching`

.. _`hash-checking mode`:

Expand Down Expand Up @@ -728,9 +519,9 @@ of having the wheel cache disabled is thus extra build time for sdists, and
this can be solved by making sure pre-built wheels are available from the index
server.

Hash-checking mode also works with :ref:`pip download` and :ref:`pip wheel`. A
:ref:`comparison of hash-checking mode with other repeatability strategies
<Repeatability>` is available in the User Guide.
Hash-checking mode also works with :ref:`pip download` and :ref:`pip wheel`.
See :doc:`../topics/repeatable-installs` for a comparison of hash-checking mode
with other repeatability strategies.

.. warning::

Expand Down Expand Up @@ -849,7 +640,7 @@ You can install local projects or VCS projects in "editable" mode:
py -m pip install -e git+http://repo/my_project.git#egg=SomeProject


(See the :ref:`VCS Support` section above for more information on VCS-related syntax.)
(See the :doc:`../topics/vcs-support` section above for more information on VCS-related syntax.)

For local projects, the "SomeProject.egg-info" directory is created relative to
the project path. This is one advantage over just using ``setup.py develop``,
Expand Down Expand Up @@ -1040,7 +831,7 @@ Examples
py -m pip install SomeProject@git+https://git.repo/[email protected]


#. Install a project from VCS in "editable" mode. See the sections on :ref:`VCS Support <VCS Support>` and :ref:`Editable Installs <editable-installs>`.
#. Install a project from VCS in "editable" mode. See the sections on :doc:`../topics/vcs-support` and :ref:`Editable Installs <editable-installs>`.

.. tab:: Unix/macOS

Expand Down
4 changes: 4 additions & 0 deletions docs/html/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@
print("pip version:", version)
print("pip release:", release)

# -- Options for myst-parser ----------------------------------------------------------

myst_enable_extensions = ["deflist"]

# -- Options for smartquotes ----------------------------------------------------------

# Disable the conversion of dashes so that long options like "--find-links" won't
Expand Down
7 changes: 0 additions & 7 deletions docs/html/cookbook.rst

This file was deleted.

Loading