# pdm-backend

> The build backend used by PDM that supports latest packaging standards

- **URL**: https://www.freshcrate.ai/projects/pdm-backend
- **Author**: pypi
- **Category**: Frameworks
- **Latest version**: `2.4.9` (2026-06-05)
- **License**: Unknown
- **Source**: https://github.com/pdm-project/pdm-backend
- **Homepage**: https://pypi.org/project/pdm-backend/
- **Language**: Python
- **GitHub**: 84 stars, 46 forks
- **Registry**: pypi (`pdm-backend`)
- **Tags**: `517`, `build`, `packaging`, `pep`, `pypi`

## Description

# PDM-Backend

The build backend used by [PDM] that supports latest packaging standards.

[![PyPI](https://img.shields.io/pypi/v/pdm-backend?label=PyPI)](https://pypi.org/project/pdm-backend)
[![Tests](https://github.com/pdm-project/pdm-backend/actions/workflows/ci.yml/badge.svg)](https://github.com/pdm-project/pdm-backend/actions/workflows/ci.yml)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/pdm-project/pdm-backend/main.svg)](https://results.pre-commit.ci/latest/github/pdm-project/pdm-backend/main)
[![pdm-managed](https://img.shields.io/endpoint?url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Fpdm-project%2F.github%2Fbadge.json)](https://pdm-project.org)

This is the backend for [PDM] projects that is fully-compatible with [PEP 517] spec, but you can also use it alone.
It reads the metadata of [PEP 621] format and coverts it to [Core metadata].

[pep 517]: https://www.python.org/dev/peps/pep-0517/
[pep 621]: https://www.python.org/dev/peps/pep-0621/
[Core metadata]: https://packaging.python.org/specifications/core-metadata/
[PDM]: https://pdm-project.org

## Links

- [Documentation](https://backend.pdm-project.org)
- [Changelog](https://github.com/pdm-project/pdm-backend/releases)
- [PDM Documentation][PDM]
- [PyPI](https://pypi.org/project/pdm-backend)
- [Discord](https://discord.gg/Phn8smztpv)

> **NOTE**
> This project has been renamed from `pdm-pep517` and the old project lives in the [legacy] branch.

[legacy]: https://github.com/pdm-project/pdm-backend/tree/legacy

## Sponsors

<p align="center">
    <a href="https://cdn.jsdelivr.net/gh/pdm-project/sponsors/sponsors.svg">
        <img src="https://cdn.jsdelivr.net/gh/pdm-project/sponsors/sponsors.svg"/>
    </a>
</p>

## License

This project is licensed under [MIT license](/LICENSE).

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `2.4.9` | 2026-06-05 | High | *No significant changes*  ##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/pdm-project/pdm-backend/compare/2.4.8...2.4.9) |
| `2.4.8` | 2026-04-21 | Low | Imported from PyPI (2.4.8) |
| `2.4.7` | 2026-01-29 | Low | ### &nbsp;&nbsp;&nbsp;🚀 Features  - Allow user to override wheel with multiple plat tags &nbsp;-&nbsp; by @trim21 in https://github.com/pdm-project/pdm-backend/issues/298 [<samp>(263a5)</samp>](https://github.com/pdm-project/pdm-backend/commit/263a598)  ### &nbsp;&nbsp;&nbsp;💻 Chores  - Switch dev-dependencies to dependency-groups &nbsp;-&nbsp; by @frostming [<samp>(9572d)</samp>](https://github.com/pdm-project/pdm-backend/commit/9572dc4)  ##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub] |
| `2.4.6` | 2025-11-11 | Low | ### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes  - Env for calling Python applications &nbsp;-&nbsp; by @paugier and @frostming in https://github.com/pdm-project/pdm-backend/issues/295 [<samp>(743fd)</samp>](https://github.com/pdm-project/pdm-backend/commit/743fd55) - No warning emitting in case of SCM error when fallback_version is used. Fixes #293 &nbsp;-&nbsp; by @frostming in https://github.com/pdm-project/pdm-backend/issues/293 [<samp>(e7dbb)</samp>](https://github.com/pdm-project/pdm-backend/commit/e7d |
| `2.4.5` | 2025-07-03 | Low | ### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes  - Override Git config core.abbrev when reading version from SCM &nbsp;-&nbsp; by @ziyao233 in https://github.com/pdm-project/pdm-backend/issues/286 [<samp>(60d94)</samp>](https://github.com/pdm-project/pdm-backend/commit/60d94c8) - Support a SOURCE_DATE_EPOCH prior to 1980 &nbsp;-&nbsp; by @branchvincent in https://github.com/pdm-project/pdm-backend/issues/288 [<samp>(daf1e)</samp>](https://github.com/pdm-project/pdm-backend/commit/daf1e07)  ##### &nbsp;&nbsp; |
| `2.4.4` | 2025-04-07 | Low | ### &nbsp;&nbsp;&nbsp;🚀 Features  - Improve diagnostic caused by git incorrectly parsing paths on MSYS2. &nbsp;-&nbsp; by @cr1901 in https://github.com/pdm-project/pdm-backend/issues/267 [<samp>(23807)</samp>](https://github.com/pdm-project/pdm-backend/commit/23807de) - Out-of-box stubs package support &nbsp;-&nbsp; by @trim21 in https://github.com/pdm-project/pdm-backend/issues/280 [<samp>(9a988)</samp>](https://github.com/pdm-project/pdm-backend/commit/9a9884a)  ### &nbsp;&nbsp;&nbsp;📝 Docum |
| `2.4.3` | 2024-10-23 | Low | ### &nbsp;&nbsp;&nbsp;💻 Chores  - Bump validate-pyproject to 0.9.0 &nbsp;-&nbsp; by @henryiii in https://github.com/pdm-project/pdm-backend/issues/265 [<samp>(23484)</samp>](https://github.com/pdm-project/pdm-backend/commit/2348482) - Update dependencies &nbsp;-&nbsp; by @frostming [<samp>(7f7dd)</samp>](https://github.com/pdm-project/pdm-backend/commit/7f7dd51) - Update badge &nbsp;-&nbsp; by @frostming [<samp>(6fdd4)</samp>](https://github.com/pdm-project/pdm-backend/commit/6fdd494) - Migrate |
| `2.4.2` | 2024-10-10 | Low | ### &nbsp;&nbsp;&nbsp;🚀 Features  - Use fallback_version for source = "call" &nbsp;-&nbsp; by @frostming in https://github.com/pdm-project/pdm-backend/issues/264 [<samp>(16562)</samp>](https://github.com/pdm-project/pdm-backend/commit/1656230)  ### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes  - Update to pyproject_metadata 0.9.0b5 &nbsp;-&nbsp; by @henryiii in https://github.com/pdm-project/pdm-backend/issues/263 [<samp>(67fb7)</samp>](https://github.com/pdm-project/pdm-backend/commit/67fb709)  ##### &nbsp; |
| `2.4.1` | 2024-09-21 | Low | ### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes  - Can't format requirements when converting to setup.py &nbsp;-&nbsp; by @frostming [<samp>(856d8)</samp>](https://github.com/pdm-project/pdm-backend/commit/856d849) - Update to pyproject_metadata 0.9.0b4 &nbsp;-&nbsp; by @frostming [<samp>(88c3f)</samp>](https://github.com/pdm-project/pdm-backend/commit/88c3f44)  ##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/pdm-project/pdm-backend/compare/2.4.0...2.4.1) |
| `2.4.0` | 2024-09-20 | Low | ### &nbsp;&nbsp;&nbsp;🚀 Features  - Accept context as the second argument to version_format function &nbsp;-&nbsp; by @frostming in https://github.com/pdm-project/pdm-backend/issues/258 [<samp>(708aa)</samp>](https://github.com/pdm-project/pdm-backend/commit/708aa3f) - Update pyproject-metadata to support latest version of PEP 639 &nbsp;-&nbsp; by @frostming in https://github.com/pdm-project/pdm-backend/issues/259 [<samp>(6c48d)</samp>](https://github.com/pdm-project/pdm-backend/commit/6c48d72) |

## Citation

- HTML: https://www.freshcrate.ai/projects/pdm-backend
- Markdown: https://www.freshcrate.ai/projects/pdm-backend.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/pdm-backend/deps

_Generated by freshcrate.ai. Indexes pypi releases for AI-agent ecosystem packages._
