Skip to content

pdm

Modern Python package and dependency manager supporting the latest PEP standards

PDM is meant to be a next generation Python package management tool. It was originally built for personal use. If you feel you are going well with Pipenv or Poetry and don't want to introduce another package manager, just stick to it. But if you are missing something that is not present in those tools, you can probably find some goodness in pdm.

Highlights of features:

  • Simple and fast dependency resolver, mainly for large binary distributions.
  • A PEP 517 build backend.
  • PEP 621 project metadata.
  • Flexible and powerful plug-in system.
  • Versatile user scripts.
  • Opt-in centralized installation cache like pnpm.

dev

https://pdm.fming.dev/

amd64

Installation

1. Add WakeMeOps repository

curl -sSL https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository | sudo bash

2. Install pdm

sudo apt install pdm

Snippets

FROM wakemeops/minideb:bullseye

RUN install_packages \
    pdm=2.15.1*

USER 1001
- name: Install dependencies
  uses: upciti/wakemeops-action@v1
  with:
    packages: |
      pdm=2.15.1*

Download URLs

Version SHA256 Size (KB)
2.15.1 fb4969b2dc10da5611b6b0dfac3b33fb7d9c0537d3c5b7d447b673e1661106e7 31061
2.15.0 ba5f460941c6be1c8180514c6ee25b3168d302a9bfec8d67454bd6e7b2524ad9 31056
2.14.0 0a9cc2ef232354a23b6ce705937fbb934444cb02a3542b5480ea8e2b16088a23 31054
2.13.3 85d4d8b7bc844657dbed2c83aeafb0f7036cc03b17cce7f396468f52f06e34d2 31072
2.13.2 d092c6d2ee3d169a60d5d4189a8ac8ff48b70ba618778500553e65f2fbcf3058 31069
2.13.1 20a5367cf08cac98f4edb28804cf8bd159341b0c6b5c1eb8591a3e8df0c4a21e 31078
2.13.0 a6df14a9384a4951fa12220fb36a614180bf5c66918704e08678295c2a3bae1e 23824
2.12.4 d707425ac0433a1ef7cf8db3a8c214d346eb55189a93f2b9a901eb682a0e572c 23057
2.12.3 761e64544d0f25911a004ad74b96bd7cfc4f6e2f748e884966708cd0be7ff2bc 23058
2.12.2 35bbea2b19a085d9ecfae609a51fad9eeb3939ec5e76533e3b4d88c25542899d 23057

Blueprints

Debian packages listed on this page are generated from op2deb YAML blueprints. Blueprints for pdm are versioned here.

Click here to see pdm ops2deb blueprints
https://github.com/upciti/wakemeops/blob/main/blueprints/dev/pdm/ops2deb.yml
name: pdm
matrix:
  versions:
    - 2.8.2
    - 2.9.3
    - 2.10.4
    - 2.11.0
    - 2.11.1
    - 2.11.2
    - 2.12.0
    - 2.12.1
    - 2.12.2
    - 2.12.3
    - 2.12.4
    - 2.13.0
    - 2.13.1
    - 2.13.2
    - 2.13.3
    - 2.14.0
    - 2.15.0
    - 2.15.1
homepage: https://pdm.fming.dev/
summary: modern Python package and dependency manager supporting the latest PEP standards
description: |-
  PDM is meant to be a next generation Python package management tool. It was
  originally built for personal use. If you feel you are going well with Pipenv
  or Poetry and don't want to introduce another package manager, just stick to
  it. But if you are missing something that is not present in those tools, you
  can probably find some goodness in pdm.

  Highlights of features:

  * Simple and fast dependency resolver, mainly for large binary distributions.
  * A PEP 517 build backend.
  * PEP 621 project metadata.
  * Flexible and powerful plug-in system.
  * Versatile user scripts.
  * Opt-in centralized installation cache like pnpm.
depends:
  - python3.11-build-standalone
fetch: https://github.com/pdm-project/pdm/archive/refs/tags/{{version}}.tar.gz
install:
  - content: |-
      #!/usr/lib/pdm/bin/python3
      import os
      import sys
      from pdm.core import main
      if __name__ == '__main__':
          sys.exit(main())
    path: /usr/bin/pdm
  - content: |-
      #!/bin/sh
      set -e
      find /usr/lib/pdm -name '*.py' -exec /usr/lib/pdm/bin/python3 -m py_compile {} +
    path: debian/postinst
  - content: |-
      #!/bin/sh
      set -e
      find /usr/lib/pdm -name '__pycache__' -exec rm -r {} +
    path: debian/prerm
script:
  - install_packages python3.11-build-standalone
  - |-
    # install bootstrap pdm
    /usr/lib/python-build-standalone/3.11/bin/python3 -m venv bootstrap
    . bootstrap/bin/activate
    pip install pdm=={{version}}
  - |-
    # install pdm with pdm own pdm.lock
    /usr/lib/python-build-standalone/3.11/bin/python3 -m venv pdm-{{version}}/.venv
    sed -i 's/dynamic = \["version"\]/version = "{{version}}"/' pdm-{{version}}/pyproject.toml
    bootstrap/bin/pdm install -p pdm-{{version}} --no-editable
    mv pdm-{{version}}/.venv {{src}}/usr/lib/pdm

The blueprint fetch keyword contains a URL template pointing to pdm releases. Downloaded files are locked in a lockfile versioned here.

Click here to see pdm release hashes
https://github.com/upciti/wakemeops/blob/main/blueprints/dev/pdm/ops2deb.lock.yml
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.10.4.tar.gz
  sha256: 47f4b645720331f6ff58782f5ffbfcac0aa4e767dfecb2f13c223a0cf33f4428
  timestamp: 2023-12-20 09:27:43+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.11.0.tar.gz
  sha256: 7e130af250861f6d957c107da8aa71c56b488ef0cbf90193e0607237ca9f2230
  timestamp: 2023-12-20 09:27:43+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.11.1.tar.gz
  sha256: 6ca33033d892cd19ac774c4f4daeeb109da4ecdcd2e0cd98b36a9cd0cfd75fec
  timestamp: 2023-12-20 09:27:43+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.8.2.tar.gz
  sha256: c10b6d28591fbd060cdb813098739e8272be480710338e980a27ec8827d6af28
  timestamp: 2023-12-20 09:27:43+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.9.3.tar.gz
  sha256: 8e19d537f780c067e8291ef563429426b9527212580a7395ed12870b1e1d2fe1
  timestamp: 2023-12-20 09:27:43+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.11.2.tar.gz
  sha256: 08c7a1e8a818da6283a8faa5fe9367e9e5a95affc5d0d894dff6128b8fe7781e
  timestamp: 2024-01-02 09:17:10+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.12.0.tar.gz
  sha256: 74f448ededc0cc71d23088fc476f3d2c5346d13d0bfb73a235b5a6e22711db7a
  timestamp: 2024-01-17 03:19:25+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.12.1.tar.gz
  sha256: 2601f9e35b6e3143dafee767dbf56f00b6d31b2d2368c3d1c17d5de2d7fa7083
  timestamp: 2024-01-17 06:22:52+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.12.2.tar.gz
  sha256: dab466b46d95d2c2a544471dd7feda30c086acd8a43168bc40a1e6a03ec88517
  timestamp: 2024-01-21 01:23:25+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.12.3.tar.gz
  sha256: 95994b39db1666afefe2c95d47ddc264e2abaa57cb32bca90e5455a565c93a59
  timestamp: 2024-02-04 15:05:42+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.12.4.tar.gz
  sha256: 3d1c27fed3bce2dd56c3baabdbe8b7c5e4622cff0a3390af930ad1e1750b46b1
  timestamp: 2024-02-26 03:06:15+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.13.0.tar.gz
  sha256: ebf320d79ab73292924ecdbcf3f153e3b2d755f4134fe641e386e81e1d652583
  timestamp: 2024-03-27 06:06:30+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.13.1.tar.gz
  sha256: 7597e24d7e896f1a92aa479d5b12b333b5a68b492663e42f17adb09f4de50cad
  timestamp: 2024-03-29 12:08:21+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.13.2.tar.gz
  sha256: 2615bc2def05111059af191f9c63d4853addcdebf9e0b44885869cd47b446222
  timestamp: 2024-03-30 12:06:58+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.13.3.tar.gz
  sha256: fef20178ae809c36379464946e97f069b83ce41997bf43edee34141acdf18468
  timestamp: 2024-04-08 12:08:11+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.14.0.tar.gz
  sha256: 7d82b6f3f451362696962851721f47c58074491895fd1a84eda3ff528e159641
  timestamp: 2024-04-12 09:06:06+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.15.0.tar.gz
  sha256: ee4c58980fa0ebf7433201b4248ccaf891aa07ca5b29a1f26a4bd83afb33e6b4
  timestamp: 2024-04-19 12:08:20+00:00
- url: https://github.com/pdm-project/pdm/archive/refs/tags/2.15.1.tar.gz
  sha256: bdf5a0754bfce5936dc66cb692015d12da03eaecc43bd58818da0ca461892d5b
  timestamp: 2024-04-25 03:06:22+00:00

Badge

WakeMeOps

[![WakeMeOps](https://docs.wakemeops.com/badges/pdm.svg)](https://docs.wakemeops.com/packages/pdm)
<a href="https://docs.wakemeops.com/packages/pdm">
  <img src="https://docs.wakemeops.com/badges/pdm.svg"/>
</a>
.. image:: https://docs.wakemeops.com/badges/pdm.svg
:target: https://docs.wakemeops.com/packages/pdm