diff --git a/scripts/build.py b/scripts/build.py index b4e9dd3..c56d242 100644 --- a/scripts/build.py +++ b/scripts/build.py @@ -1,7 +1,9 @@ """ This is a simple script to call pdm-pep517's backend apis to make release artifacts. """ +import argparse import logging +import os import pdm.backend as api @@ -13,9 +15,19 @@ def main() -> None: - api.build_sdist("dist") - api.build_wheel("dist") - api.build_editable("dist") + parser = argparse.ArgumentParser() + parser.add_argument("--no-wheel", action="store_false", dest="wheel") + parser.add_argument("--no-sdist", action="store_false", dest="sdist") + parser.add_argument("--no-editable", action="store_false", dest="editable") + parser.add_argument("path", nargs="?", default=".") + args = parser.parse_args() + os.chdir(args.path) + if args.sdist: + api.build_sdist("dist") + if args.wheel: + api.build_wheel("dist") + if args.editable: + api.build_editable("dist") if __name__ == "__main__": diff --git a/src/pdm/backend/hooks/version/__init__.py b/src/pdm/backend/hooks/version/__init__.py index 65e7bc9..899c197 100644 --- a/src/pdm/backend/hooks/version/__init__.py +++ b/src/pdm/backend/hooks/version/__init__.py @@ -108,7 +108,11 @@ def _write_version( write_template: str = "{}\n", ) -> None: """Write the resolved version to the file.""" - if write_to is not None and context.target != "sdist": + if write_to is not None: + if context.target == "sdist" and context.config.build_config.package_dir: + write_to = os.path.join( + context.config.build_config.package_dir, write_to + ) target = context.build_dir / write_to if not target.parent.exists(): target.parent.mkdir(0o700, parents=True)