pdm-build-locked
pdm-build-locked is a pdm plugin to add locked packages as additional optional dependency groups to the distribution metadata
What it is and what it does
pdm-build-locked is a plugin for the pdm package manager that modifies the build process to embed locked dependency information into a package's distribution metadata. Instead of publishing only the abstract dependency specifications from pyproject.toml, it adds the exact pinned versions from pdm's lock file as optional dependency groups, allowing downstream users to opt into reproducible installations with the same versions the publisher tested.
The plugin integrates directly with pdm's build system and requires only tomli as a runtime dependency. It targets modern Python versions (3.9 through 3.13) and is distributed as a wheel. The aging maintenance status suggests the plugin is stable but may not track rapid changes in pdm's plugin API closely.
Use it for:
- Publishing a library with a reproducible 'locked' extra that pins all transitive dependencies for users who want identical environments.
- Distributing an application package where end-users can install exact versions tested by the maintainer via an optional dependency group.
- Creating a pdm-managed project that needs to share its lock file's precision with downstream consumers without manual version management.
- Building packages where development and production dependency sets are both locked and published as separate optional groups.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A pdm plugin that includes locked dependency versions as optional dependency groups in package distribution metadata, enabling reproducible installations from published packages.
Yes, if you use pdm as your build system and want to publish locked dependency information alongside your package. The low install friction and permissive license make adoption straightforward. However, the aging maintenance status (257 days since last release) means you should verify compatibility with your pdm version and be prepared for potential drift if pdm's plugin API evolves significantly.
Install
pdm-build-locked on PyPI
pip
pip install pdm-build-lockeduv
uv add pdm-build-lockedpoetry
poetry add pdm-build-lockedInstalling pdm-build-locked
Before you install
Low friction install with a single runtime dependency (tomli). Maintenance status is aging—last release was 257 days ago—so expect slower response to issues or breaking changes in the pdm ecosystem.
License in practice
MIT License permits unrestricted use, modification, and distribution with minimal restrictions, making it safe for both open-source and commercial projects.
Quickstart
pip install pdm-build-locked
# In pyproject.toml, pdm-build-locked hooks into pdm's build process
# to add locked dependencies as optional groups during package build
Requires pdm as the project's build/package manager; this is a pdm plugin and will not function outside that ecosystem.
Verify before relying
- How locked dependencies are actually surfaced to end-users (as extras, environment markers, or another mechanism) is not detailed in the fact sheet.
- Whether the plugin works with all pdm versions or has specific version constraints beyond what the fact sheet indicates.
Package facts
| License | MIT License Copyright (c) 2023 sigma67 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — tomli |
| Maintenance | aging — 257 days since the last release |
| First released | |
| Downloads | 1,047,201/month — #4,449 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pdm_build_locked-0.3.7-py3-none-any.whl
Keywords: pdm, plugin
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pdmPDM is a modern Python package and dependency…
unclear · top 5,000 on PyPI
poetry-plugin-exportExports Poetry's locked dependency tree to…
permissive · top 1,000 on PyPI
pdm-backendA PEP 517-compliant build backend that reads…
permissive · top 5,000 on PyPI
apm-cliAPM is a dependency manager and configuration…
permissive · top 15,000 on PyPI
shadowcopyCopy files locked by other processes on Windows…
permissive · top 15,000 on PyPI
nox-poetryIntegrates Poetry's lock file into Nox…
permissive · top 15,000 on PyPI
redlock-pyImplements Redis-based distributed locks using…
permissive · top 15,000 on PyPI
uv-builduv-build is a build backend that integrates…
permissive · top 1,000 on PyPI
locketLocket provides file-based locks for…
permissive · top 1,000 on PyPI
pip-compile-multiCompiles multiple requirements files into…
permissive · top 15,000 on PyPI