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.toml when running pdm init or pdm new. (#3786)
    • 🚚 Move project plugin installations from .pdm-plugins under 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.metadata and importlib.resources APIs 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_LOCKFILE env var is not respected. (#3794)
    • 👍 Allow configuring the default lock --exclude-newer value with strategy.exclude-newer. (#3795)

Previous changes from v2.26.9

  • 🔋 Features & Improvements

    • 👌 Support exclude-newer in pyproject.toml in the [tool.pdm.resolution] table (#3776)

    🐛 Bug Fixes

    • 📦 Preserve pylock package markers when refreshing lockfile hashes. (#3773)

    What's Changed

    🆕 New Contributors

    Full Changelog : 2.26.8...2.26.9