Releases: pdm-project/pdm
Releases · pdm-project/pdm
v2.20.0.post1
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
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
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 toinstall-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
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
andpost_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 inpyproject.toml
. (#3199)
Documentation
- Fixed Bash Completion suggestion so it doesn't require root privileges (#3183)
v2.19.1
v2.19.0
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
Bug Fixes
- Respect the
excludes
andoverrides
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
Breaking Changes
pre_install
andpost_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, useProject.get_synchronizer
method instead.
DeprecateCore.resolver_class
attribute. To get the resolver class, useProject.get_resolver
method instead. (#3144) - Add experimental support for
uv
as the resolver and installer. One can opt in by settinguse_uv
totrue
usingpdm config
command. (#3144)
Bug Fixes
- Respect the
excludes
andoverrides
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
Bug Fixes
- Skip checking
project.name
if it is absent when runningpdm 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
Features & Improvements
- Respect certificates in env vars
REQUESTS_CA_BUNDLE
andCURL_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 thatiex (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 invalidpyproject.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)