PDM v2.27.0 Release Notes
Release Date: 2026-05-21 // 21 days ago-
💥 Breaking Changes
- ⚡️ Update the minimum required Python version to 3.10. (#3787)
🔋 Features & Improvements
- Respect existing values of
pyproject.tomlwhen runningpdm initorpdm new. (#3786) - 🚚 Move project plugin installations from
.pdm-pluginsunder the project root to an isolated cache directory, and add a fixer to migrate existing plugin directories. (#3790) - ✂ Remove legacy importlib compatibility wrappers and use standard-library
importlib.metadataandimportlib.resourcesAPIs directly. (#3796)
🐛 Bug Fixes
- 🛠 Fix a security issue with the installer to disallow installing to paths outside of the scheme directory. (#3787)
- Refuse to write project-local config and state files (
pdm.toml,.pdm-python,.python-version) when the destination is a symlink, preventing an untrusted repository from clobbering files outside the project root. (#3788) - 🛠 Fix a regression issue that
PDM_LOCKFILEenv var is not respected. (#3794) - 👍 Allow configuring the default lock
--exclude-newervalue withstrategy.exclude-newer. (#3795)
Previous changes from v2.26.9
-
🔋 Features & Improvements
- 👌 Support
exclude-newerinpyproject.tomlin the[tool.pdm.resolution]table (#3776)
🐛 Bug Fixes
- 📦 Preserve pylock package markers when refreshing lockfile hashes. (#3773)
What's Changed
- ✂ Remove dead code by @duriantaco in #3774
- ⚡️ [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #3780
- ⚡️ chore(deps): bump the actions group with 5 updates by @dependabot[bot] in #3778
- fix: update pdm_scheme to set pep582_base in sysconfig and add corresponding test by @frostming in #3781
- 👍 Allow
exclude-newerto be defined inpyproject.tomlby @sneakers-the-rat in #3782
🆕 New Contributors
- @duriantaco made their first contribution in #3774
- @sneakers-the-rat made their first contribution in #3782
Full Changelog : 2.26.8...2.26.9
- 👌 Support