Features & Improvements
- Add
venv.promptconfiguration to allow customizing prompt when a virtualenv is activated #1332 - Allow the use of custom CA certificates per publish repository using
ca_certsor from the command line viapdm publish --ca-certs <path> .... #1392 - Rename the
plugincommand toself, and it can not only manage plugins but also all dependencies. Add a subcommandself updateto update PDM itself. #1406 - Allow
pdm initto receive a Python path or version via--pythonoption. #1412 - Add a default value for
requires-pythonwhen importing from other formats. #1426 - Use
pdminstead ofpipto resolve and install build requirements. So that PDM configurations can control the process. #1429 - Customizable color theme via
pdm configcommand. #1450 - A new
pdm lock --checkflag to validate whether the lock is up to date. #1459 - Add both option and config item to ship
pipwhen creating a new venv. #1463 - Issue warning and skip the requirement if it has the same name as the current project. #1466
- Enhance the
pdm listcommand with new formats:--csv,--markdownand add options--fields,--sortto control the output contents. Users can also includelicensesin the--fieldsoption to display the package licenses. #1469 - A new pre-commit hook to run
pdm lock --checkin pre-commit. #1471
Bug Fixes
- Fix the issue that relative paths don't work well with
--projectargument. #1220 - It is now possible to refer to a package from outside the project with relative paths in dependencies. #1381
- Ensure
pypi.[ca,client]_cert[s]config items are passed to distribution builder install steps to allow for custom PyPI index sources with self signed certificates. #1396 - Fix a crash issue when depending on editable packages with extras. #1401
- Do not save the python path when using non-interactive mode in
pdm init. #1410 - Fix the matching of
python*command inpdm run. #1414 - Show the Python path, instead of the real executable, in the Python selection menu. #1418
- Fix the HTTP client of package publishment to prompt for password and read PDM configurations correctly. #1430
- Ignore the unknown fields when constructing a requirement object. #1445
- Fix a bug of unrelated candidates being fetched if the requirement is matching wildcard versions(e.g.
==1.*). #1465 - Use
importlib-metadatafrom PyPI for Python < 3.10. #1467
Documentation
- Clarify the difference between a library and an application. Update the guide of multi-stage docker build. #1371
Removals and Deprecations
- Remove all top-level imports, users should import from the submodules instead. #1404
- Remove the usages of old config names deprecated since 2.0. #1422
- Remove the deprecated color functions, use rich's console markup instead. #1452