Skip to content

Releases: pdm-project/pdm

v2.22.1

19 Dec 08:48
6ea9d55
Compare
Choose a tag to compare

Bug Fixes

  • Fix zsh hanging issue by removing PyPI package completion. (#3329)
  • Write dev dependencies to dependency-groups section when importing project from other package managers. (#3354)

Miscellany

  • Show a warning when resolving against cross-platform targets under uv mode. (#3341)

v2.22.0

09 Dec 08:26
be64954
Compare
Choose a tag to compare

Features & Improvements

  • Use minimal template if the project is an application. (#3295)
  • Add one safe_compatible version specifiers saving strategy. (#3301)
  • Allow customizing scripts display with scripts.show_header settings. (#3313)
  • Speed up the resolution by only resolving wheel candidates if possible. (#3319)
  • Drop version from the search result, following the change of warehouse. (#3328)
  • Support overrides settings under [tool.pdm.resolution] with use_uv (#3330)

Bug Fixes

  • No longer requires wheel to build a setuptools-backed package. (#3320)
  • Fix an inconsistent behavior when running pdm remove <package> with uv enabled. (#3323)
  • Fix: uninstallation error when pdm is not installed before. (#3325)
  • Fix a bug in uv mode that direct URL dependencies can't be installed. (#3332)
  • Fix a crash issue when rewriting dependency groups with include-group items. (#3333)
  • Also read username from keyring if missing in source/repository config. (#3334)
  • Allow configuring repositories in project. (#3335)

Miscellany

  • Mark tests that require uv and skip them if uv is not found. (#3324)

v2.21.0

25 Nov 06:47
8573f95
Compare
Choose a tag to compare

Features & Improvements

  • Pass original working directory as env variable to pdm scripts (#3179)
  • Output similar commands or script command when the input command is not correct (#3270)
  • improve readability of Python interpreter validation message (#3276)
  • Print task name by default when using pdm run (#3277)
  • Make OrderedSet.__contains__ run in O(1) (#3280)
  • Emit post_lock after writing pyproject.toml and pdm.lock in add/update (#3285)
  • Drop support of Python 3.8 (#3298)

Bug Fixes

  • Fix the name normalization issue for optional dependency groups. (#3271)
  • Don't use uv when installing plugins in project. (#3283)
  • Fix the bug that pdm plugins are invalid after installation on ubuntu system python. (#3289)

v2.20.1

09 Nov 08:27
6ed7b6e
Compare
Choose a tag to compare

Features & Improvements

  • Add a fixer to remove the deprecated cross_platform strategy from lock file. (#3259)

Bug Fixes

  • Fix the bug that pdm build would fail when use_uv is true. (#3231)
  • Fix group name normalization when comparing groups. (#3247)
  • Inherit file descriptors instead of closing when running child processes in pdm run. (#3252)
  • Fix using no_proxy when all_proxy is set. (#3254)
  • Preserve multiline arrays and don't add empty tool.pdm table header when updating the pyproject.toml. (#3258)
  • Fix compatibility of ErrorArgumentParser for Python 3.12 and above. (#3264)

v2.20.0.post1

01 Nov 00:47
2a7af10
Compare
Choose a tag to compare

Features & Improvements

  • Support dependency groups as standardized by PEP 735. By default, dev dependencies will be written to [dependency-groups] table. (#3230)

Bug Fixes

  • Fix a bug that strategy.inherit_metadata config is not honored when using --lockfile option. (#3232)
  • Always perform install-time resolution when use_uv is on. (#3233)

Miscellany

  • Update resolvelib to 1.1.0. (#3235)

v2.20.0

31 Oct 10:51
971a4d7
Compare
Choose a tag to compare

Features & Improvements

  • Support dependency groups as standardized by PEP 735. By default, dev dependencies will be written to [dependency-groups] table. (#3230)

Bug Fixes

  • Fix a bug that strategy.inherit_metadata config is not honored when using --lockfile option. (#3232)
  • Always perform install-time resolution when use_uv is on. (#3233)

Miscellany

  • Update resolvelib to 1.1.0. (#3235)

v2.19.3

19 Oct 03:32
c24668f
Compare
Choose a tag to compare

Features & Improvements

  • Allow linking existing Python interpreters to PDM's managed location. (#3215)

Bug Fixes

  • Fix a bug that overrides provided by environment variables do not work. (#3182)
  • Allow prereleases when the requirement is pinned even if disabled by project (#3202)
  • Pass the python path to the uv venv command. (#3204)
  • Fix the infinite loop when running in uv mode if the current project has dynamic metadata. (#3207)
  • Add --no-frozen-deps option to install-pdm.py script to allow installing newer versions of dependencies. (#3213)
  • pdm self update now prefers the locked dependencies unless --no-frozen-deps is specified. (#3216)
  • By default, pdm outdated will only list direct dependencies. This can be changed by adding the --include-sub option. (#3218)

Documentation

  • Show users the way to uninstall pdm in a more obvious way (#2470)

v2.19.2

11 Oct 00:37
5ee042a
Compare
Choose a tag to compare

Features & Improvements

  • Support installing free-threaded Python interpreters with the t suffix. (#3201)

Bug Fixes

  • use_uv fails to lock when there are non-ascii characters in pyproject.toml on Windows. (#3181)
  • Fix the pre_install and post_install signals receiving an exhausted generator, instead of a list of packages. (#3190)
  • Create backup file with random filename to avoid conflicts. (#3193)
  • Fix the logic error in the uv format marker matching. (#3197)
  • pdm lock --check on a lockfile generated with older PDM version has a 0 exit code when there's a change in pyproject.toml. (#3199)

Documentation

  • Fixed Bash Completion suggestion so it doesn't require root privileges (#3183)

v2.19.1

23 Sep 11:18
cb86c05
Compare
Choose a tag to compare

Bug Fixes

  • PDM libraries are not loaded correctly for in-process scripts when installed in the user site. (#3178)

v2.19.0

23 Sep 07:17
31505c6
Compare
Choose a tag to compare

Bug Fixes

  • Fallback version to 0.0.0 when the version is not specified or empty. This can avoid crash when building such project. (#3163)
  • Ensures that / is URL encoded in sources URL environment variables. (#3169)
  • Call functions from shared library in the in-process env_spec.py script. (#3176)

Removals and Deprecations

  • PDM no longer falls back to setuptools-pep660 when the build backend doesn't support PEP 660. (#3159)

Miscellany

  • Change the project structure to a normal package from a namespace package. (#3155)