main
Fix crash on invalid entry points (#14220)
refactor: Replace per req permit_editable_wheels by a preparer and builder flag (#14206)
break up tests dir into data, unit tests, and functional tests
Upgrade platformdirs to 4.10.0 (#14142)
Prevent sub-commands from accepting --version (#14231)
Complete PIP_CONSTRAINT build-environment deprecation (#14094)
Restore lost tests
Render usage through Rich on option errors (#14143)
chore: move ruff to 3.10 after Python 3.9 drop (#13921)
Add test for P0D overriding P10D
Respect cache-control header for simple responses (#13955)
fix: `pip debug` cert configuration level detection (#14056)
feat: Add five diagnostic connection errors (#14115)
Warn on unexpected imports during install
Fix `pip show` crash on missing Metadata-Version (#14057)
Migrate tests to use pathlib.Path
Fix typos
Use packaging's direct_url model
Add a test for Requires-Python skip reasons without debug logging (#14170)
Bump Ruff's target-version to Python 3.9
Merge branch 'main' into uploaded-prior-to
Fix Link.filename decoding URL path twice (#14110)
Drop redundant Python 3.9 code
In test cases, use `gmtime` to avoid timezone & daylight savings issues (#12508)
Update black to 25.1.0
Fix existing tests from deprecated to raises
Add support for pulling username from keyring subprocess provider (#14150)
Inherit HTTP cache file read/write permissions from cache directory (#13070)
Close incomplete downloads before removing them
Remove unnecessary `canonicalize_name` calls and validate via `NormalizedName` type
Reject redirects to non-http(s) schemes (#14171)
Fix conflict check whitelist ordering (#14075)
Verify PEP 658 sidecar metadata with the downloaded wheel (#13991)
feat: Add --no-proxy-env and support --proxy="" (#13051)
Enable all FA rules for ruff
mnt: Bump black to 26.5.1
Add tests for release control options
Replace locale.getpreferredencoding() with locale.getencoding() (#13960)
fix tests
perf: Optimize uninstall path compaction (#14108)
Add a --only-deps flag for pip install et al. (#13895)
Respect --no-index from the requirements file
Fix self version check when run as a zipapp (#14217)
Improve `path_to_url()` tests (#13496)
Judicially apply Z to `+00:00` replacement in Python < 3.11
Make pip cache {purge, remove} delete additional unneeded files (#9058)
reject cross-location paths in pylock files fetched from a URL
Fix symlink path traversal in untar fallback
Remove legacy virtualenv<20 runtime support
feat: Allow opting out of Git partial clones (#14163)
Run `ruff check . --fix --select I`
Avoid resolving every PATH entry in the script location warning (#14235)
Don't cache local directories with a dash *facepalm*