Features & Improvements
- Officially drop the support for Python 3.7.
- Allow exporting current project as editable dependency with
pdm export. #1910 - Improve the lockfile compatibility checking by using 3-digit version numbers. This can distinguish forward-compatibility and backward-compatibility. #2164
- Add
--skip-existingtopdm publishto ignore the uploading error if the package already exists. #2362 - Use
==major.minor.*as default requires python for application projects. #2382 - We now use the
package-typefield in thetool.pdmtable to differentiate between library and application projects. #2394 - Add support for {pdm} placeholder in script definitions to call the same PDM entrypoint #2408
- When exporting requirements, record the environment markers from all parents for each requirement. This allows the exported requirements to work on different platforms and Python versions. #2418
pdm locknow supports--update-reuseoption to keep the pinned versions in the lockfile if possible. #2419- Introduce a new lock strategy
inherit_metadatato inherit and merge markers from parent requirements. This is enabled by default when creating a new lockfile. #2421 - New cache methods:
symlink_individualfor creating a symlink for each individual package file andhardlinkfor creating hardlinks. #2425 - Add "pdm sync" pre-commit hook #2474
- New update strategy:
reuse-installed. When this strategy is enabled, PDM will try to reuse the versions already installed in the environment, even if the package names are given in the command line followingaddorupdate. This strategy is supported byadd,updateandlockcommands. #2479 - Show subcommand's help info when passing unrecognized arguments. #2480
- add
PDM_CACHE_DIRenvironment variable to configure cache directory location. #2485
Bug Fixes
- Use the same order of Python interpreters as interactive mode in
pdm init -n. #2436 pdm initnow implies--libif--backendis passed. #2437- Fix a bug that link collection ignores package-index-binding. #2442
- Fix the wrong installation candidates for different architectures on Windows. #2464
- Fix installing PEP 561 stub-only packages with
install.cache_method = "symlink". #2466 - Fix a
KeyErrorraised bypdm update --unconstrainedwhen the project itself is listed as a dependency. #2483