Access PDM changelog updates through our uniform API. Same JSON structure across all sources — no adapter-specific parsing needed.
GET https://watchchangelog.com/api/v1/entries?source=pdm.releases{
"source": "pdm.releases",
"vendor": "PDM",
"id": "tag:github.com,2008:Repository/230369286/2.28.2",
"published_at": "2026-08-18T02:24:28.000Z",
"title": "v2.28.2",
"url": "https://github.com/pdm-project/pdm/releases/tag/2.28.2",
"summary": "Bug Fixes Keep environment inspection working for Python 3.9 targets when PDM uses dep-logic 0.7 or newer. ( #3838 ) Cache the update check timestamp even when the version lookup fails, so that pdm no longer appears to hang on every command when PyPI is unreachable. ( #3840 ) Don't crash with an IndexError when listing scripts and one of them is blank. A blank script is now listed as <BLANK_SCRIPT> . ( #3842 ) Keep the whole template URL when pdm new is given an ssh:// or credentialed Git URL, instead of truncating it at the userinfo @ . ( #3843 ) Strip comments preceded by any whitespace, not only a plain space, when importing a requirements.txt file. ( #3844 ) Match --trusted-host on host and port when importing a requirements.txt file, and keep the port when exporting one. ( #3845 ) Expand a ~ prefix in the venv.location config so pdm venv list/remove/activate/purge find virtualenvs created under it. ( #3847 ) Convert a Poetry caret constraint on a 0.x version to the upper bound Poetry documents, so ^0.2.3 becomes <0.3.0 and ^0.0.3 becomes <0.0.4 instead of <1.0.0 . ( #3848 ) Fill in a placeholder project.name and project.version for the pyproject.toml generated for uv , so pdm lock / pdm install work with use_uv on a project that declares neither. ( #3849 ) Resolve nested requirement paths relative to remote requirements file URLs. ( #3850 )",
"tags": [
"PDM",
"pdm.releases",
"package-manager",
"python",
"pep582"
]
}Sign up to access the full changelog API. All public sources are free — no credit card required.
Sign Up Free →+2 more
+2 more
+2 more
+2 more
+2 more
+2 more