1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00
Commit graph

4183 commits

Author SHA1 Message Date
q0w
8b02c98bbc test merging multiple values 2023-03-20 08:07:26 +03:00
q0w
a878d7f093 dont propagate flag 2023-03-20 07:34:21 +03:00
q0w
69cfd23c17 Merge branch 'main' into per-req-config-settings 2023-03-20 07:26:21 +03:00
Stéphane Bidoul
a04748db8e Remove support for the deprecated --install-options 2023-03-18 11:20:51 +01:00
Stéphane Bidoul
9d09b85452
Merge pull request #11860 from sbidoul/rm-no-binary-implies-setuptools-install-sbi
Stop `--no-binary` implying `setup.py install`
2023-03-18 11:16:24 +01:00
Filipe Laíns
1268487cba
Support passing the same key multiple times in --config-settings (#11853) 2023-03-17 21:23:19 +00:00
Tzu-ping Chung
5c3d1fed4a
Merge pull request #11698 from Darsstar/keyring-multi-choice 2023-03-15 18:07:07 +08:00
Stéphane Bidoul
5189a6e0f4 --no-binary does not imply setup.py install anymore 2023-03-12 17:18:53 +01:00
Guillaume Seguin
c546c99480 Display dependency chain on each Collecting line
This tremendously helps understand why a package is being fetched and
can help investigate and fix dependency resolver backtracking issues
when incoherent constraints/package sets are provided or when new
versions of a package trigger a completely different backtracking
strategy, leading to very hard to debug situations.
2023-02-23 18:12:08 -08:00
Dos Moonen
6affad8032 Merge branch 'main' into keyring-multi-choice
# Conflicts:
#	src/pip/_internal/network/auth.py
2023-02-21 14:02:32 +01:00
Stefano Rivera
9abb3c899a
Implement --break-system-packages for EXTERNALLY-MANAGED installations (#11780)
The PEP 668 expects an override mechanism to ease the transition.
This provides an override.

---------

Co-authored-by: Pradyun Gedam <pradyunsg@gmail.com>
2023-02-06 07:06:59 +00:00
Stéphane Bidoul
e5c88951a0 Do not crash in presence of misformatted hash field in `direct_url.json`. 2023-02-05 00:13:32 +01:00
Tzu-ping Chung
56e5fa3c0f
Merge pull request #11487 from pelson/feature/base-prefix-config 2023-02-01 01:40:09 +08:00
Tzu-ping Chung
d325245052 Better subprocess handling 2023-01-30 09:01:02 +01:00
Dos Moonen
33cd541cc4 Make it possible to request a keyring provider: auto, disabled, import or subprocess
Refactored `_get_index_url()` to get integration tests for the subprocess backend working.

Keyring support via the 'subprocess' provider can only retrieve a password, not a username-password combo. The username therefor MUST come from the URL.
If the URL obtained from the index does not contain a username then the username from a matching index is used. `_get_index_url()` does that matching.

The problem this refactoring solves is that the URL where a wheel or sdist can be downloaded from does not always start with the index url. Azure DevOps Artifacts Feeds are an example since it replaces the friendly name of the Feed with the GUID of the Feed. Causing `url.startswith(prefix)` to evaluate as `False`.

The new behaviour is to return the index which matches the netloc and has the longest common prefix of the `path` property of the value returned by `urllib.parse.urlsplit()`. The behaviour for resolving ties is unspecified.
2023-01-30 09:00:59 +01:00
Pradyun Gedam
efedf09c49
Merge pull request #11759 from pradyunsg/fix-keyring-auth
Closes https://github.com/pypa/pip/issues/11658
2023-01-29 01:36:20 +00:00
Pradyun Gedam
60a4598440
Merge pull request #11758 from pradyunsg/vendoring-update 2023-01-29 01:36:04 +00:00
Pradyun Gedam
acd7ef1f9a
Perform relaxed version matching in pip debug test
This ensures that we're not trying to compare versions as equal strings.
2023-01-28 22:35:25 +00:00
Pradyun Gedam
17e20c746e
Correctly handle keyring auth subprocess newlines on Windows
The line endings on Windows are not required to be `\n`.
2023-01-28 22:23:16 +00:00
Pradyun Gedam
b5be1da918
Merge pull request #11757 from sbidoul/inspect-and-install-reports-stable-sbi
Declare inspect and install reports formats to be stable
2023-01-28 20:36:28 +00:00
Pradyun Gedam
e32ec0a8c3
Merge pull request #11679 from sbidoul/direct_url-hashes-sbi
Allow multiple hashes in direct_url.json
2023-01-28 20:36:01 +00:00
Stéphane Bidoul
126e6f67a5 Install report format declared stable 2023-01-28 14:15:04 +01:00
Stéphane Bidoul
99dddc1616 pip inspect format declared stable 2023-01-28 14:15:04 +01:00
Stéphane Bidoul
38681f3d66 Allow multiple hashes in direct_url.json
This influences the recorded direct_url.json metadata,
and therefore the pip inspect output,
as well as the pip install --report format.
2023-01-28 13:25:38 +01:00
Роман Донченко
44c1ccaf40 Replace deprecated setup/teardown usage
As explained in
<https://docs.pytest.org/en/stable/deprecations.html#support-for-tests-written-for-nose>,
`setup`/`teardown` are a part of nose compatibility, which is deprecated.
You're supposed to use `setup_method` and `teardown_method` instead.
2023-01-27 22:00:50 +03:00
Tzu-ping Chung
95a58e7ba5
Merge pull request #11663 from uranusjr/pep-668 2023-01-18 11:50:26 +08:00
Tzu-ping Chung
5e5480b3bc Only exclude --dry-run when used with --report 2023-01-17 15:04:56 +08:00
Daniil Konovalenko
15b2cc993e fix mypy 2023-01-14 12:27:51 +01:00
Daniil Konovalenko
ed7dbe9843 fix formatting 2023-01-14 12:27:51 +01:00
Daniil Konovalenko
8374d818ac add test 2023-01-14 12:27:51 +01:00
Tzu-ping Chung
5eda50d237 Test and news for wheel cache restoration
The fix merged in 3b60e36289 also fixed
the wheel cache; this cherry-picks the test and news from the other pull
request to validate and document the fact.
2023-01-09 10:13:19 +08:00
Tzu-ping Chung
0233bf2757 Merge link_hash back into _hashes
Commit bad03ef931 introduced the new
link_hash attribute that holds the link's hash info, but that attribute
does the same thing as _hashes, and some existing usages still populate
that old attribute. Since the plural variant covers more use cases (a
file can be hashed with multiple algorithms), we restore the old logic
that uses _hashes before the commit, and consolidate link_hash back into
that attribute.
2023-01-04 18:42:52 +08:00
Tzu-ping Chung
8fe6563050 Fall back to non-localized message on Windows
Windows does not implement LC_MESSAGES, and since PEP 668 is mainly
designed for Linux distributions, we simply take the easier way out
until someone wants an equivalent on Windows.
2023-01-03 08:13:13 +08:00
Tzu-ping Chung
6750d847a7 Add PEP 668 functional tests 2023-01-03 07:57:21 +08:00
Tzu-ping Chung
3d1937f420 Add tests for EXTERNALLY-MANAGED parser 2023-01-03 07:57:21 +08:00
William Woodruff
64fe2235d8
Merge branch 'main' into ww/restrict-egg-fragement 2022-12-28 10:44:23 -05:00
q0w
8dabf3316a Test all edge cases 2022-12-21 23:23:20 +03:00
q0w
9c8e74bad9 Test deps with config-settings 2022-12-19 18:59:51 +03:00
doron zarhi
e59ff2fc8c show: add editable location if package is editable (#11638) 2022-12-18 01:33:57 +02:00
q0w
be21f0dd10 Add more tests 2022-12-15 04:22:47 +03:00
q0w
92730f6f63 Add more tests 2022-12-15 03:17:30 +03:00
q0w
1a93652c8f
Merge branch 'main' into per-req-config-settings 2022-12-15 02:28:02 +03:00
q0w
d3062a1603 Add more tests 2022-12-15 02:24:34 +03:00
Tzu-ping Chung
6d1f25b222 Skip tests using custom SSL on 3.7 + Linux
This combination does not work well on CI, and since 3.7 support is on
its last days anyway, let's just ignore those tests.
2022-12-13 14:33:56 +08:00
q0w
227fe23b0e Add per-requirement --config-settings 2022-12-05 08:05:26 +03:00
William Woodruff
d9502ff501
tests: fix comment
Signed-off-by: William Woodruff <william@trailofbits.com>
2022-12-02 21:38:51 -08:00
William Woodruff
464d16618e
src, tests: use deprecation instead of hard error for egg fragments
This turns invalid egg fragments into a soft error, with a scheduled
deprecation period of two releases.

Signed-off-by: William Woodruff <william@trailofbits.com>
2022-12-02 21:33:22 -08:00
Tzu-ping Chung
8d34a1111d
Merge branch 'main' into feature/base-prefix-config 2022-11-25 09:38:56 +08:00
William Woodruff
227fbee124
tests: add more Link tests
This exercises our expectation that egg fragments don't include version
specifiers and are evaluated eagerly.

Signed-off-by: William Woodruff <william@trailofbits.com>
2022-11-22 17:40:55 -05:00
Tzu-ping Chung
1ab22ee302
Merge pull request #11590 from uranusjr/pathlib-housekeeping 2022-11-21 09:39:21 +08:00
Miro Hrončok
f7589d6ec0 Don't maintain 2 copies of change_root
The change_root function was added twice:

In ae324d1703
and in 36a9b36523
2022-11-16 13:28:17 +01:00
Tzu-ping Chung
4a87ab04c8
Merge branch 'main' into feature/base-prefix-config 2022-11-16 12:50:52 +08:00
Tzu-ping Chung
afb0d13220 Fix docstring to match reality
We've moved to pathlib a while ago, the docstring still references
tests.lib.path, which no longer exists.
2022-11-11 07:43:08 +08:00
Judah Rand
c04222fe47
Simplify provider interface 2022-11-10 21:25:26 +00:00
Judah Rand
8d9ea8b62f
Add tests for new code paths 2022-11-10 20:05:07 +00:00
Judah Rand
3a15e01091
Get the tests passing again 2022-11-10 19:15:07 +00:00
Paul Moore
6d131137cf
Merge pull request #11547 from uranusjr/entry-point-python-version-replacement-multi-digit
Fix multi-digit version in entry point replacement
2022-11-03 11:50:58 +00:00
Tzu-ping Chung
30b4cff198
Fix typos
Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com>
2022-11-03 15:20:47 +08:00
Tzu-ping Chung
d6e333fb63
Add 3.11 to CI (#11550) 2022-10-28 11:37:04 -05:00
Tzu-ping Chung
2c195f9c2c Fix multi-digit version in entry point replacement
Previously, the special case to generate 'pip' and 'easy_install' entry
points with the correct Python version (e.g. 'pip3.9' on Python 3.9)
only accounted for single-digit version segments, and did not work
correctly on Python 3.10 and up. This was missed when Python 3.10 was
released because we (accidentally) generated wheels that did not need
any such replacements, but was exposed in CPython 3.11.0 since it
bundled pip 22.3 generated against Python 3.10.
2022-10-28 01:51:36 +08:00
Tzu-ping Chung
50e194f107 Selectively enable user site
The modern virtual environment structure does not allow us to enable
"fake user site" while disabling the global site, so we need to do more
fine-grained configuration to correctly set up test environments for
each test case.

With this done, we can also properly support the stdlib venv ad the test
environment backend, since it basically works identically with modern
virtualenv. The incompatible_with_test_venv is thus removed.
2022-10-28 01:51:13 +08:00
Tzu-ping Chung
83c85e94b7 Fix legacy virtualenv setup in tests 2022-10-28 01:51:13 +08:00
Tzu-ping Chung
4ab4865063 One more rewrite to avoid distutils 2022-10-28 01:51:13 +08:00
Tzu-ping Chung
4bf1b67964 Build fake wheels for --user tests
The old INITools tests rely on setup.py, which relies on distutils and
generates a ton of issues. Build fake wheels directly to avoid dealing
with them.
2022-10-28 01:51:13 +08:00
Tzu-ping Chung
b850d539f9 Keep using old virtualenv for Python < 3.10
pip uses distutils (instead of sysconfig) for Python < 3.10, which has
awkward path issues when faking a user site.
2022-10-28 01:51:13 +08:00
Tzu-ping Chung
4f20a7e3e7 Set include-system-site-packages for user site 2022-10-28 01:51:13 +08:00
Tzu-ping Chung
4d533cc269 Don't enable global site when enabling user site 2022-10-28 01:51:13 +08:00
Tzu-ping Chung
1d05ba8ffd Rewrite virtualenv tool in tests for 20+ support
Co-Authored-By: Lumir Balhar <lbalhar@redhat.com>
2022-10-28 01:51:13 +08:00
Tzu-ping Chung
5ded5474ac Name virtualenv<20 as "legacy"
Well they are. At least not "regular" anymore.
2022-10-28 01:51:13 +08:00
Tzu-ping Chung
f96ba08dbc Bump virtualenv to 20+ in tests 2022-10-28 01:51:13 +08:00
Tzu-ping Chung
1e236f4c84 Ignore failing git submodule test for now
Git 2.38.1 patched CVE-2022-39253 by disaling automated fetch against a
file: repository. This breaks git submodule, which is used by a pip
test. Information on how projects relying on automated fetch should
configure git correctly after this change is lacking, so the test is
disabled for now until someone can come up with a better solution.
2022-10-28 00:16:33 +08:00
Felipe Peter
fdc262f069 Fix error message and improve help text 2022-10-19 14:47:27 +08:00
Miro Hrončok
fe7948a4a2 Avoid distutils imports in tests
The tests still don't run without distutils
because they require virtualenv < 20 (and virtualenv 16 uses distutils),
but at least they don't import distutils directly now.

Fixes https://github.com/pypa/pip/issues/11521
2022-10-17 19:33:03 +02:00
Pradyun Gedam
e86f27fe4e
Merge pull request #11493 from pradyunsg/remove-2020-resolver-opt-in 2022-10-15 11:52:39 +01:00
Paul Moore
f86f52c1b7 Get rid of the timeout test as it's too flaky to be useful 2022-10-07 20:52:35 +01:00
Pradyun Gedam
6421ab59d5
Remove the opt-in for 2020-resolver
This has been the default for quite some time now.
2022-10-07 11:57:02 +01:00
Paul Moore
fe78726b36
Merge pull request #11492 from ret2libc/raise-file-parse-error-no-valueerr
Raise RequirementsFileParseError when missing closing quotation
2022-10-06 14:31:16 +01:00
Riccardo Schirone
3ca52dc55c Raise RequirementsFileParseError when missing closing quotation
shlex.split, used to split options in requirements.txt files, might
raise a ValueError when the input string is not well formed. Catch the
ValueError and re-raise it as a RequirementsFileParseError instead.
2022-10-06 14:36:46 +02:00
Pradyun Gedam
7311c82476
Merge pull request #11359 from sbidoul/deprecate-install-options
Deprecate --install-options
2022-10-06 10:06:48 +01:00
Phil Elson
b777bcda81 Add the "base" config level concept, to allow configuration of all virtual environments sharing the same base.
The new functionality serves a use case which was not previously possible with pip configuration files, namely the situation where you have a base Python installation and want to influence the pip configuration for all derivative virtual environments *without* changing the config for all other environments on a machine (global), or for all other environment run by the same user (user). Concretely, this could be used for a centrally managed network mounted filesystem based Python installation, from which multiple users can build virtual environments and inside which a specific pip configuration is needed (e.g. an index URL).
2022-10-06 09:33:38 +02:00
Felipe Peter
e6e7c12b6d
Disallow freeze format with pip list --outdated (#11482)
Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
2022-10-04 10:11:46 +01:00
Stéphane Bidoul
51c78b4b83
Add tests for --xxx-options warnings and deprecation 2022-09-25 11:21:36 +02:00
Stéphane Bidoul
65641f10ad
Fix test_install_requirements_with_options 2022-09-25 11:21:36 +02:00
Min RK
24773bc4f5
Fix build isolation on system Pythons
use site.getsitepackages() where available
instead of just purelib/platlib,
which is often insufficient on e.g. System Pythons for Debian/macOS

handle virtualenv < 20 overwriting site.py without getsitepackages() by preserving current behavior.
2022-09-23 14:47:41 +02:00
Danny McClanahan
bad03ef931
Use data-dist-info-metadata (PEP 658) to decouple resolution from downloading (#11111)
Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
2022-09-10 11:28:57 +01:00
Tzu-ping Chung
8856b5900e Further attempt to stablize timeout test 2022-09-08 10:24:04 +08:00
Tzu-ping Chung
bfbe919fd2
Merge pull request #11277 from vanschelven/respect-no-index-from-requirements-file 2022-08-30 15:47:51 +08:00
Tzu-ping Chung
5ec3f37bc8 Don't retry to 'improve' possibility of failure 2022-08-17 15:38:15 +08:00
Tzu-ping Chung
26b66a830f Decrease timeout to make test less flaky 2022-08-17 06:41:27 +08:00
hauntsaninja
edbfeae9fb fix tests 2022-08-12 19:01:26 -07:00
Stéphane Bidoul
d8e2d6605a
Rename BinaryAllowedPredicate
It really is a BdistWheelAllowedPredicate and
this will make it easier to reason when --no-binary
does not imply setup.py install anymore.
2022-08-12 13:51:45 +02:00
Stéphane Bidoul
be718ff59e
Fix tests that relied on setuptools not supporting PEP 660 2022-08-12 12:57:39 +02:00
Stéphane Bidoul
ee7bcae0d9
Merge pull request #11331 from sbidoul/8559-take-2-sbi
Deprecate setup.py install fallback when wheel package is absent
2022-08-10 18:43:25 +02:00
Stéphane Bidoul
496bf56542
Merge pull request #10416 from sbidoul/test-indented-warnings-sbi
Detect indented ERROR and WARNING messages in tests and ignore own deprecation warnings
2022-08-10 18:42:49 +02:00
Stéphane Bidoul
afe136c42b
Add test for issue 8559 deprecation 2022-08-06 19:29:31 +02:00
Stéphane Bidoul
0326b33a6d
Add missing with_wheel fixture 2022-08-06 19:29:31 +02:00
Stéphane Bidoul
1800635e4c
Fix tests with indented errors and warning 2022-08-05 09:35:00 +02:00
Stéphane Bidoul
58d8dc28cb
Do not fail tests on our own deprecation warnings 2022-08-05 09:35:00 +02:00
Stéphane Bidoul
b423c07ff4
Detected indented ERROR and WARNING messages in tests 2022-08-05 09:35:00 +02:00
Paul Moore
ebe491a82a Get rid of the --python python/py shortcuts 2022-08-01 10:54:20 +01:00
Paul Moore
0d6fadac6c Merge branch 'main' into python_option 2022-08-01 09:43:55 +01:00
Paul Moore
b5afdd6048 Fix test to cater for packages leaked into venv 2022-07-30 16:37:58 +01:00
Paul Moore
01e122ed41 Add tests 2022-07-30 16:12:42 +01:00
Paul Moore
ee6c7caabd Fix test_runner_work_in_environments_with_no_pip to work under --use-zipapp 2022-07-28 11:57:26 +01:00
Paul Moore
662f940c96 Merge branch 'main' into test_zipapp 2022-07-28 10:51:04 +01:00
Klaas van Schelven
2ec5097281 Add a test for 'respect --no-index'
See #11276
2022-07-27 11:49:06 +02:00
Klaas van Schelven
80c3b9615f Textual: "locally built" rather than "built"
As per @sbidoul's remark
2022-07-26 08:16:49 +02:00
Klaas van Schelven
d57c5dd1ee Fixed the tests 2022-07-25 15:11:54 +02:00
Stéphane Bidoul
3f5436cf3d
Use installer instead of setuptools in test suite
Instead of using a private setuptools api to
install common wheels in "editable" mode,
use 'installer' together with a .pth.
2022-07-23 16:22:02 +02:00
Klaas van Schelven
5d7a1a68c7 Respect --no-index from the requirements file
See #11276

SearchScope was extended with an extra parameter to be able to pass-on the
value of no_index as we do with the other parameters. This allows us to respect
its value regardless of the order in which options are evaluated.
2022-07-20 15:55:17 +02:00
Tzu-ping Chung
b1a01ef762
Merge pull request #11265 from finnagin/main 2022-07-19 15:53:00 +08:00
Finn Womack
48bcb0a4cc
reformat to pass pre-commit check 2022-07-18 12:30:17 -07:00
finnagin
a7c1fe3bff Remove utc fixture from tests 2022-07-18 12:20:56 -07:00
Finn Womack
0c574f7290
Remove time import 2022-07-18 11:58:51 -07:00
Finn Womack
246fef1914
Remove utc fixture 2022-07-18 11:44:18 -07:00
Stéphane Bidoul
a7a35dc20d
Merge pull request #11245 from sbidoul/pip-inspect-sbi
Add pip inspect command
2022-07-18 08:10:07 +02:00
Stéphane Bidoul
909be0d786
Merge pull request #11259 from sbidoul/drop-html5lib
Drop html5lib
2022-07-16 20:04:49 +02:00
Stéphane Bidoul
6d02fe2410
Merge pull request #11262 from pradyunsg/reuse-environment-runner-sccript
Move `__pip-runner__` script into a module
2022-07-16 19:50:03 +02:00
Stéphane Bidoul
bb2a3d7410
Remove the html5lib deprecated feature flag. 2022-07-16 19:37:11 +02:00
Donald Stufft
c1b50e1f4d Add a test for parsing links from JSON 2022-07-15 17:55:15 -04:00
Donald Stufft
68836d479f fix number of calls 2022-07-15 17:22:46 -04:00
Donald Stufft
7cb5aae880 fix a stray ' 2022-07-15 17:22:46 -04:00
Donald Stufft
6f9ccfc136 Fix link hashes 2022-07-15 17:22:46 -04:00
Donald Stufft
d67cac3c13 formatting 2022-07-15 17:22:46 -04:00
Donald Stufft
799c88f13d Update some tests to work again 2022-07-15 17:22:46 -04:00
Donald Stufft
9c98346df9 Add new accept headers 2022-07-15 17:22:46 -04:00
Donald Stufft
21a99e4b87 Update tests to use new names 2022-07-15 17:22:46 -04:00
Donald Stufft
55192a1674 Fix tests 2022-07-15 17:22:46 -04:00
Finn Womack
61862a3b3c
Update test_logging.py for non-utc windows env 2022-07-15 14:00:57 -07:00
Finn Womack
6c822e6224
Update fixed_time patch for non-utc windows env 2022-07-15 13:59:02 -07:00
Stéphane Bidoul
a7df613b78
inspect: add experimental status warning 2022-07-15 14:08:38 +02:00
Stéphane Bidoul
585136494e
Add pip inspect command 2022-07-15 14:08:38 +02:00
Pradyun Gedam
470b217e8c
Add a test that the runner script works in environments without pip
This ensures that the runner script can be used in environments where
pip is not installed.
2022-07-15 12:22:08 +01:00
Stéphane Bidoul
d830c96403
Merge pull request #10771 from sbidoul/install-report-sbi
Installation/resolution report (aka pip install --dry-run --report)
2022-07-15 12:29:06 +02:00
Stéphane Bidoul
074c6b5cad
install report: added experimental status warning 2022-07-15 11:08:56 +02:00
Stéphane Bidoul
e41b13424e
install report: use array instead of dict for install field 2022-07-15 11:08:56 +02:00
Tzu-ping Chung
534262d1d6
Merge pull request #11241 from pradyunsg/drop-backtrack-on-build-failures 2022-07-15 16:34:10 +08:00
Pradyun Gedam
8bebea801d
Remove --use-deprecated=backtrack-on-build-failures
This flag is due for removal, in pip 22.2.
2022-07-15 08:27:23 +01:00
Paul Moore
ea2318fbf9 Minor zipapp-related fixes and skips for some tests 2022-07-12 10:12:17 +01:00
Paul Moore
c7e7e426cb Apply black 2022-07-12 09:02:11 +01:00
Paul Moore
b84e5f3d99 Actually build the zipapp 2022-07-11 23:52:44 +01:00
Paul Moore
9a51fc8e0c Make the zipapp in a fixture 2022-07-11 20:01:26 +01:00
Paul Moore
ef999f4c76 Ignore temporary extracted copies of cacert.pem when testing with a zipapp 2022-07-11 17:18:21 +01:00
Paul Moore
a57668ef12 Add an option to the test suite to specify a zipapp to test 2022-07-11 16:26:24 +01:00
Stéphane Bidoul
f66b3e8d01
Merge pull request #11195 from pradyunsg/distutils-replace-fancygetopt-with-getopt
Replace `distutils.fancy_getopt` with `getopt`
2022-07-10 13:18:33 +02:00
Stéphane Bidoul
99818e1e9a
Merge pull request #10692 from t20100/fix-install-pre
Fix `pip install --pre` for packages with dependencies defined in `pyproject.toml` and `setup.py`
2022-07-10 13:17:57 +02:00
Pradyun Gedam
8cbb89b6cc
Replace distutils.fancy_getopt with getopt
This eliminates one location where distutils may be imported on
Python 3.12+, by replacing the logic with mostly equivalent logic.
2022-07-08 17:14:01 +01:00
Stéphane Bidoul
7fdff17543
install report: add suport for stdout output 2022-07-05 10:05:57 +02:00
Stéphane Bidoul
d32a62b3df
Use canonical names as keys in installation report 2022-07-05 10:05:57 +02:00
Stéphane Bidoul
2c84a1c16d
Add requested_extras to installation report 2022-07-05 10:05:57 +02:00
Stéphane Bidoul
d6685d09cf
Test that the install report has requires_dist
This is important for legacy setuptools distributions that do not
have Requires-Dist in PKG-INFO.
2022-07-05 10:05:57 +02:00
Stéphane Bidoul
e37178775b
Add --report option to pip install 2022-07-05 10:05:57 +02:00
Tzu-ping Chung
6eaa8e9135 Don't consider dist-info in a wheel as "installed"
This applies to the new importlib.metadata backend. The legacy
pkg_resources backend already does this (albeit accidentally).

A package inside a wheel is not guaranteed to "work" when directly
imported, so we should not treat it as an installed distribution.
2022-06-30 21:49:39 +08:00
Stéphane Bidoul
f1a5cfce16
Merge pull request #11186 from venthur/fix_spelling
fixed some spelling mistakes
2022-06-26 12:34:26 +02:00
Stéphane Bidoul
340054a6bd
Merge pull request #11052 from SpecLad/fix-script-record-hash
Update the RECORD entry when rewriting the shebang line in a script
2022-06-26 12:20:13 +02:00
Stéphane Bidoul
65680b4bb1
Merge pull request #11096 from sbidoul/install-dry-run-sbi
Add --dry-run option to pip install
2022-06-26 11:41:48 +02:00
Роман Донченко
e4cd6da6e5 Update the RECORD entry when rewriting the shebang line in a script
The code to do this already exists in `get_csv_rows_for_installed`, but it's
broken due to inconsistent usage of the `_fs_to_record_path` function. When
we build the dictionary of installed files, we call it with a base
directory, while when build the set of modified files, we call it without a
base directory. As a result, the values of `installed` do not match the
elements of `changed`, and `get_csv_rows_for_installed` fails to identify
the rows that should be updated.

Fix this by ensuring that `_fs_to_record_path` is always called with a base
directory. `_record_to_fs_path` also needs a a base directory parameter to
be able to transform the path back into an absolute path, so add one.
2022-06-25 01:27:08 +03:00
Stéphane Bidoul
25dd00571a
Merge pull request #11022 from SpecLad/download-propagate-pep517
pip download: make sure that --use-pep517 is propagated to the dependencies
2022-06-24 19:42:58 +02:00
Stéphane Bidoul
ae67371450
Rename json_metadata to metadata_dict 2022-06-23 19:35:45 +02:00
Stéphane Bidoul
aac65f0b86
Add json_metadata 2022-06-23 19:35:45 +02:00
Stéphane Bidoul
3726f71720
Add a --dry-run option to pip install 2022-06-23 19:33:18 +02:00
Stéphane Bidoul
422719863a
Merge pull request #11163 from sbidoul/ref-metadata-sbi
Refactor `BaseDistribution.metadata` property to make sure it has `Requires-Dist` and `Provides-Extra`
2022-06-23 19:31:27 +02:00
q0w
c8c88ce520 Adapt tests 2022-06-23 19:20:18 +03:00
q0w
3662f5e0df Disallow use of script fixture in unit tests 2022-06-23 17:42:50 +03:00
q0w
49657d8c94 Use os.fspath 2022-06-21 19:35:22 +03:00
q0w
3181063f94 Convert to str shutil.move src arg for py<=39
https://github.com/python/cpython/issues/76870
2022-06-15 22:07:15 +03:00
Роман Донченко
28d7730087 test_download_use_pep517_propagation: use a different approach
The approach it uses now doesn't work anymore due to 452d7da8.
The installation of `fake_dep` now succeeds whether or not `setuptools`
is installed in the test environment.

Use a different approach instead: try to import `pip` in the `setup.py`
script. If it succeeds, then we are not running in an isolated environment,
and therefore PEP 517 isn't being used.

To add this custom logic to `setup.py`, add a new argument to
`create_basic_sdist_for_package`. Note that to make this work, I had to
switch from f-strings to `str.format`, since the `dedent` has to happen
before formatting.
2022-06-15 18:11:07 +03:00
Роман Донченко
698784796b pip download: make sure that --use-pep517 is propagated to the dependencies 2022-06-15 18:10:22 +03:00
Bastian Venthur
5da767c946 fixed some spelling mistakes
that's all :)
2022-06-14 21:24:58 +02:00
Stéphane Bidoul
a814290ff4 Make sure metadata has Requires-Dist and Provides-Extra
egg-info distributions may not have the Requires-Dist and Provides-Extra
fields in their metadata. For consistency and to provide an
unsurprising metadata property, we emulate it by reading requires.txt.
2022-06-12 19:40:42 +02:00
Tzu-ping Chung
ad1b2d31d0 Use samefile instead == to compare to SRC_DIR
This resolves a behavioral different between Python 3.7 and 3.8+, where
a == comparison would incorrectly compare Path against str and cause
incorrect results.
2022-06-12 12:19:14 +08:00
Tzu-ping Chung
42359a9605 Migrate tests to use pathlib.Path
The pip-specific Path implementation has been removed, and all its
usages replaced by pathlib.Path. The tmpdir and tmpdir_factory fixtures
are also removed, and all usages are replaced by tmp_path and
tmp_path_factory, which use pathlib.Path.

The pip() function now also accepts pathlib.Path so we don't need to put
str() everywhere. Path arguments are coerced with os.fspath() into str.
2022-06-08 19:58:46 +08:00
Stéphane Bidoul
e58a8a591b
Merge pull request #11137 from sbidoul/download-info-sbi
Add download_info: DirectUrl to InstallRequirement
2022-06-01 08:21:12 +02:00
Stéphane Bidoul
05d2b85d4a Add unit tests for cache origin.json... and fix a bug 2022-05-30 18:36:48 +02:00
Tzu-ping Chung
b91dbde21f
Merge pull request #11082 from uranusjr/truststore 2022-05-30 02:32:49 -04:00
Pradyun Gedam
90096394c3
Merge pull request #11134 from q0w/revert-10998-handle-netrc
Revert "Prioritize url credentials over netrc"
2022-05-25 12:38:57 +05:30
Stéphane Bidoul
e7449498d3
Record origin url in wheel cache 2022-05-22 22:46:35 +02:00
Stéphane Bidoul
c6baa7514a
Add download_info to InstallRequirement 2022-05-22 22:46:35 +02:00
Pradyun Gedam
f20ab575b9
Merge pull request #11124 from uranusjr/use-contain-for-checking
Allow pre-release to satisfy build requirements
2022-05-16 15:05:40 +01:00
Tzu-ping Chung
f7c05a5124 Allow pre-release to satisfy build requirements 2022-05-16 07:40:00 -04:00
Pradyun Gedam
30af8074bf
Merge pull request #11117 from q0w/opt-check
Opt to check build dependencies
2022-05-14 21:55:18 +01:00
q0w
e20aab9901 Revert "Merge pull request #10998 from q0w/handle-netrc"
This reverts commit eacc739320, reversing
changes made to d5e1eeecc8.
2022-05-14 20:48:29 +03:00
Pradyun Gedam
d673aa1428
Move RequirementSet.add_requirement into LegacyResolver
This was the only call-site for this method and, realistically, it is
highly coupled with the legacy resolver's dependency resolution
strategy/approach; so it makes sense for this code to live as part of
the resolver, rather than the container object the various resolvers.
2022-05-13 18:59:53 +01:00
q0w
3166157e40 Opt to check build dependencies 2022-05-13 03:05:55 +03:00
Pradyun Gedam
611e9253ff
Filter out build requirements that require an extra to be used
There is no mechanism provided for build requirements to have extras.

It should be acceptable to enforce that any "optional" packages
that are supposed to be conditionally installed based on the presence of
an extra should not be installed in a build environment.
2022-05-12 01:04:11 +01:00
Pradyun Gedam
cb24fb4052
Merge pull request #11085 from pypa/revert-10962-fix-hashes 2022-05-09 08:38:51 +01:00
Pradyun Gedam
cf3696a81b
Merge pull request #11080 from sbidoul/requested-with-constraints
Fix REQUESTED in presence of URL constraints
2022-05-06 18:15:35 +01:00
Tzu-ping Chung
a020e8c35c Add very simple tests to ensure feature is enabled 2022-05-03 11:04:05 -06:00
Pradyun Gedam
2d028e140e Revert "Filter available distributions using hash declarations from constraints files (#10962)"
This reverts commit 0c284520c6.
2022-05-03 17:50:21 +01:00
Stéphane Bidoul
3c62d1cbce
Add failing test for REQUESTED and URL constraints 2022-05-01 19:39:17 +02:00
wim glenn
32f642d123 provide a better error message for "pip config get index-url" 2022-04-29 22:51:16 -05:00
wim glenn
af20d93d71 placate pre-commit 2022-04-29 22:38:38 -05:00
wim glenn
4b35763d5f `pip config` normalizes names, converting underscores into dashes. closes #9330 2022-04-29 22:38:38 -05:00
Paul Moore
cdeb8f9e63
Merge pull request #11059 from pfmoore/config_settings
Add a UI to set config settings for PEP 517 backends
2022-04-29 12:58:32 +01:00
Pradyun Gedam
7eb75413e8
Merge pull request #10959 from pradyunsg/better-upgrade-warning
Improve the presentation style of the pip upgrade prompt
2022-04-28 18:26:43 +01:00
Pradyun Gedam
7164b1af50
Merge pull request #10827 from q0w/project-urls
Include Project-URLs in `pip show -v` output
2022-04-23 21:39:51 +01:00
Paul Moore
437bb67900 Rename test file pep517 -> pyproject 2022-04-23 14:45:59 +01:00
Paul Moore
4db45851b6 Explicitly test installs (and fix a bug found by those tests!) 2022-04-23 13:14:22 +01:00
Pradyun Gedam
26d8441100
Pacify linters by passing logging.DEBUG instead of "DEBUG" 2022-04-23 12:30:42 +01:00
Pradyun Gedam
ca84a83633
Rework the tests for self_check_outdated to do less mocking
This makes the tests more reliable and easier to reason about. This also
adds a few more cases under the test conditions.
2022-04-23 12:30:42 +01:00