🤖 AI-Generated Changelog
Added
--extrasCLI option: Specify optional dependency categories directly from the command line--exclude-indexflag forrequirementscommand: Exclude index URLs from generated requirements outputPIPENV_PYENV_ONLYenvironment variable: Restrict Python discovery exclusively to pyenv, ignoring other Python installationsPIPENV_KEYRING_PROVIDERenvironment variable: Enable Windows Credential Manager and other keyring backends for private index authentication- PEP 440 version specifiers in
python_version: Pipfile now accepts full PEP 440 specifiers (e.g.,>=3.10) for Python version constraints [build-system] requiressupport in Pipfile: Define build system requirements directly in Pipfilepipenv syncfrompylock.toml: Sync environments usingpylock.tomlwithout requiringPipfile.lock- Patch files for pip customizations: Vendored pip customizations are now tracked as patch files for transparency
Changed
pipenv syncandinstall --ignore-pipfilenow work without a Pipfile present--systemflag support improved across multiple commands--allflag forupdateandupgradecommands fixed to correctly target all packages- PyPI
proper_caselookup timeout increased from 0.3s to 3s to reduce failures on slow networks PIPENV_VERSIONenvironment variable is now ignored when running--versionflag- Fish shell completion now supports file path completion for
pipenv runarguments
Fixed
- Shell detection on Windows:
pipenv shellnow correctly launches bash or PowerShell instead of defaulting to cmd - Shell suspension:
pipenv shellnow properly suspends with Ctrl+Z (job control restored) - Shell startup with interactive prompts:
pipenv shellactivates correctly even when shell startup scripts produce interactive output - PTY echo restore race condition: Fixed synchronization issue in Docker and similar environments
- Cross-category dependency resolution: Resolved conflicting version pins when resolving dependencies across multiple categories
- Package name normalization in Pipfile hash: Package names are normalized before computing the Pipfile hash, preventing spurious lockfile invalidation
- URL-encoded credentials in Pipfile source URLs: Expanded credentials are now URL-encoded to avoid parsing errors
sys_platformshorthand markers: Short-form platform markers are now correctly included in pip requirement lines- Python version marker evaluation: Fixed resolution failures caused by incorrect
python_full_versionin marker evaluation, including major-onlypython_versionvalues - Windows py-launcher full-version matching: Correctly matches
python_full_versionspecifiers when using the Windows py launcher - Pipfile whitespace and category corruption: Upgrades no longer corrupt unrelated Pipfile sections or strip formatting
- Symlink preservation: Normalizing the Pipfile path no longer resolves symlinks unexpectedly
- Transitive PEP 508
file://URL dependencies: File-scheme dependencies are now correctly recorded during locking - Pipfile
python_versionmismatch with venv: Records the correct Python version when the venv Python and PATH Python disagree - Editable local-path handling: Hardened handling of editable installs for local paths
distutilsmissing fallback: Falls back tosysconfigwhendistutilsis unavailable (Python 3.12+)- Wheel metadata case preservation: Header install paths now use the wheel metadata package name to preserve original casing
pip.confextra-index hash collection: Hashes frompip.confextra-index URLs are now collected during lockingpip.confindex suppression at install time: Prevents hash mismatch errors caused by pip.conf injecting extra indexes during install- Partial updates preserve transitive dependencies: Pinned packages' transitive dependencies are no longer removed during partial updates
- Private index resolution for dev packages:
index_lookupis now populated from all Pipfile sections when locking non-default categories --whereexit code: Fixed incorrect exit code for the--whereflag_create_builtin_venv_cmd: No longer incorrectly prepends a drive letter to Unix paths when run on Windows- venv fallback for alternative interpreters: Falls back to built-in
venvwhenvirtualenvfails for non-standard interpreters ResolutionTooDeepError: Fixed excessive recursion caused by incorrect marker evaluation during resolutionfix --whereexit code: Corrected exit behavior for the requirements--whereoption
Security
- Cryptography dependency bumped to 46.0.6
- Requests dependency bumped to 2.33.0
🔗 Full Changelog: v2026.2.2...v2026.4.0