Skip to content

Releases: pdm-project/pdm

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)

v2.18.2

10 Sep 08:09
4bc0cb1
Compare
Choose a tag to compare

Bug Fixes

  • Respect the excludes and overrides settings when installing packages. (#3113)
  • Fix a bug of export command that packages with extras are included twice. (#3123)
  • Remove empty groups when removing packages with pdm remove. (#3133)
  • When running pdm venv purge, if the current project's python version had been referencing the removed venv then clear it out. (#3137)
  • Fix command pdm config to not show site configuration file path if it doesn't exist. (#3149)
  • Now when --no-markers is used, the exported requirements can only work on the current platform. (#3152)

Miscellany

  • Skip tests related to python installation on non-standard platforms. (#3053)

v2.19.0a0

05 Sep 12:08
431b180
Compare
Choose a tag to compare
v2.19.0a0 Pre-release
Pre-release

Breaking Changes

  • pre_install and post_install signals now receive the list of packages to be installed, instead of a candidate mapping. (#3144)

Features & Improvements

  • Deprecate Core.synchronizer_class attribute. To get the synchronizer class, use Project.get_synchronizer method instead.
    Deprecate Core.resolver_class attribute. To get the resolver class, use Project.get_resolver method instead. (#3144)
  • Add experimental support for uv as the resolver and installer. One can opt in by setting use_uv to true using pdm config command. (#3144)

Bug Fixes

  • Respect the excludes and overrides settings when installing packages. (#3113)
  • Fix a bug of export command that packages with extras are included twice. (#3123)
  • Remove empty groups when removing packages with pdm remove. (#3133)
  • When running pdm venv purge, if the current project's python version had been referencing the removed venv then clear it out. (#3137)