Skip to content

Setuptools-scm 0.9.3 breaks a number of distributions #1191

@potiuk

Description

@potiuk

The 0.9. released about an hour ago breaks a number of distributions built from sdist. Detected by "canary" build of Apache airflow:

https://github.com/apache/airflow/actions/runs/16759485885/job/47451369503

For example: lazy-object-proxy:

  × Failed to build `lazy-object-proxy==1.7.1`
    ├─▶ The build backend returned an error
    ╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit
        status: 1)
  
        [stderr]
        toml section missing 'pyproject.toml does not contain a
        tool.setuptools_scm section'
        Traceback (most recent call last):
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools_scm/_integration/pyproject_reading.py",
        line 71, in read_pyproject
            section = defn.get("tool", {})[tool_name]
                      ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
        KeyError: 'setuptools_scm'
        toml section missing 'pyproject.toml does not contain a
        tool.setuptools_scm section'
        Traceback (most recent call last):
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools_scm/_integration/pyproject_reading.py",
        line 71, in read_pyproject
            section = defn.get("tool", {})[tool_name]
                      ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
        KeyError: 'setuptools_scm'
        Traceback (most recent call last):
          File "<string>", line 11, in <module>
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/build_meta.py",
        line 432, in build_wheel
            return _build(['bdist_wheel'])
                   ^^^^^^^^^^^^^^^^^^^^^^^
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/build_meta.py",
        line 423, in _build
            return self._build_with_temp_dir(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/build_meta.py",
        line 404, in _build_with_temp_dir
            self.run_setup()
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/build_meta.py",
        line 512, in run_setup
            super().run_setup(setup_script=setup_script)
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/build_meta.py",
        line 317, in run_setup
            exec(code, locals())
          File "<string>", line 73, in <module>
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/__init__.py",
        line 115, in setup
            return distutils.core.setup(**attrs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/_distutils/core.py",
        line 148, in setup
            _setup_distribution = dist = klass(attrs)
                                         ^^^^^^^^^^^^
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/dist.py",
        line 321, in __init__
            _Distribution.__init__(self, dist_attrs)
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/_distutils/dist.py",
        line 309, in __init__
            self.finalize_options()
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/dist.py",
        line 784, in finalize_options
            ep(self)
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools/dist.py",
        line 804, in _finalize_setup_keywords
            ep.load()(self, ep.name, value)
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools_scm/_integration/setuptools.py",
        line 131, in version_keyword
            config = _config.Configuration.from_file(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools_scm/_config.py",
        line 296, in from_file
            pyproject_data = _read_pyproject(
                             ^^^^^^^^^^^^^^^^
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools_scm/_integration/pyproject_reading.py",
        line 95, in read_pyproject
            pyproject_data.verify_dynamic_version_when_required()
          File
        "/root/.cache/uv/builds-v0/.tmpX6p75h/lib/python3.12/site-packages/setuptools_scm/_integration/pyproject_reading.py",
        line 38, in verify_dynamic_version_when_required
            raise ValueError(
        ValueError: pyproject.toml: setuptools-scm is present in
        [build-system].requires but dynamic=['version'] is not set in
        [project]. Either add dynamic=['version'] to [project] or add a
        [tool.setuptools_scm] section.
  
        hint: This usually indicates a problem with the package or the build
        environment.
    help: `lazy-object-proxy` (v1.7.1) was included because
          `apache-airflow-providers-mysql:dev` (v6.3.3) depends on
          `apache-airflow-task-sdk` which depends on `apache-airflow-core`
          (v3.1.0) which depends on `lazy-object-proxy`

or xmlsec:

 #47 234.4   × Failed to build `xmlsec==1.3.16`
  #47 234.4   ├─▶ The build backend returned an error
  #47 234.4   ╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit
  #47 234.4       status: 1)
  #47 234.4 
  #47 234.4       [stderr]
  #47 234.4       toml section missing 'pyproject.toml does not contain a
  #47 234.4       tool.setuptools_scm section'
  #47 234.4       Traceback (most recent call last):
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools_scm/_integration/pyproject_reading.py",
  #47 234.4       line 71, in read_pyproject
  #47 234.4           section = defn.get("tool", {})[tool_name]
  #47 234.4       KeyError: 'setuptools_scm'
  #47 234.4       Traceback (most recent call last):
  #47 234.4         File "<string>", line 11, in <module>
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/build_meta.py",
  #47 234.4       line 432, in build_wheel
  #47 234.4           return _build(['bdist_wheel'])
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/build_meta.py",
  #47 234.4       line 423, in _build
  #47 234.4           return self._build_with_temp_dir(
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/build_meta.py",
  #47 234.4       line 404, in _build_with_temp_dir
  #47 234.4           self.run_setup()
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/build_meta.py",
  #47 234.4       line 512, in run_setup
  #47 234.4           super().run_setup(setup_script=setup_script)
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/build_meta.py",
  #47 234.4       line 317, in run_setup
  #47 234.4           exec(code, locals())
  #47 234.4         File "<string>", line 591, in <module>
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/__init__.py",
  #47 234.4       line 115, in setup
  #47 234.4           return distutils.core.setup(**attrs)
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/_distutils/core.py",
  #47 234.4       line 148, in setup
  #47 234.4           _setup_distribution = dist = klass(attrs)
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/dist.py",
  #47 234.4       line 321, in __init__
  #47 234.4           _Distribution.__init__(self, dist_attrs)
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/_distutils/dist.py",
  #47 234.4       line 309, in __init__
  #47 234.4           self.finalize_options()
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/dist.py",
  #47 234.4       line 784, in finalize_options
  #47 234.4           ep(self)
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools/dist.py",
  #47 234.4       line 804, in _finalize_setup_keywords
  #47 234.4           ep.load()(self, ep.name, value)
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools_scm/_integration/setuptools.py",
  #47 234.4       line 131, in version_keyword
  #47 234.4           config = _config.Configuration.from_file(
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools_scm/_config.py",
  #47 234.4       line 296, in from_file
  #47 234.4           pyproject_data = _read_pyproject(
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools_scm/_integration/pyproject_reading.py",
  #47 234.4       line 95, in read_pyproject
  #47 234.4           pyproject_data.verify_dynamic_version_when_required()
  #47 234.4         File
  #47 234.4       "/root/.cache/uv/builds-v0/.tmpUsP5sY/lib/python3.10/site-packages/setuptools_scm/_integration/pyproject_reading.py",
  #47 234.4       line 38, in verify_dynamic_version_when_required
  #47 234.4           raise ValueError(
  #47 234.4       ValueError: pyproject.toml: setuptools-scm is present in
  #47 234.4       [build-system].requires but dynamic=['version'] is not set in
  #47 234.4       [project]. Either add dynamic=['version'] to [project] or add a
  #47 234.4       [tool.setuptools_scm] section.
  #47 234.4 
  #47 234.4       hint: This usually indicates a problem with the package or the build
  #47 234.4       environment.
  #47 234.4   help: `xmlsec` (v1.3.16) was included because
  #47 234.4         `apache-airflow-providers-amazon[python3-saml]` (v9.11.0) depends
  #47 234.4         on `xmlsec`
  #47 ERROR: process "/bin/bash -o pipefail -o errexit -o nounset -o nolog -c bash /scripts/docker/install_airflow_when_building_images.sh" did not complete successfully: exit code: 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions