Skip to content

Releases: pdm-project/pdm

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)

v2.18.1

16 Aug 09:48
8ad143c
Compare
Choose a tag to compare

Bug Fixes

  • Skip checking project.name if it is absent when running pdm outdated. (#3095)
  • Don't remove the cross_platform strategy from old lock files. (#3105)
  • Fix a bug that the VCS revision is lost if the candidate metadata is cached during resolution. (#3107)
  • Fix a bug that PDM can't delete source password when saved in keyring. (#3108)

v2.18.0

14 Aug 02:39
2cfa78e
Compare
Choose a tag to compare

Features & Improvements

  • Respect certificates in env vars REQUESTS_CA_BUNDLE and CURL_CA_BUNDLE when verifying SSL certificates. (#3076)
  • Allow pypi.verify_ssl to be configured via PDM_PYPI_VERIFY_SSL environmental variable. (#3081)
  • Clean logs older than 7 days. (#3091)
  • Polish the UI looking of locking packages to display the progress. (#3100)

Bug Fixes

  • Fixed pdm venv activate to remove quotes such that iex (pdm venv activate) works correctly (#2895)
  • Don't crash if the version can't be resolved from the self project. (#3077)
  • Don't fail install-pdm.py if there is an invalid pyproject.toml file under the current directory. (#3085)
  • Make it able to expand env vars in the the dotenv file. Expose PDM_PROJECT_ROOT to the dotenv file for expansion. (#3087)
  • Fix a bug that Python markers from the existing locked packages are considered when locking with --append option. (#3089)
  • Backfill urls from configured indexed when exporting to requirements.txt. (#3094)
  • Consider the auto-selected Python range when installing from requirements.txt. (#3095)
  • Fix a bug that env vars do not override project config correctly. (#3099)