diff mbox series

[03/24] python3-setuptools-scm: upgrade 10.2.3 -> 10.3.4

Message ID 20260930-mathieu-upgrades-2026-02-29-v1-3-102c38be04df@bootlin.com
State Under Review
Headers show
Series 2026-09-29 upgrades | expand

Commit Message

Mathieu Dubois-Briand Sept. 30, 2026, 8:16 a.m. UTC
10.3.4 (2026-09-23)
- Fixed
  - Ship the tracked files of projects whose pyproject.toml sits in a
    subdirectory of the checkout. root defaults to the project
    directory, so version inference correctly finds no SCM there and
    answers from SETUPTOOLS_SCM_PRETEND_VERSION or fallback_version --
    but that says nothing about which files git tracks, and the sdist
    and wheel came out with none of them. This was the 10.3.0 regression
    fixed in 10.3.3, surviving in the subdirectory layout.
  - File discovery now follows the checkout the project sits in,
    independently of the root that scopes versioning, and records
    scm_file_list.json in the egg-info as a root-level project already
    did.
  - Require vcs-versioning>=2.5.0. The subdirectory file-discovery fix
    imports discover_file_workdir, which no earlier release has, while
    the declared floor still named 2.4.0 -- an install against a
    published vcs-versioning raised ImportError during the build.

10.3.3 (2026-09-16)
- Fixed
  - Keep file discovery working when the version is pretended.
    SETUPTOOLS_SCM_PRETEND_VERSION and its scoped _FOR_<DIST> form made
    version inference return before discovering a workdir, and the
    egg_info mixin read the absent workdir as "searched, found no
    checkout" -- the signal it acts on by suppressing the
    setuptools.file_finders chain. Every SCM-tracked file that
    setuptools' own package discovery does not find was then dropped
    from the sdist and the wheel, silently, since the build succeeded
    and the version was correct.
  - A pretended version still skips discovery, because most builds only
    want a version and probing for a checkout nobody asks about costs
    subprocesses for nothing. What no longer happens is passing that off
    as an answer: "nobody looked yet" is now distinct from "looked and
    found nothing", and the workdir is discovered on demand the first
    time a consumer needs a file list.
  - scm_file_list.json is now written to the egg-info for pretended
    builds as well. It describes which files the checkout tracks, which
    a pretended version says nothing about. scm_version.json stays
    absent there, because a pretended version must not be recorded as
    what the SCM said.

10.3.2 (2026-09-14)
- Fixed
  - Stop the command mixins from reordering a project's own build_py,
    egg_info or bdist_wheel MRO. ScmVersionFileMixin and friends
    inherited from the corresponding setuptools command, so wrapping a
    project class built on a disjoint hierarchy --
    distutils.command.build_py, or the standalone wheel package's
    bdist_wheel -- placed setuptools' command ahead of the project's
    class. setuptools.build_py.run() does not delegate any further, so
    the project's run() was silently skipped, surfacing as error:
    package directory '...' does not exist. The mixins now carry no
    runtime base class and linearise to (wrapped, mixin,
    *project_command.__mro__).
  - Leave a project's cmdclass alone when setuptools-scm is installed
    but not actually inferring a version. build_py, egg_info and
    bdist_wheel are now registered only once version inference has
    stored data on the distribution -- the precondition for any of the
    mixins doing something. Previously every project with a
    pyproject.toml had its commands wrapped, including projects with no
    [tool.setuptools_scm] section at all.
  - Note for projects that used to configure setuptools-scm and no
    longer do: a scm_version.json left behind in a stale *.egg-info
    directory is no longer stripped from built wheels, because the
    bdist_wheel mixin that strips it is no longer registered either.
    Remove the stale *.egg-info directory.

10.3.1 (2026-09-14)
- Fixed
  - Require vcs-versioning>=2.4.0. setuptools-scm 10.3.0 declared
    >=2.3.2 but imports
    vcs_versioning._file_finders.scm_search_known_failed, which
    vcs-versioning only gained in 2.4.0, so installing it alongside an
    older vcs-versioning failed with ImportError. CI now installs
    setuptools-scm against the oldest vcs-versioning its metadata
    permits, so the lower bound can no longer go stale unnoticed.

10.3.0 (2026-09-12)
- Deprecated
  - Emit a DeprecationWarning when the setuptools.file_finders entry
    point is invoked for a project that does not configure
    setuptools-scm. The entry point will be removed in a future major
    release.
- Fixed
  - Run the setuptools.file_finders hook inside a setuptools-scm
    override context. It previously resolved settings under the
    VCS_VERSIONING prefix only, so documented variables such as
    SETUPTOOLS_SCM_SUBPROCESS_TIMEOUT and SETUPTOOLS_SCM_HG_COMMAND were
    ignored when finding files.
  - When version inference has already run and found no SCM checkout,
    the egg_info mixin now tells the file finders so, rather than
    letting walk_revctrl() re-probe every backend for a repository known
    to be absent.

Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
---
 ...ython3-setuptools-scm_10.2.3.bb => python3-setuptools-scm_10.3.4.bb} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/meta/recipes-devtools/python/python3-setuptools-scm_10.2.3.bb b/meta/recipes-devtools/python/python3-setuptools-scm_10.3.4.bb
similarity index 89%
rename from meta/recipes-devtools/python/python3-setuptools-scm_10.2.3.bb
rename to meta/recipes-devtools/python/python3-setuptools-scm_10.3.4.bb
index 0af4bd24f5e2..db9a565439c5 100644
--- a/meta/recipes-devtools/python/python3-setuptools-scm_10.2.3.bb
+++ b/meta/recipes-devtools/python/python3-setuptools-scm_10.3.4.bb
@@ -6,7 +6,7 @@  argument or in a SCM managed file."
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=838c366f69b72c5df05c96dff79b35f2"
 
-SRC_URI[sha256sum] = "f179ed3e2a63cf5823e5ee9aa9ca08386219400443a0553224d72dde3f206b44"
+SRC_URI[sha256sum] = "a69f28bfc245608781205e912faae437c2b2165773afa4e7b979d77447a69dd2"
 
 PYPI_PACKAGE = "setuptools_scm"