setuptools-scm
pyproject.toml
[build-system] requires = ["scikit-build-core"] build-backend = "scikit_build_core.build" [project] name = "mypackage" dynamic = ["version"] [[tool.dynamic-metadata]] provider = "scikit_build_core.metadata.setuptools_scm" [tool.setuptools_scm]
[project] name = "mypackage" dynamic = ["version", "dependencies"] [[tool.dynamic-metadata]] provider = "scikit_build_core.metadata.setuptools_scm" [[tool.dynamic-metadata]] provider = "scikit_build_core.metadata.template" field = "dependencies" result = ["mypackage-core == {project[version]}"] [tool.setuptools_scm]
[project] name = "mypackage" dynamic = ["dependencies"] [[tool.dynamic-metadata]] provider = "dynamic_metadata.pin_installed" packages = ["torch==x.x.*"]
[project] name = "mypackage" dynamic = ["version"] [[tool.dynamic-metadata]] provider = {path = "helpers/plugins", module = "my_plugin"}
def dynamic_metadata( settings: Mapping[str, Any], project: Mapping[str, Any], ) -> dict[str, Any]: return {"version": "1.2.3"}
scikit-build-core