Skip to content

_warn_on_old_setuptools() warns incorrectly when using a custom build-backend #1192

Closed

Description

@tych0

Qtile has a custom build-backend: https://github.com/qtile/qtile/blob/master/pyproject.toml#L10

When I run something like check-manifest, I get:

uv run  check-manifest
lists of files in version control and sdist match
uv run  python3 -m build --sdist .
* Creating isolated environment: virtualenv+pip...
* Installing packages in isolated environment:
  - cairocffi[xcb]>=1.6.0
  - cffi>=1.1.0
  - setuptools-scm>=7.0
  - setuptools>=61
  - wheel
* Getting build dependencies for sdist...
/tmp/build-env-u52_juhz/lib/python3.12/site-packages/setuptools_scm/_integration/setuptools.py:31: RuntimeWarning:
ERROR: setuptools==0.33.1.dev27+g9ffbf677.d20250808 is used in combination with setuptools-scm>=8.x

Your build configuration is incomplete and previously worked by accident!
setuptools-scm requires setuptools>=61

Suggested workaround if applicable:
 - migrating from the deprecated setup_requires mechanism to pep517/518
   and using a pyproject.toml to declare build dependencies
   which are reliably pre-installed before running the build tools

  warnings.warn(

but the version it complains about is the current version of qtile, not the version of setuptools. I don't really understand why this would happen, we aren't doing anything fancy with our build backend (though we do import a bunch of setuptools stuff as well):

https://github.com/qtile/qtile/blob/master/builder.py

Activity

  1. RonnyPfannschmidt commented on Aug 8, 2025

    @RonnyPfannschmidt
    Contributor

    That's a entirely new one why is that version object changed

  2. tych0 commented on Aug 8, 2025

    @tych0
    Author

    Yeah... something weird is happening. It is pretty easy to reproduce, 'make check-packaging' on qtile's git master should give it to you.

  3. RonnyPfannschmidt commented on Aug 8, 2025

    @RonnyPfannschmidt
    Contributor

    I might not get to test this before next week as I'm down with a stomach bug

  4. tych0 commented on Aug 8, 2025

    @tych0
    Author

    No problem, it's not urgent. It has been affecting us for a long time, but it's only a warning so not a blocker.

  5. RonnyPfannschmidt commented on Aug 17, 2025

    @RonnyPfannschmidt
    Contributor

    based on jsut reading the code its unclear whats going on - can i get the output with SETUPTOOLS_SCM_DEBUG=1

  6. webknjaz commented on Aug 18, 2025

    @webknjaz
    Member

    @tych0 FYI, your pyproject.toml seems to mistakenly contain wheel in the list.

  7. tych0 commented on Aug 21, 2025

    @tych0
    Author

    based on jsut reading the code its unclear whats going on - can i get the output with SETUPTOOLS_SCM_DEBUG=1

    hmm, doesn't seem like that gave me anything additional?

    $ SETUPTOOLS_SCM_DEBUG=1 uv run  python3 -m build --sdist .
    * Creating isolated environment: virtualenv+pip...
    * Installing packages in isolated environment:
      - cairocffi[xcb]>=1.6.0
      - cffi>=1.1.0
      - setuptools-scm>=7.0
      - setuptools>=61
      - wheel
    * Getting build dependencies for sdist...
    /tmp/build-env-xv7p7ra4/lib/python3.12/site-packages/setuptools_scm/_integration/setuptools.py:24: RuntimeWarning:
    ERROR: setuptools==0.33.1.dev51+gf9d4b936f.d20250821 is used in combination with setuptools-scm>=8.x
    
    Your build configuration is incomplete and previously worked by accident!
    setuptools-scm requires setuptools>=61 (recommended: >=80)
    
    Suggested workaround if applicable:
     - migrating from the deprecated setup_requires mechanism to pep517/518
       and using a pyproject.toml to declare build dependencies
       which are reliably pre-installed before running the build tools
    
      warnings.warn(
    running egg_info
    writing qtile.egg-info/PKG-INFO
    writing dependency_links to qtile.egg-info/dependency_links.txt
    writing entry points to qtile.egg-info/entry_points.txt
    writing requirements to qtile.egg-info/requires.txt
    writing top-level names to qtile.egg-info/top_level.txt
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files found matching 'uv.lock'
    warning: no previously-included files found matching 'libqtile/_ffi*.py'
    warning: no previously-included files found matching 'libqtile/backend/x11/_ffi*.py'
    warning: no previously-included files found matching 'libqtile/backend/wayland/_ffi*.*'
    warning: no previously-included files found matching 'libqtile/backend/wayland/_libinput*.*'
    no previously-included directories found matching 'bin'
    no previously-included directories found matching 'rpm'
    warning: no previously-included files matching '__pycache__' found under directory '*'
    adding license file 'LICENSE'
    writing manifest file 'qtile.egg-info/SOURCES.txt'
    * Building sdist...
    /tmp/build-env-xv7p7ra4/lib/python3.12/site-packages/setuptools_scm/_integration/setuptools.py:24: RuntimeWarning:
    ERROR: setuptools==0.33.1.dev51+gf9d4b936f.d20250821 is used in combination with setuptools-scm>=8.x
    
    Your build configuration is incomplete and previously worked by accident!
    setuptools-scm requires setuptools>=61 (recommended: >=80)
    
    Suggested workaround if applicable:
     - migrating from the deprecated setup_requires mechanism to pep517/518
       and using a pyproject.toml to declare build dependencies
       which are reliably pre-installed before running the build tools
    
      warnings.warn(
    running sdist
    running egg_info
    writing qtile.egg-info/PKG-INFO
    writing dependency_links to qtile.egg-info/dependency_links.txt
    writing entry points to qtile.egg-info/entry_points.txt
    writing requirements to qtile.egg-info/requires.txt
    writing top-level names to qtile.egg-info/top_level.txt
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files found matching 'uv.lock'
    warning: no previously-included files found matching 'libqtile/_ffi*.py'
    warning: no previously-included files found matching 'libqtile/backend/x11/_ffi*.py'
    warning: no previously-included files found matching 'libqtile/backend/wayland/_ffi*.*'
    warning: no previously-included files found matching 'libqtile/backend/wayland/_libinput*.*'
    no previously-included directories found matching 'bin'
    no previously-included directories found matching 'rpm'
    warning: no previously-included files matching '__pycache__' found under directory '*'
    adding license file 'LICENSE'
    writing manifest file 'qtile.egg-info/SOURCES.txt'
    running check
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github/ISSUE_TEMPLATE
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github/workflows
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/base
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland/cffi
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/x11
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/command
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/core
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/extension
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/interactive
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget/helpers/status_notifier
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/qtile.egg-info
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/resources
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend/wayland
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend/x11
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/configs
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/core
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/data/comparison_images
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/data/png
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/data/svg
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/extension
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/migrate
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/scripts
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/shell_scripts
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    creating qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying files to qtile-0.33.1.dev51+gf9d4b936f.d20250821...
    copying .gitignore -> qtile-0.33.1.dev51+gf9d4b936f.d20250821
    copying .pre-commit-config.yaml -> qtile-0.33.1.dev51+gf9d4b936f.d20250821
    copying CHANGELOG -> qtile-0.33.1.dev51+gf9d4b936f.d20250821
    copying CONTRIBUTING.md -> qtile-0.33.1.dev51+gf9d4b936f.d20250821
    copying LICENSE -> qtile-0.33.1.dev51+gf9d4b936f.d20250821
    copying MANIFEST.in -> qtile-0.33.1.dev51+gf9d4b936f.d20250821
    copying README.rst -> qtile-0.33.1.dev51+gf9d4b936f.d20250821
    copying builder.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821
    copying pyproject.toml -> qtile-0.33.1.dev51+gf9d4b936f.d20250821
    copying .github/issue_template.md -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github
    copying .github/ISSUE_TEMPLATE/bug_report.yml -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github/ISSUE_TEMPLATE
    copying .github/ISSUE_TEMPLATE/config.yml -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github/ISSUE_TEMPLATE
    copying .github/workflows/ci.yml -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github/workflows
    copying .github/workflows/flake-check.yml -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github/workflows
    copying .github/workflows/pr_welcome.yml -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github/workflows
    copying .github/workflows/pre_commit.yml -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github/workflows
    copying .github/workflows/release.yml -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github/workflows
    copying .github/workflows/stale.yml -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/.github/workflows
    copying libqtile/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/_build_config.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/bar.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/config.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/configurable.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/confreader.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/dgroups.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/group.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/hook.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/images.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/ipc.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/lazy.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/log_utils.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/notify.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/pango_ffi.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/pangocffi.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/popup.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/py.typed -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/scratchpad.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/sh.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/utils.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile
    copying libqtile/backend/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend
    copying libqtile/backend/base/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/base
    copying libqtile/backend/base/core.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/base
    copying libqtile/backend/base/drawer.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/base
    copying libqtile/backend/base/window.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/base
    copying libqtile/backend/wayland/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    copying libqtile/backend/wayland/core.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    copying libqtile/backend/wayland/drawer.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    copying libqtile/backend/wayland/inputs.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    copying libqtile/backend/wayland/layer.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    copying libqtile/backend/wayland/output.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    copying libqtile/backend/wayland/window.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    copying libqtile/backend/wayland/wlrq.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    copying libqtile/backend/wayland/xdgwindow.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    copying libqtile/backend/wayland/xwindow.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland
    copying libqtile/backend/wayland/cffi/build.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland/cffi
    copying libqtile/backend/wayland/cffi/cairo_buffer.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland/cffi
    copying libqtile/backend/wayland/cffi/libinput.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/wayland/cffi
    copying libqtile/backend/x11/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/x11
    copying libqtile/backend/x11/core.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/x11
    copying libqtile/backend/x11/drawer.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/x11
    copying libqtile/backend/x11/window.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/x11
    copying libqtile/backend/x11/xcbq.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/x11
    copying libqtile/backend/x11/xcursors.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/x11
    copying libqtile/backend/x11/xcursors_ffi.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/x11
    copying libqtile/backend/x11/xkeysyms.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/backend/x11
    copying libqtile/command/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/command
    copying libqtile/command/base.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/command
    copying libqtile/command/client.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/command
    copying libqtile/command/graph.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/command
    copying libqtile/command/interface.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/command
    copying libqtile/core/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/core
    copying libqtile/core/lifecycle.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/core
    copying libqtile/core/loop.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/core
    copying libqtile/core/manager.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/core
    copying libqtile/core/state.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/core
    copying libqtile/extension/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/extension
    copying libqtile/extension/base.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/extension
    copying libqtile/extension/command_set.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/extension
    copying libqtile/extension/dmenu.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/extension
    copying libqtile/extension/window_list.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/extension
    copying libqtile/interactive/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/interactive
    copying libqtile/interactive/iqshell_install.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/interactive
    copying libqtile/interactive/iqshell_kernel.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/interactive
    copying libqtile/interactive/repl.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/interactive
    copying libqtile/layout/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/base.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/bsp.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/columns.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/floating.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/matrix.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/max.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/plasma.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/ratiotile.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/screensplit.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/slice.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/spiral.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/stack.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/tile.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/tree.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/verticaltile.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/xmonad.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/layout/zoomy.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/layout
    copying libqtile/resources/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources
    copying libqtile/resources/default_config.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources
    copying libqtile/resources/logo.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources
    copying libqtile/resources/sleep.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources
    copying libqtile/resources/battery-icons/battery-caution-charging.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/battery-icons/battery-caution.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/battery-icons/battery-empty.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/battery-icons/battery-full-charged.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/battery-icons/battery-full-charging.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/battery-icons/battery-full.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/battery-icons/battery-good-charging.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/battery-icons/battery-good.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/battery-icons/battery-low-charging.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/battery-icons/battery-low.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/battery-icons/battery-missing.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/battery-icons
    copying libqtile/resources/layout-icons/layout-bsp.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-columns.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-floating.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-matrix.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-max.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-monadtall.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-monadthreecol.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-monadwide.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-plasma.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-ratiotile.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-screensplit.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-slice.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-spiral.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-stack.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-tile.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-treetab.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-unknown.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-verticaltile.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-wmii.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/resources/layout-icons/layout-zoomy.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/resources/layout-icons
    copying libqtile/scripts/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/check.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/cmd_obj.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/launch.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/main.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/migrate.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/repl.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/run_cmd.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/shell.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/start.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/top.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts
    copying libqtile/scripts/migrations/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    copying libqtile/scripts/migrations/_base.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    copying libqtile/scripts/migrations/change_bluetooth_args.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    copying libqtile/scripts/migrations/change_stockticker_args.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    copying libqtile/scripts/migrations/change_wlan_args.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    copying libqtile/scripts/migrations/match_list_regex.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    copying libqtile/scripts/migrations/migrate_thread_pool_text.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    copying libqtile/scripts/migrations/remove_cmd_prefix.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    copying libqtile/scripts/migrations/rename_currentlayouticon.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    copying libqtile/scripts/migrations/rename_unspecified.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/scripts/migrations
    copying libqtile/widget/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/backlight.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/base.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/battery.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/bluetooth.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/canto.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/caps_num_lock_indicator.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/check_updates.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/chord.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/clipboard.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/clock.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/cmus.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/config_error.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/countdown.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/cpu.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/crashme.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/crypto_ticker.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/currentlayout.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/currentscreen.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/df.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/do_not_disturb.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/generic_poll_text.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/gmail_checker.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/graph.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/groupbox.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/hdd.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/idlerpg.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/image.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/imapwidget.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/import_error.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/inotify.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/keyboardkbdd.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/keyboardlayout.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/khal_calendar.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/launchbar.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/load.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/maildir.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/memory.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/moc.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/mpd2widget.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/mpris2widget.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/net.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/netup.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/notify.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/nvidia_sensors.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/open_weather.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/plasma.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/pomodoro.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/prompt.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/pulse_volume.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/quick_exit.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/redshift.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/screensplit.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/sensors.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/sep.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/she.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/spacer.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/statusnotifier.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/stock_ticker.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/swaync.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/systray.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/tasklist.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/textbox.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/thermal_zone.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/tuned_manager.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/vertical_clock.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/volume.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/wallpaper.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/widgetbox.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/window_count.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/windowname.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/windowtabs.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/wlan.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/wttr.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget
    copying libqtile/widget/helpers/status_notifier/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget/helpers/status_notifier
    copying libqtile/widget/helpers/status_notifier/fallback_icon.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget/helpers/status_notifier
    copying libqtile/widget/helpers/status_notifier/statusnotifier.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/libqtile/widget/helpers/status_notifier
    copying qtile.egg-info/PKG-INFO -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/qtile.egg-info
    copying qtile.egg-info/SOURCES.txt -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/qtile.egg-info
    copying qtile.egg-info/dependency_links.txt -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/qtile.egg-info
    copying qtile.egg-info/entry_points.txt -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/qtile.egg-info
    copying qtile.egg-info/requires.txt -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/qtile.egg-info
    copying qtile.egg-info/top_level.txt -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/qtile.egg-info
    copying resources/99-qtile.rules -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/resources
    copying resources/README -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/resources
    copying resources/objgraph.dot -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/resources
    copying resources/qtile-wayland.desktop -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/resources
    copying resources/qtile.desktop -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/resources
    copying test/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/conftest.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/helpers.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_bar.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_check.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_command.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_command_graph.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_config.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_configurable.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_dgroups.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_fakescreen.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_floating.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_group.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_hook.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_images.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_images2.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_ipc.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_manager.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_match.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_popup.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_qtile_cmd.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_qtile_help.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_restart.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_scratchpad.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_sh.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_swallow.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_utils.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_when.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/test_window.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test
    copying test/backend/test_backend.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend
    copying test/backend/wayland/conftest.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend/wayland
    copying test/backend/wayland/test_window.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend/wayland
    copying test/backend/x11/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend/x11
    copying test/backend/x11/conftest.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend/x11
    copying test/backend/x11/test_window.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend/x11
    copying test/backend/x11/test_xcbq.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend/x11
    copying test/backend/x11/test_xcore.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/backend/x11
    copying test/configs/basic.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/configs
    copying test/configs/reloading.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/configs
    copying test/configs/syntaxerr.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/configs
    copying test/core/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/core
    copying test/core/test_exitcode.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/core
    copying test/core/test_lifecycle.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/core
    copying test/data/comparison_images/audio-volume-muted_bad.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/data/comparison_images
    copying test/data/comparison_images/audio-volume-muted_good.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/data/comparison_images
    copying test/data/png/audio-volume-muted.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/data/png
    copying test/data/png/battery-caution-charging.png -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/data/png
    copying test/data/svg/audio-volume-muted.svg -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/data/svg
    copying test/extension/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/extension
    copying test/extension/test_base.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/extension
    copying test/extension/test_command_set.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/extension
    copying test/extension/test_dmenu.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/extension
    copying test/extension/test_window_list.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/extension
    copying test/layouts/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/layout_utils.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_base.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_bsp.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_columns.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_common.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_floating.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_matrix.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_max.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_plasma.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_ratiotile.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_screensplit.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_slice.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_spiral.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_stack.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_tile.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_treetab.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_verticaltile.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_xmonad.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/layouts/test_zoomy.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/layouts
    copying test/migrate/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/migrate
    copying test/migrate/conftest.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/migrate
    copying test/migrate/test_check_migrations.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/migrate
    copying test/migrate/test_migrations.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/migrate
    copying test/scripts/qtile-logo-blue.svg -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/scripts
    copying test/scripts/qtile_icon.rgba -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/scripts
    copying test/scripts/window.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/scripts
    copying test/shell_scripts/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/shell_scripts
    copying test/shell_scripts/test_repl_client.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/shell_scripts
    copying test/shell_scripts/test_repl_server.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/shell_scripts
    copying test/widgets/__init__.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/conftest.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_base.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_battery.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_bluetooth.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_caps_num_lock_indicator.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_check_updates.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_chord.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_clipboard.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_clock.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_cmus.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_configerror.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_countdown.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_cpu.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_crashme.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_crypto_ticker.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_currentlayout.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_currentscreen.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_df.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_do_not_disturb.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_generic_poll_text.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_gmail_checker.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_groupbox.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_hdd.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_hide_crash.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_idlerpg.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_image.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_imapwidget.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_import_error.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_inotify.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_keyboardkbdd.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_launchbar.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_load.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_memory.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_misc.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_moc.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_mouse_callback.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_mpd2widget.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_mpris2widget.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_net.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_netup.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_notify.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_nvidia_sensors.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_openweather.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_plasma.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_pomodoro.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_quickexit.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_redshift.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_screensplit.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_sensors.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_sep.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_spacer.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_statusnotifier.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_stock_ticker.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_systray.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_tasklist.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_textbox.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_thermal_zone.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_tuned_manager.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_vertical_clock.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_volume.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_widget_init_configure.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_widgetbox.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_window_count.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_windowname.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_windowtabs.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_wlan.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/test_wttr.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets
    copying test/widgets/docs_screenshots/conftest.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_battery.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_batteryicon.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_bluetooth.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_caps_lock_indicator.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_checkupdates.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_chord.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_clock.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_cmus.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_countdown.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_cpu.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_cpugraph.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_crypto_ticker.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_currentlayout.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_currentscreen.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_df.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_do_not_disturb.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_genpolltext.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_genpollurl.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_gmail_checker.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_groupbox.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_hdd.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_hddbusygraph.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_hddgraph.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_idlerpg.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_image.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_imapwidget.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_keyboardkbdd.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_load.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_memory.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_memorygraph.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_moc.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_mpd2.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_mpris2.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_net.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_netgraph.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_notify.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_nvidia_sensors.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_openweather.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_pomodoro.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_quickexit.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_redshift.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_screensplit.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_sensors.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_sep.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_spacer.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_statusnotifier.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_stock_ticker.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_swapgraph.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_textbox.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_thermal_zone.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_vertical_clock.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_volume.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_widgetbox.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_window_count.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_windowname.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_windowtabs.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_wlan.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying test/widgets/docs_screenshots/ss_wttr.py -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/test/widgets/docs_screenshots
    copying qtile.egg-info/SOURCES.txt -> qtile-0.33.1.dev51+gf9d4b936f.d20250821/qtile.egg-info
    Writing qtile-0.33.1.dev51+gf9d4b936f.d20250821/setup.cfg
    Creating tar archive
    removing 'qtile-0.33.1.dev51+gf9d4b936f.d20250821' (and everything under it)
    Successfully built qtile-0.33.1.dev51+gf9d4b936f.d20250821.tar.gz
    
  8. rwgk commented on Jan 10, 2026

    @rwgk
  9. nieder commented on Jan 27, 2026

    @nieder

    I'm getting the same problem trying to upgrade setuptools-scm=7.1.0 to 8.3.1 (with setuptools 68.0.0 installed):

    /opt/sw/bin/python3.8 -m build --wheel --no-isolation --skip-dependency-check
    * Building wheel...
    /Users/nieder/src/setuptools_scm-8.3.1/src/setuptools_scm/_integration/setuptools.py:31: RuntimeWarning: 
    ERROR: setuptools==8.3.1 is used in combination with setuptools-scm>=8.x
    
    Your build configuration is incomplete and previously worked by accident!
    setuptools-scm requires setuptools>=61
    

    But if I manually load setuptools and check the version is a similar way as _warn_on_old_setuptools() does, it pulls the correct version of setuptools:

    import setuptools
    
    _version: str = setuptools.__version__
    print(_version)
    if int(_version.split(".")[0]) < 61:
    	print(f"Version {_version} is less than 61")
    else:
    	print(f"Version {_version} is greater than 61")
    nieder $ /opt/sw/bin/python3.8 ~/Desktop/version_check.py
    68.0.0
    Version 68.0.0 is greater than 61
    

    Both python3.8 and 3.10 fail the same way when trying to build setuptools_scm

  10. webknjaz commented on Jan 27, 2026

    @webknjaz
    Member

    @nieder do you happen to have a module called setuptools somewhere in your import path? If you replace -m with -Im, does anything change? What's your reproducer?

  11. nieder commented on Jan 28, 2026

    @nieder

    I don't have any other setuptools version installed anywhere. The setuptools-scm build still fails when using the -Im flag:

    /opt/sw/bin/python3.8 -Im build --wheel --no-isolation --skip-dependency-check  
    * Building wheel...
    /Users/nieder/src/setuptools_scm-8.3.1/src/setuptools_scm/_integration/setuptools.py:31: RuntimeWarning: 
    ERROR: setuptools==8.3.1 is used in combination with setuptools-scm>=8.x
    
    Your build configuration is incomplete and previously worked by accident!
    setuptools-scm requires setuptools>=61
    

    If by reproducer you mean minimal way to repeat the issue, this code saved as version_check.py then run prints out the correct version of setuptools.

    $ /opt/sw/bin/python3.8 ~/Desktop/version_check.py
    68.0.0
    Version 68.0.0 is greater than 61
    

    I also get the correct version if I copy setuptools-scm::setuptools.py outside the source tree and run that directly (after adding a print diagnostic inside _warn_on_old_setuptools and commenting out from .. import _config):

    $ python3.8 -I setuptoolstest.py
    Version is 68.0.0
    

    But building the setuptools-scm wheel always errors with reporting the setuptools-scm version of the build tree as the installed setuptools version.

  12. nieder commented on Jan 31, 2026

    @nieder

    Here is a minimal reproducer (LLM generated):

    https://github.com/rwgk/setuptools-scm-issue-1192

    Simply git clone and follow the instructions in the README.

    Interestingly, this doesn't cause any problems for me using my usual wheel creating command /opt/sw/bin/python3.10 -Im build --wheel --no-isolation --skip-dependency-check unlike setuptools-scm here

  13. nieder commented on Jan 31, 2026

    @nieder

    Adding print(inspect.getfile(setuptools)) inside setuptools-scm_v8.3.1::_warn_on_old_setuptools(), tells me my setuptools is here, which is the expected location:

    /opt/sw/lib/python3.8/site-packages/setuptools/init.py

  14. RonnyPfannschmidt commented on Jan 31, 2026

    @RonnyPfannschmidt
    Contributor

    What's the version of the setuptools in that location

    There are some issues with very old setuptools versions pulling in a mess

  15. added a commit that references this issue on Mar 27, 2026
    6f2a288
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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