diff --git a/python-setuptools_scm.changes b/python-setuptools_scm.changes index e6cdd2d..a94a9d9 100644 --- a/python-setuptools_scm.changes +++ b/python-setuptools_scm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri May 3 17:19:17 UTC 2024 - Andreas Stieger + +- fix tests with git 2.45.0 (boo#1223839) + adding setuptools-scm-issue1038-git-2-45-0.patch + ------------------------------------------------------------------- Fri Jan 5 15:56:43 UTC 2024 - Ben Greiner diff --git a/python-setuptools_scm.spec b/python-setuptools_scm.spec index 30f85e3..91c2189 100644 --- a/python-setuptools_scm.spec +++ b/python-setuptools_scm.spec @@ -1,7 +1,8 @@ # -# spec file +# spec file for package python-setuptools_scm # # Copyright (c) 2024 SUSE LLC +# Copyright (c) 2024 Andreas Stieger # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,17 +25,18 @@ %define psuffix %{nil} %bcond_with test %endif - %{?sle15_python_module_pythons} Name: python-setuptools_scm%{psuffix} Version: 8.0.4 Release: 0 Summary: Python setuptools handler for SCM tags License: MIT -URL: https://github.com/pypa/setuptools_scm +URL: https://github.com/pypa/setuptools_scm/ Source: https://files.pythonhosted.org/packages/source/s/setuptools-scm/setuptools-scm-%{version}.tar.gz # PATCH-FEATURE-OPENSUSE setuptools-scm-issue953-nowarn.patch gh#pypa/setuptools_scm#953 -- don't warn if setuptools_scm is present but not directly used Patch0: setuptools-scm-issue953-nowarn.patch +# PATCH-FIX-UPSTREAM setuptools-scm-issue1038-git-2-45-0.patch gp#pypa/setuptools_scm#1038 -- fix build with git 2.45.0 +Patch1: setuptools-scm-issue1038-git-2-45-0.patch BuildRequires: %{python_module base >= 3.8} BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools >= 61} @@ -45,10 +47,10 @@ BuildRequires: python-rpm-macros Requires: python-packaging >= 20.0 Requires: python-setuptools Requires: python-typing-extensions +BuildArch: noarch %if 0%{?python_version_nodots} < 311 Requires: python-tomli >= 1 %endif -BuildArch: noarch %if %{with test} # Testing requirements BuildRequires: %{python_module build} diff --git a/setuptools-scm-issue1038-git-2-45-0.patch b/setuptools-scm-issue1038-git-2-45-0.patch new file mode 100644 index 0000000..c346a4b --- /dev/null +++ b/setuptools-scm-issue1038-git-2-45-0.patch @@ -0,0 +1,48 @@ +Index: setuptools-scm-8.0.4/testing/test_git.py +=================================================================== +--- setuptools-scm-8.0.4.orig/testing/test_git.py ++++ setuptools-scm-8.0.4/testing/test_git.py +@@ -494,6 +494,22 @@ def test_git_getdate_badgit( + assert git_wd.get_head_date() is None + + ++def test_git_getdate_git_2_45_0_plus( ++ wd: WorkDir, caplog: pytest.LogCaptureFixture, monkeypatch: pytest.MonkeyPatch ++) -> None: ++ wd.commit_testfile() ++ git_wd = git.GitWorkdir(wd.cwd) ++ fake_date_result = CompletedProcess( ++ args=[], stdout="2024-04-30T22:33:10Z", stderr="", returncode=0 ++ ) ++ with patch.object( ++ git, ++ "run_git", ++ Mock(return_value=fake_date_result), ++ ): ++ assert git_wd.get_head_date() == date(2024, 4, 30) ++ ++ + @pytest.fixture() + def signed_commit_wd(monkeypatch: pytest.MonkeyPatch, wd: WorkDir) -> WorkDir: + if not has_command("gpg", args=["--version"], warn=False): +Index: setuptools-scm-8.0.4/src/setuptools_scm/git.py +=================================================================== +--- setuptools-scm-8.0.4.orig/src/setuptools_scm/git.py ++++ setuptools-scm-8.0.4/src/setuptools_scm/git.py +@@ -5,6 +5,7 @@ import logging + import os + import re + import shlex ++import sys + import warnings + from datetime import date + from datetime import datetime +@@ -118,6 +119,8 @@ class GitWorkdir(Workdir): + if "%c" in timestamp_text: + log.warning("git too old -> timestamp is %r", timestamp_text) + return None ++ if sys.version_info < (3, 11) and timestamp_text.endswith("Z"): ++ timestamp_text = timestamp_text[:-1] + "+00:00" + return datetime.fromisoformat(timestamp_text).date() + + res = run_git(