* Mon Feb 03 2025 Daniel Garcia <daniel.garcia@suse.com>
- Update 2.22.3
* Don't validate local file requirements that are not used. (#3376)
* Don't set "dependencies" as empty list for uv toml if there is no
dependencies in the raw toml file. (#3378)
* Add a dummy project name to the script environment pyproject.toml.
(#3382)
- 2.22.2
* Write installer metadata like INSTALLER and REQUESTED to dist-info
directory when installing packages. (#3359)
* Respect .python-version file in the project root directory when
selecting the Python interpreter. By default, it will be written
when running pdm use command. (#3367)
* Fix a problem of missing dependencies when adding to dev
dependencies if both editable and non-editable dependencies exist.
(#3361)
* Use stdlib for URL <-> Path conversions. (#3362)
* shellingham.detect_shell() returns ('tcsh', '/bin/tcsh') for tcsh
on FreeBSD, so the current code tries to use the Bash venv
activation script and fails due to syntax error. This change fixes
the issue. (#3366)
* Fix a performance issue because pypi source credentials were being
queried many times from keyring. (#3368)
- 2.22.1
* Fix zsh hanging issue by removing PyPI package completion. (#3329)
* Write dev dependencies to dependency-groups section when importing
project from other package managers. (#3354)
- 2.22.0
* Use minimal template if the project is an application. (#3295)
* Add one safe_compatible version specifiers saving strategy.
(#3301)
* Allow customizing scripts display with scripts.show_header
settings. (#3313)
* Speed up the resolution by only resolving wheel candidates if
possible. (#3319)
* Drop version from the search result, following the change of
warehouse. (#3328)
* Support overrides settings under [tool.pdm.resolution] with use_uv
(#3330)
* No longer requires wheel to build a setuptools-backed package.
(#3320)
* Fix an inconsistent behavior when running pdm remove <package>
with uv enabled. (#3323)
* Fix: uninstallation error when pdm is not installed before.
(#3325)
* Fix a bug in uv mode that direct URL dependencies can't be
installed. (#3332)
* Fix a crash issue when rewriting dependency groups with
include-group items. (#3333)
* Also read username from keyring if missing in source/repository
config. (#3334)
* Allow configuring repositories in project. (#3335)
* Mark tests that require uv and skip them if uv is not found.
(#3324)
* Wed Nov 27 2024 Markéta Machová <mmachova@suse.com>
- Update to 2.21.0
* Support dependency groups as standardized by PEP 735. By default, dev
dependencies will be written to [dependency-groups] table.
* Fix a bug that strategy.inherit_metadata config is not honored when using
- -lockfile option.
* Update resolvelib to 1.1.0.
* Add a fixer to remove the deprecated cross_platform strategy from lock file.
* Pass original working directory as env variable to pdm scripts.
* Output similar commands or script command when the input command is not
correct.
* Print task name by default when using pdm run
* Make OrderedSet.__contains__ run in O(1)
* Drop support of Python 3.8
* Fri Sep 27 2024 Steve Kowalik <steven.kowalik@suse.com>
- Update to 2.19.1:
* Features & Improvements:
+ Respect certificates in env vars REQUESTS_CA_BUNDLE and CURL_CA_BUNDLE
when verifying SSL certificates.
+ Improve the installation progress output to show the time elapsed
+ Support reading requirement constraints from pip-style requirement
files for "overriding" via --override option.
+ Add a --non-interactive option for automation scenarios, also
interactive prompts will not show up when not running in an
interactive terminal.
+ Add --license and --project-version as CLI options to control and
streamline them during pdm init.
+ Run pdm sync in "post-rewrite" stage of pre-commit
+ Project.get_dependencies() now returns 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.
+ Support locking for specific target, which is a combination of (python,
platform, implementation) triple.
+ Rename --reuse-env to --recreate for run command, and reverse the
behavior.
* Bug Fixes
+ Fallback version to 0.0.0 when the version is not specified or empty.
+ Ensures that / is URL encoded in sources URL environment variables.
+ Respect the excludes and overrides settings when installing packages.
+ Fix a bug of export command that packages with extras are included
twice.
+ Remove empty groups when removing packages with pdm remove.
+ When running pdm venv purge, if the current project's python version
had been referencing the removed venv then clear it out.
+ Fix command pdm config to not show site configuration file path if it
doesn't exist.
+ Now when --no-markers is used, the exported requirements can only work
on the current platform.
+ Skip checking project.name if it is absent when running pdm outdated.
+ Don't remove the cross_platform strategy from old lock files.
+ Fixed pdm venv activate to remove quotes
+ Don't fail install-pdm.py if there is an invalid pyproject.toml file
under the current directory.
+ Fix a bug that Python markers from the existing locked packages are
considered when locking with --append option.
+ Fix a crash issue when requires-python is absent in the project
metadata.
+ Ignore invalid requires-python values from index.
+ Fix the group selection logic, to make --without GROUP work as
expected.
+ Raise dep-logic lower bound to 0.4.2 to fix issues with pdm lock
+ When locking dependencies that references the self project, the
referenced groups should also be recorded in the lockfile.
+ Retry failed installation jobs if they are run sequentially, such as
for editable dependencies.
+ Fix the local path issue when -p is passed to change the project root.
+ Fix a bug that PDM can't install editable self package with
non-isolated build in one go.
+ Add context when parsing version failed.
* Removals and Deprecations
+ Remove the deprecation warning of BaseCommand.__init__() method. Now
it doesn't take any arguments.
+ Provider.get_reuse_candidate() method is deprecated in favor of
Provider.iter_reuse_candidates(), to return an iterable of reuse
candidates.
+ --no-markers option in pdm export command becomes a no-op and is
marked as deprecated, because it doesn't make sense anymore.
* Thu Sep 05 2024 Markéta Machová <mmachova@suse.com>
- Fix build on Leap 15.6
* Tue Jul 02 2024 Daniel Garcia <daniel.garcia@suse.com>
- Update to 2.16.1
* Fix new interface from pbs_installer regarding build_dir and best
match auto-install strategy for pdm use
(same as for pdm python install --list) (#2943)
* Fix crash when pdm is used with importlib-metadata version 8.0.
(#2974)
- 2.16.0
* Add --no-extras to pdm export to strip extras from the
requirements. Now the default behavior is to keep extras. (#2519)
* Support PEP 723: running scripts with inline metadata in
standalone environment with dependencies. (#2924)
* pdm use and pdm python install now take requires-python into
account (incl. from pyproject.toml) if python version not
specified and pdm use provides auto installation by that. (#2943)
* --no-isolation no longer installs build-requires nor dynamic build
dependencies, to be consistent with pip. (#2944)
* Add notifiers in CLI output when global project is being used.
(#2952)
* Use tool.pdm.resolution table when calculating the content hash of
project file, previously only overrides table was used.
* This will change the hash already stored in the lockfile, so bump
the lockfile version to 4.4.2. (#2956)
* Add max retries on read timeout or bad connection. (#2914)
* Don't update local files if they don't change. (#2966)
* Don't list python versions that don't have any installation link
for the current platform. (#2970)
* Clarify the purposes of pdm outdated and --unconstrained option.
(#2965)
* Some clarifications on the interpreter selection and central
package cache. (#2967)
- 2.15.4
* Build wheel from sdist if available, to make sure sdist is built
properly. This behavior is consistent with pypa/build. (#2843)
* Fix the issue of self-referencing extra dependencies failing to be
resolved for local packages. (#2898)
* Fix an issue of max recursion depth error when parsing a poetry
project with circular dependencies on local packages. (#2900)
* Fix a bug that VCS dependencies and --self don't work in the
exported requirements.txt with hashes. (#2908)
* Fix a cache miss when there exist built wheels for a given link.
(#2912)
* Don't try to store caches when --no-cache is given. (#2913)
- 2.15.3
* Fixed pdm venv activate, to also work for windows. And added
documentation on how to authenticate to Azure Artifacts (#2851)
* Don't show unsupported formats in pdm export. (#2877)
* Proxy (HTTP_PROXY env vars) settings are ignored for custom
indexes. (#2880)
* Fix the quoting of venv activate command for powershell. (#2881)
* Raise an error if the package given by pdm update does not exist
in the select dependency group but in other groups. (#2885)
- 2.15.2
* Use get_runner() method to build the task runner in run command.
runner_cls attribute is deprecated. (#2872)
* Expand ${PROJECT_ROOT} in source URLs. (#2846)
* Fix env and other options being inherited in nested composite
scripts. (#2849)
* Keep the ${PROJECT_ROOT} variable in dependencies after running
pdm lock --update-reuse. (#2852)
* Make direct_minimal_versions work on newly added dependencies.
(#2853)
* Fix a syntax error in the zsh completion script. (#2868)
- 2.15.1
* Disable check update in zsh completion script. (#2838)
* Fixes cached packages metadata files (.referrers) collisions on
sync when using a venv with symlink cache method. (#2839)
* Build docs with object inventory to support cross references from
Sphinx documentation projects. (#2841)
- 2.15.0
* Packages format preferences can now be defined in the project
pyproject.toml using the no-binary, only-binary and prefer-binary
keys of the tool.pdm.resolution section. (#2656)
* Don't create project and virtualenv when running pdm python
install. (#2809)
* Clean up the python installation directory if a previous download
was unsuccessful. (#2810)
* Don't cache editable installations. (#2816)
* Fix a bug that installing in-project plugins with editable local
paths doesn't work. (#2820)
* Don't create log directory until it's needed, to fix a
PermissionError in docker environment. (#2825)
* Fix recursive script detection on multiple invocations. (#2829)
- 2.14.0
* Revert the package cache introduced in 2.13. Don't cache the
decompressed contents of wheels unless being told so. (#2803)
* Fix inconsistent logging when pdm use a different python
interpreter (#2776)
* Fix PDM unable to find Python interpreters when
PDM_IGNORE_ACTIVE_VENV is set (#2779)
* Check verify_ssl when trusting each source. (#2784)
* Fix name check for project itself in pdm outdated (#2785)
* Fix a regression that proxy env vars are not respected. (#2788)
* Fix an issue that venv provider can't be found when providers are
explicitly configured. (#2792)
* Fix a bug that [tool.pdm.options] are ignored if -c/--config
CONFIG is given. (#2793)
* Make --without respect groups in dev-dependencies (#2799)
- 2.13.3
* Per-source configuration for ca-certs and client-cert. #2754
* Remove all caches by removing individual cache types one by one.
[#2757]
* Use the default HTTP client when downloading the pythons, to use
the certificates settings. #2759
* Fix a race condition where pth files take effect when multiple
packages are installed in parallel. #2762
* Refuse to run recursive composite scripts. #2766
- 2.13.2
* Fix errors when parsing poetry format that contains special
characters in author name.
* Poetry-specific parse_name_email and NAME_EMAIL_RE moved from
pdm.formats.base to pdm.formats.poetry. #2665
* Fix a race condition in cached packages. When a cached package is
being created it shouldn't be used for installation. #2739
* Add back PreparedCandidate.build() for backward-compatibility.
[#2747]
* Fixed a small non-code typo in docs and prodivded better wording.
[#2740]
- 2.13.1
* Fix a bug that PDM couldn't find interpreters for global project.
[#2726]
* Make the cache package path shorter to solve the Windows path
problem. #2730
* Extract "Lock file" doc from "Manage Dependencies" doc. #2725
- 2.13.0
* Add option to exclude group(s) when running pdm sync/install
- G:all by adding flag --without group1,group2,... #2258
* Default to log to user home and make logs directory configurable.
[#2398]
* Add an option keep_going to continue on errors for composite
scripts and return the last failing exit code. #2582
* Add an option working_dir for PDM's scripts to set the current
working directory. #2620
* Allow updating specific sub-dependencies (i.e., transitive
dependencies) in the lock file. #2628
* Add --config-setting option to
add/install/sync/update/remove/export commands, the config
settings dictionary will be shared by all packages. #2636
* Cache the decompressed contents of wheels for faster access. #2660
* Add configuration for timeout for network requests. #2680
* Reuse the request sesison within the environment. #2697
* Caches can be disabled by using the --no-cache option or setting
the PDM_NO_CACHE environment variable. #2702
* Switch to httpx.Client for HTTP requests, drop requests
dependency. #2709
* We have timemachine now! You can exclude packages published newer
than a certain date via pdm lock --exclude-newer=<date>, allowing
reproduction of resolutions regardless of new package releases.
[#2712]
* Add command pdm outdated to check the outdated packages and list
the latest versions. #2718
* When python.use_venv is on, always try to create a virtualenv when
using pdm use to switch the Python interpreter. #2720
* Support installing Pythons from python-build-standalone. Add
command group pdm python to manage Python installations. And pdm
use can automatically install the Python interpreter if it's not
found. #2721
* Supports custom distribution files path via -d/--dest option for
pdm publish. #2723
* Don't modify TOML tables that are not related to PDM. #2666
* Made --without imply --with :all. #2670
* Expand user path for venv.location and other path-like config
values. #2672
* Give a default version when it's missing in pyproject.toml when
parsing candidate's metadata. #2677
* Fix the issue that ANSI codes are shown in the output of pdm
- -help on Windows. #2678
* Don't show empty configuration sections in pdm config. #2683
* Document the difference between [tool.pdm.scripts] and
[project.scripts] #2121
* Remove the support of pth cache method. And symlink cache method
now behaves the same as symlink_individual cache method. #2660
* Remove pdm.models.environment module deprecated before. Also
remove the renamed members from pdm.environments. #2710
* Delete setup.cfg, move tool configurations under it to pyproject.toml #2703
* Wed Feb 28 2024 Markéta Machová <mmachova@suse.com>
- Update to 2.12.4
* Officially drop the support for Python 3.7.
* Allow exporting current project as editable dependency with pdm export.
* Use ==major.minor.* as default requires python for application projects.
* We now use the package-type field in the tool.pdm table to differentiate
between library and application projects.
* pdm lock now supports --update-reuse option to keep the pinned versions
in the lockfile if possible.
* Introduce a new lock strategy inherit_metadata to inherit and merge
markers from parent requirements. This is enabled by default when
creating a new lockfile.
* Allow excluding packages from the lockfile via tool.pdm.resolution.excludes
setting, the dependencies will also be skipped.
* Rename --no-lock option to --frozen-lockfile.
* Add --no-markers to export command to exclude markers from the output.
* Change the warning category emitted by deprecated_warning() to PDMDeprecationWarning.
* Rename the preferred_pins argument of provider classes to locked_candidates,
and deprecate the old name.
* Use env PDM_NO_EDITABLE as the default value for --no-editable option.
* Fri Jan 05 2024 Dirk Müller <dmueller@suse.com>
- remove unnecessary pdm-pep517
* Wed Dec 13 2023 Steve Kowalik <steven.kowalik@suse.com>
- Update to 2.10.4:
* Do not detect as requirements.txt if the file is a python script.
* Provide information of the original line when parsing requirement fails.
* Resolve `-r` requirements paths relative to the requirement file they
are specified in.
* Updating package now overwrites the old files instead of removing
before installing.
* Improve the error message when a specific package can't be found in the
lockfile.
* Add lock option to resolve direct dependencies to the minimal versions
available.
* Fix a bug that build requirements are installed into wrong location
when using `--venv` option.
* Officially supports python3.12 now.
* Fix an issue that `--no-lock` option doesn't work as expected. Also
support `--no-lock` option for `add`, `remove` and `update` commands.
* Use `findpython` to find pythons with the spec given by the user.
* Support passing filter patterns as positional arguments to `pdm list`
command. Add `--tree` as an alias and preferred name of `--graph` option.
* Switch to truststore by default.
* Allow `pdm run` to run a script with the relative or absolute path.
* Fix the compatibility issue with copier 8.0+.
* Makes `comarable_version("1.2.3+local1") == Version("1.2.3")`.
* Default behavior for pdm venv activate when shell detection fails.
* Handle parsing errors when converting from poetry-style metadata.
* Remove the legacy build backend `pdm-pep517`.
* Fix the comparison of the candidate keys in the lockfile.
* Don't update `pyproject.toml` if both `--unconstrained` and `--dry-run`
are passed to `pdm update`.
* Skip sources with empty URL when merging sources.
* Support target python with other architectures.
* Allow to change the python providers from the config.
* Fix a bug that egg-info directories are not removed completely, leading
to incomplete distribution.
* Skip distributions with wrong package meta information and duplicate path.
* Avoid mistakenly passing command-line arguments while testing.
* Fix a bug that lockfile groups are overwritten when running locking in
preceding step of `pdm install`.
* Tolerate and actually ignore the local versions in version specifiers.
* Fix a bug that shared cache cannot support overlapping namespace packages.
* Fix a bug that `pdm install --plugins` can't install self.
* Fix a cache collision between named requirements and url requirements.
* `pdm init` now accepts a template argument to initialize project from a
built-in or Git template.
* Replace the `DeprecationWarning` with `FutureWarning` for better exposure.
* Serve `install-pdm.py` and its checksum file on the docs site.
* Add support for using `truststore` as the SSL backend. This only works
on Python 3.10 or newer.
* Fix the breaking change by adding the functions back to the old location
with deprecation warnings.
* Fix the duplicate entries in the output of `pdm self list`.
* Disable hashes caching for local files.
* Populate the `url` field when converting requirements from a
Pipfile-style file requirement.
* Fix a bug that empty source tables in configuration files causes errors
when running pdm commands.
* Fix a resolution conflict caused by requested yanked version also in
other transitive dependencies.
* Thu Jun 22 2023 Andreas Schneider <asn@cryptomilk.org>
- Fix building with Python 3.9
* Mon Jun 19 2023 Dirk Müller <dmueller@suse.com>
- Update to version 2.7.4
* Fix the warning of extras not found due to extra names not normalized.
[#2006]
* Pop up a warning when the deprecated parser argument is passed to
BaseCommand.__init__() method. #2007
* Fix a bug that merging settings with AoTs causing a failure. #2011