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.12.4*

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

Download URLs

Version SHA256 Size (KB)
2.12.4 d707425ac0433a1ef7cf8db3a8c214d346eb55189a93f2b9a901eb682a0e572c 23057
2.12.3 761e64544d0f25911a004ad74b96bd7cfc4f6e2f748e884966708cd0be7ff2bc 23058
2.12.2 35bbea2b19a085d9ecfae609a51fad9eeb3939ec5e76533e3b4d88c25542899d 23057
2.12.1 3b9a098300cda2bd3737a7ead32467cf5941c289dc896b748963980b04b92246 23056
2.12.0 52bab6f1de64833153e873348aef9dbf9ff8f1d2313c528aa17aeecf6d946545 23058
2.11.2 b0048b141e43a0dcccbe147dde6081f153877e034cf723a9d820c57b74181e90 23056
2.11.1 7f5dfe4e38eb49ba7108c3e9d838dc96d4116ebeedbc1966bb850fdf4df61798 23056
2.11.0 48b383b37ae7cd6ac7b037c57654d3a743e3548e3f9f7a3583f14c1ea4ecfbb2 23054
2.10.4 e6c0e936eb997bd56db42e9b299637da3d2878bc1cc76f616146f56d25822e71 23041
2.9.3 e34d2da28719467c59dd959cc20e53f9ffb54d58b3074a52cd45a099d9f42880 22336

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
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

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