cutlass icon indicating copy to clipboard operation
cutlass copied to clipboard

Enable setuptools_scm-based versioning and update build configuration

Open vshawrh opened this issue 1 month ago • 5 comments

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.0 to 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.

vshawrh avatar Nov 25 '25 22:11 vshawrh

This is a good move :+1:

EmilienM avatar Nov 26 '25 13:11 EmilienM

ping @brandon-yujie-sun

EmilienM avatar Nov 27 '25 13:11 EmilienM

Thank you for the proposed change. @zekunf-nv could you help review?

brandon-yujie-sun avatar Nov 28 '25 09:11 brandon-yujie-sun

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

zekunf-nv avatar Dec 02 '25 00:12 zekunf-nv

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: #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.

vshawrh avatar Dec 03 '25 13:12 vshawrh