Skip to content

Releases: pdm-project/pdm

v2.13.0

27 Mar 04:30
c97bc0c
Compare
Choose a tag to compare

Features & Improvements

  • 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

Bug Fixes

  • 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

Documentation

  • Document the difference between [tool.pdm.scripts] and [project.scripts] #2121

Removals and Deprecations

  • 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

Miscellany

  • Delete setup.cfg, move tool configurations under it to pyproject.toml #2703

v2.12.4

26 Feb 02:22
429df86
Compare
Choose a tag to compare

Features & Improvements

  • Use env PDM_NO_EDITABLE as the default value for --no-editable option. #2613

Bug Fixes

  • Reset project.environment when importing from setup.py, to fix resolution error. #2608
  • Do not fetch package hashes when --frozen-lockfile is passed. #2630
  • Make sure non-venv interpreters are used by venv creator. #2631
  • Don't cause a hard failure if the local directory doesn't exist. #2650

Documentation

  • Fix the default value for negative CLI flags. #2642
  • Auto-gen configuration reference documentation. #2645

v2.12.3

01 Feb 05:03
07918b8
Compare
Choose a tag to compare

Bug Fixes

  • fix the package-type fixer won't update toml properly for "Nested Section Ordering Issue in TOML". #2578
  • Unable to force override a package if the package is required with extras. #2586
  • Failed to clone template repository if the URL contains the rev part. #2597
  • Handle legacy specifiers when converting from poetry project. #2599

Documentation

  • Fix typo in template docs #2588

v2.12.2

20 Jan 22:57
01f6a8d
Compare
Choose a tag to compare

Bug Fixes

  • Fix the auto fixer for package-type. #2564
  • Fix the wrong installation destination for header files when installing build requirements. #2573
  • Install header files into package namespace under include directory. #2574

v2.12.1

17 Jan 05:22
36a0e2b
Compare
Choose a tag to compare

Bug Fixes

  • Hotfix: missing identifier attribute for package type fixer. #2564

v2.12.0

17 Jan 03:09
03804cf
Compare
Choose a tag to compare

Features & Improvements

  • Allow excluding packages from the lockfile via tool.pdm.resolution.excludes setting, the dependencies will also be skipped. #1316
  • Rename --no-lock option to --frozen-lockfile. #2496
  • Add --no-hashes as the recommended option name in favor of --without-hashes for pdm export command. #2497
  • Add --no-markers to export command to exclude markers from the output. #2497
  • Allow initializing a project without extra project files, with a new builtin template "minimal". Run it with pdm init minimal. #2543
  • Change the warning category emitted by deprecated_warning() to PDMDeprecationWarning. #2547
  • Prereleases will be allowed if a prerelease version is pinned in the lockfile. This can be disabled by passing --stable option. #2552
  • Change tracked_names argument to keyword-only. Move allow_prereleases setting to tool.pdm.resolution table. #2552
  • Rename the preferred_pins argument of provider classes to locked_candidates, and deprecate the old name. #2552
  • Rename the package-type field under tool.pdm settings table to distribution to make it more clear. #2564

Bug Fixes

  • tool.pdm.resolution settings won't be honored when installing dependencies into the build environment. #1316
  • Fixed pdm list output containing full license text in some cases #2538
  • Fix the environment variable substitution for cmd scripts. #2542
  • Allow normal extension modules in wheel tags when the python is debug build. #2548
  • Don't use pypi.org when pypi.url is set. #2560

Removals and Deprecations

  • Remove deprecated methods from Project. Remove deprecated helper functions from actions.py. #2547

v2.11.2

02 Jan 07:32
e9ee590
Compare
Choose a tag to compare

Bug Fixes

  • Fix a KeyError raised when resolving a URL dependency without package name given. #2488
  • pdm update --update-eager can hit InconsistentCandidate error when dependency is included both through default dependencies and extra. #2495
  • pdm install should not warn when overwriting its own symlinks on install/update. #2502
  • Fix a bug that candidates without local version are rejected when the local version is pinned. #2507

Documentation

  • Add maturin as a compatible build backend in the docs. #2510

v2.11.1

14 Dec 11:07
126122f
Compare
Choose a tag to compare

Bug Fixes

  • Update candidate names before resolving markers, to fix a KeyError when the requirement is not named. #2488
  • Fix a KeyError when resolving packages that have parents that are no longer needed. #2489

v2.11.0

14 Dec 00:44
90f095e
Compare
Choose a tag to compare

Features & Improvements

  • Officially drop the support for Python 3.7.
  • Allow exporting current project as editable dependency with pdm export. #1910
  • Improve the lockfile compatibility checking by using 3-digit version numbers. This can distinguish forward-compatibility and backward-compatibility. #2164
  • Add --skip-existing to pdm publish to ignore the uploading error if the package already exists. #2362
  • Use ==major.minor.* as default requires python for application projects. #2382
  • We now use the package-type field in the tool.pdm table to differentiate between library and application projects. #2394
  • Add support for {pdm} placeholder in script definitions to call the same PDM entrypoint #2408
  • When exporting requirements, record the environment markers from all parents for each requirement. This allows the exported requirements to work on different platforms and Python versions. #2418
  • pdm lock now supports --update-reuse option to keep the pinned versions in the lockfile if possible. #2419
  • 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. #2421
  • New cache methods: symlink_individual for creating a symlink for each individual package file and hardlink for creating hardlinks. #2425
  • Add "pdm sync" pre-commit hook #2474
  • New update strategy: reuse-installed. When this strategy is enabled, PDM will try to reuse the versions already installed in the environment, even if the package names are given in the command line following add or update. This strategy is supported by add, update and lock commands. #2479
  • Show subcommand's help info when passing unrecognized arguments. #2480
  • add PDM_CACHE_DIR environment variable to configure cache directory location. #2485

Bug Fixes

  • Use the same order of Python interpreters as interactive mode in pdm init -n. #2436
  • pdm init now implies --lib if --backend is passed. #2437
  • Fix a bug that link collection ignores package-index-binding. #2442
  • Fix the wrong installation candidates for different architectures on Windows. #2464
  • Fix installing PEP 561 stub-only packages with install.cache_method = "symlink". #2466
  • Fix a KeyError raised by pdm update --unconstrained when the project itself is listed as a dependency. #2483

v2.10.4

24 Nov 01:43
015411d
Compare
Choose a tag to compare

Bug Fixes

  • Do not detect as requirements.txt if the file is a python script. #2416
  • Provide information of the original line when parsing requirement fails. #2417
  • Resolve -r requirements paths relative to the requirement file they are specified in #2422
  • Updating package now overwrites the old files instead of removing before installing. #2423