- Fix a bug of editable install not reading
run-setuptools = false
config. #107 - Put the long description in the body as specified by Metadata Version 2.1 #109
- Overwrite the existing files in the custom build stage of
WheelBuilder
. #114
- Ensure the license is a file. Also add
LICENSES/*
to the default search patterns, as specified by REUSE spec. #105 - Throw a better error message when a malformed requirement is being parsed. #106
- Fix a compatibility issue that
run_setuptools
defaults to True for old build configuration.
No significant changes.
- Emit
UserWarning
for deprecated settings.
- Allow writing dynamic version from
scm
source to a file. #94 - The dynamic version table fields are renamed:
{from = ...}
to{source = "file", path = ...}
and{use_scm = true}
to{source = "scm"}
. #95 - Support custom build script, a script containing a function named
build
that takes (src, dst) as the arguments. Whenrun-setuptools
istrue
, thebuild
function will be called in a generatedsetup.py
file, with the setup parameters as the only argument. #98
includes
,excludes
,source-includes
,package-dir
,is-purelib
,editable-backend
are moved to[tool.pdm.build]
table.build
field is renamed tosetup-script
under[tool.pdm.build]
table. #96
No significant changes.
- Fix a crash issue when
dependencies
field is missing from the project metadata. #92 - Leave
License
andSummary
fields out from the generated core metadata if they are not given. #93
- Allow overriding SCM version with env var. This is useful to build from a source tree without SCM. #89
- Fallback the README content type to text/plain if no suffix is given. #85
- Write license files when preparing metadata for wheels. #86
- Do not emit deprecation warnings for
license
field until PEP 639 is accepted.
- Warn about
editable
not being available for PEP 420 namespace packages. #79
- Construct RECORD file using
csv.writer
to ensure correct quoting on path for each entry. #80
- Don't validate license text for PEP 621
license
field for now. #78
- Implement PEP 639: Improving License Clarity in Project Metadata #76
- Mandates the PEP 621 metadata and raise an error if invalid. #76
- Change the default
editable-backend
topath
untileditables
backend is stable.
- Fix a bug that version can't be parsed if it is followed by a comment. #75
- Drop the support for Python < 3.7. #72
- Show meaningful error message when version isn't found in the specified file. #73
- Preserve the file mode when building a wheel, also correct the datetime. #69
- Use alternatives to replace the deprecated usage of
distutils
. #69
- Fix a bug that the proxy module of
editables
backend shadows the extension module with the same name. #67
- Add a tool setting
is-purelib
to override the default behavior of determining whether a package is a pure Python library. #64
- Fix a bug that version is not frozen in sdist build. #63
- Fix a bug that extra dependencies(such as
editables
) are not written inprepare_metadata_for_build_editable
hook. #62
No significant changes.
No significant changes.
- To be compliant with PEP 621,
version
is not allowed in the[project]
table when it is dynamic. Warning users against that usage and suggest to move to the[tool.pdm]
table.classifiers
field no longer supports dynamic filling. #53
- Fix the editable wheel building to exclude files inside a package. #45
- Update vendors:
- Update
packaging
from20.4
to21.0
. - Update
cerberus
from1.3.2
to1.3.4
. #52
- Update
- Fix the editable wheel building to exclude files inside a package. #45
- Update vendors:
- Update
packaging
from20.4
to21.0
. - Update
cerberus
from1.3.2
to1.3.4
. #52
- Update
No significant changes.
- Allow changing the backend used to generate editable wheels. Currently two are supported: editables(default) and path. #43
- Provide a compatibility layer for setuptools to support PEP 660. The backend is exposed as
pdm.pep517.setuptools
. #41
- Convert "*" to empty string for
requires-python
metadata. #40
- Retrieve all Python versions from python.org for classifiers generation. #29
- Fix pure Py27 package build wheel failure. #28
- Support recursive glob pattern
**
inincludes
,excludes
andsource-includes
. #20 - Support passing
config_settings
to the backend APIs. #23
- Rewrite the
_merge_globs
function to be clearer and more robust. #25 - Add type hints to the codebase. #27
- Fix files finding error if the glob result of excludes containing directory. #17
- Update
toml
from0.10.1
to0.10.2
. #19
- Fix the pyproject.toml file in sdist builds.
- Support sdist-only include files list. Include
tests
folder for sdist build if none is given. #16 - Exclude the files specified by
source-includes
in non-sdist builds. #16
- Temporily disable the strict validation.
- Move the fields that are not specified by PEP 621 to
[tool.pdm]
table. #14 - Validate PEP 621 metadata. #15
- Remove the external dependency of
importlib-metadata
. #13
- Fix a parsing error on reStructuredText description due to missing indentation for empty lines. #11
- Fix the WHEEL writer to report the correct wheel generator. #12
- Fix a bug that platform-specific tags cannot be generated correctly.
- Fix a bug that python modules under
src
directory without a parent package are not included in the built results norpy_modules
key insetup.py
. #9
- Don't include redundant
Homepage
in the core metadata.
- Rewrite the import statements in vendored packages to avoid namespace conflicts.
- Automatically exclude
tests
directory from the build results when not specified.
- Fix a bug that default settings include many misc directories that are not Python packages.
- Fix a bug that
__pypackages__
gets included in the build files unexpectedly.
- Support PEP 420 implicit namespace packages #7
- Autogen trove classifiers based on
requires-python
andlicense
. #6
- Auto convert legacy metadata format for backward compatibility. #5
- Fix setup.py encoding issue. #4