Enable setuptools_scm-based versioning and update build configuration
Summary
This PR updates the build configuration to use setuptools_scm for automated
version management and ensures proper inclusion of package data for the CUTLASS
DSL components.
What Changed
- Added
setuptools_scm>=8.0to the[build-system]requirements. - Configured
[tool.setuptools_scm]with the CUTLASS project root (../..).
Motivation
Building nvidia-cutlass-dsl with dynamic versioning currently produces a wheel with version 0.0.0 because the required VERSION.EDITABLE file is missing. This causes incorrect versioning for any wheel built from the repository.
Using setuptools_scm provides consistent, tag-driven versioning across the project
and aligns the DSL build with the broader CUTLASS packaging strategy.
It also improves build reproducibility and reduces manual version maintenance.
Fixes: https://github.com/NVIDIA/cutlass/issues/2814
Additional Notes
No changes to runtime behavior. Build-only modification.
This is a good move :+1:
ping @brandon-yujie-sun
Thank you for the proposed change. @zekunf-nv could you help review?
Thanks @brandon-yujie-sun for adding me.
Re @vshawrh : python/CuTeDSL/pyproject.toml by itself is not a complete recipe to build a desired wheel. And the versioning of CuTeDSL has its own rules which is not determined by the project root.
Its usage is limited to the editable install workflow described in: https://github.com/NVIDIA/cutlass/issues/2762#issuecomment-3535046474
Thanks @brandon-yujie-sun for adding me.
Re @vshawrh :
python/CuTeDSL/pyproject.tomlby itself is not a complete recipe to build a desired wheel. And the versioning of CuTeDSL has its own rules which is not determined by the project root.Its usage is limited to the editable install workflow described in: #2762 (comment)
Thanks for the feedback — By using setuptools-scm we can derive the package version automatically from Git metadata (tags/commits), instead of manually bumping a version file on each release. That reduces human error and makes versioning less burdensome. Setuptools SCM
And we faced this issue as well https://github.com/NVIDIA/cutlass/issues/2829.