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-existing
topdm publish
to 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-type
field in thetool.pdm
table 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 lock
now supports--update-reuse
option to keep the pinned versions in the lockfile if possible. #2419- Introduce a new lock strategy
inherit_metadata
to inherit and merge markers from parent requirements. This is enabled by default when creating a new lockfile. #2421 - New cache methods:
symlink_individual
for creating a symlink for each individual package file andhardlink
for 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 followingadd
orupdate
. This strategy is supported byadd
,update
andlock
commands. #2479 - Show subcommand's help info when passing unrecognized arguments. #2480
- add
PDM_CACHE_DIR
environment 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 init
now implies--lib
if--backend
is 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
KeyError
raised bypdm update --unconstrained
when the project itself is listed as a dependency. #2483