LockedRepository.all_candidates now returns a dict[str, list[Candidate]] instead of dict[str, Candidate]. (#2995)
post_lock hook now receives a resolution result of type dict[str, list[Candidate]], instead of dict[str, Candidate]. (#2995)
Features & Improvements
Support reading requirement constraints from pip-style requirement files for "overriding" via --override option. (#2896)
Add a --non-interactive option for automation scenarios, also interactive prompts will not show up when not running in an interactive terminal. (#2934)
Add --license and --project-version as CLI options to control and streamline them during pdm init - especially in automated scenarios with --non-interactive (#2978)
Run pdm sync in "post-rewrite" stage of pre-commit (#2994)
Project.get_dependencies() now returns a list of Requirement instead of a mapping.
The first argument of Project.add_dependencies() now accepts a list of Requirement instead of a mapping.
The old usage will be kept working for a short period of time and will be removed in the future. (#2995)
Support locking for specific target, which is a combination of (python, platform, implementation) triple. Bump lock file version to 4.5.0.
Example usage: pdm lock --platform=linux --python="==3.8.*" --implementation=cpython. See the docs for more details. (#2995)
Rename --reuse-env to --recreate for run command, and reverse the behavior. (#2999)
PDM is now published with optional pinned dependencies using the pdm plugin pdm-build-locked.
To install pdm with its dependencies pinned to the versions it was tested with, run:
pipx install pdm[locked]
To install optional dependency group copier:
pipx install pdm[locked,copier-locked]
This feature is entirely optional. Installing pdm without the extra will work the same way as before this change. (#3001)
LockedRepository.all_candidates now returns a dict[str, list[Candidate]] instead of dict[str, Candidate]. (#2995)
post_lock hook now receives a resolution result of type dict[str, list[Candidate]], instead of dict[str, Candidate]. (#2995)
Features & Improvements
Support reading requirement constraints from pip-style requirement files for "overriding" via --override option. (#2896)
Add a --non-interactive option for automation scenarios, also interactive prompts will not show up when not running in an interactive terminal. (#2934)
Refactored pdm python install --list to reuse the same implementation as other cli commands that work with Python interpreters from pbs_installer. (#2977)
Add --license and --project-version as CLI options to control and streamline them during pdm init - especially in automated scenarios with --non-interactive (#2978)
Run pdm sync in "post-rewrite" stage of pre-commit (#2994)
Project.get_dependencies() now returns a list of Requirement instead of a mapping.
The first argument of Project.add_dependencies() now accepts a list of Requirement instead of a mapping.
The old usage will be kept working for a short period of time and will be removed in the future. (#2995)
Support locking for specific target, which is a combination of (python, platform, implementation) triple. Bump lock file version to 4.5.0.
Example usage: pdm lock --platform=linux --python="==3.8.*" --implementation=cpython. See the docs for more details. (#2995)
Rename --reuse-env to --recreate for run command, and reverse the behavior. (#2999)
PDM is now published with optional pinned dependencies using the pdm plugin pdm-build-locked.
To install pdm with its dependencies pinned to the versions it was tested with, run:
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps pdm from 2.16.1 to 2.17.1.
Release notes
Sourced from pdm's releases.
... (truncated)
Changelog
Sourced from pdm's changelog.
... (truncated)
Commits
c76e982
chore: Release 2.17.1654aea2
fix: remove news in wrong location12cb78f
fix: correct the platform and arch for win32 and macos (#3036)f2c3580
Raise dep-logic lower bound to 0.4.2 (#3033)739d468
fix: zsh completion syntax error (#3034)278f9bb
chore: Release 2.17.06decbc8
feat: Add --clean-unselected alias for --only-keep (#3029)518c3dc
fix: add a--no-interactive
for automation scenario (#3030)157c836
docs: make chatbot always display at the right height and set as topmost (#3026)0e5f028
fix: remove debug logsDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show