public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ansible-core] rawhide: Update to 2.22.0~b1.
@ 2026-09-23 14:23 Maxwell G
0 siblings, 0 replies; only message in thread
From: Maxwell G @ 2026-09-23 14:23 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/ansible-core
Branch : rawhide
Commit : 7f3183c741fa45b2f97b032ac96ab3a925daff83
Author : Maxwell G <maxwell@gtmx.me>
Date : 2026-09-23T09:20:11-05:00
Stats : +8/-270 in 6 file(s)
URL : https://src.fedoraproject.org/rpms/ansible-core/c/7f3183c741fa45b2f97b032ac96ab3a925daff83?branch=rawhide
Log:
Update to 2.22.0~b1.
- Needed for full Python 3.15 compatibility
---
diff --git a/.gitignore b/.gitignore
index c72d52b..13b0087 100644
--- a/.gitignore
+++ b/.gitignore
@@ -107,3 +107,5 @@
/ansible-documentation-2.21.3.tar.gz
/ansible-core-2.21.4.tar.gz
/ansible-documentation-2.21.4.tar.gz
+/ansible-core-2.22.0b1.tar.gz
+/ansible-documentation-2.22.0b1.tar.gz
diff --git a/87165.patch b/87165.patch
deleted file mode 100644
index 7a1340c..0000000
--- a/87165.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From dbe7531eff8868aba9ba02dd88b92e561865306c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= <tomas.hrnciar@me.com>
-Date: Wed, 24 Jun 2026 10:54:20 +0200
-Subject: [PATCH] Fix test compatibility with pytest >= 9.1
-
-Pytest 9.1 fixed parametrize to correctly unpack single-element tuple values when using a string argnames with a trailing comma (e.g. "arg,"), treating it like the tuple form ("arg",) (pytest-dev/pytest#719).
-This causes test_missing_lchmod_is_link_in_sticky_dir to fail because the trailing comma in @pytest.mark.parametrize('stdin,', ...) now makes pytest try to unpack {} as a sequence, finding 0 elements for 1 name.
-
-Remove the spurious trailing comma from 'stdin,'.
-
-Assisted-by: Claude Opus 4.6
----
- test/units/module_utils/basic/test_set_mode_if_different.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/test/units/module_utils/basic/test_set_mode_if_different.py b/test/units/module_utils/basic/test_set_mode_if_different.py
-index 45666608e48204..e15812aefe7ffc 100644
---- a/test/units/module_utils/basic/test_set_mode_if_different.py
-+++ b/test/units/module_utils/basic/test_set_mode_if_different.py
-@@ -151,7 +151,7 @@ def test_missing_lchmod_is_link(am, mock_stats, mocker, monkeypatch, check_mode)
- mocker.stopall()
-
-
--@pytest.mark.parametrize('stdin,',
-+@pytest.mark.parametrize('stdin',
- ({},),
- indirect=['stdin'])
- def test_missing_lchmod_is_link_in_sticky_dir(am, mock_stats, mocker):
diff --git a/allow-python3.15-build.patch b/allow-python3.15-build.patch
deleted file mode 100644
index 2fb0760..0000000
--- a/allow-python3.15-build.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 2b3053a64f50858a09cb02e3c847026714624432 Mon Sep 17 00:00:00 2001
-From: Karolina Surma <ksurma@redhat.com>
-Date: Mon, 4 May 2026 13:03:07 +0200
-Subject: [PATCH] Allow building with Python 3.15
-
----
- test/lib/ansible_test/_internal/coverage_util.py | 2 +-
- test/lib/ansible_test/_util/target/common/constants.py | 1 +
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/test/lib/ansible_test/_internal/coverage_util.py b/test/lib/ansible_test/_internal/coverage_util.py
-index 6f2bd0a..3d5d026 100644
---- a/test/lib/ansible_test/_internal/coverage_util.py
-+++ b/test/lib/ansible_test/_internal/coverage_util.py
-@@ -69,7 +69,7 @@ class CoverageVersion:
-
- COVERAGE_VERSIONS = (
- # IMPORTANT: Keep this in sync with the ansible-test.txt requirements file.
-- CoverageVersion('7.10.7', 7, (3, 9), (3, 14)),
-+ CoverageVersion('7.10.7', 7, (3, 9), (3, 15)),
- )
- """
- This tuple specifies the coverage version to use for Python version ranges.
-diff --git a/test/lib/ansible_test/_util/target/common/constants.py b/test/lib/ansible_test/_util/target/common/constants.py
-index 4d55c82..c19dc7c 100644
---- a/test/lib/ansible_test/_util/target/common/constants.py
-+++ b/test/lib/ansible_test/_util/target/common/constants.py
-@@ -14,4 +14,5 @@ CONTROLLER_PYTHON_VERSIONS = (
- '3.12',
- '3.13',
- '3.14',
-+ '3.15',
- )
---
-2.54.0
-
diff --git a/ansible-core.spec b/ansible-core.spec
index afba404..d94d8a5 100644
--- a/ansible-core.spec
+++ b/ansible-core.spec
@@ -13,7 +13,7 @@
%undefine _py3_shebang_s
Name: ansible-core
-Version: 2.21.4
+Version: 2.22.0~b1
%global uversion %{version_no_tilde %{quote:%nil}}
Release: 1%{?dist}
Summary: A radically simple IT automation system
@@ -28,20 +28,6 @@ URL: https://ansible.com
Source0: https://github.com/ansible/ansible/archive/v%{uversion}/%{name}-%{uversion}.tar.gz
Source1: https://github.com/ansible/ansible-documentation/archive/v%{uversion}/ansible-documentation-%{uversion}.tar.gz
-# ansible-core 2.20 does not support Python 3.15 and upstream does not plan to do so until 2.22
-# This is a downstream-only patch to make it possible to build 2.20 with Python 3.15
-Patch: allow-python3.15-build.patch
-
-# Fix general compatibility with Python 3.15
-# The test fix bit comes from https://github.com/ansible/ansible/commit/d60f11409
-# (rebased to apply on the sources of this version)
-# Changes to the _dataclass_annotation_patch come from merged:
-# https://github.com/ansible/ansible/pull/86976
-Patch: fix-compatibility-with-python-315.patch
-
-# Fix test compatibility with pytest 9.1
-Patch: https://github.com/ansible/ansible/pull/87165.patch
-
BuildArch: noarch
# Virtual provides for bundled libraries
@@ -258,6 +244,9 @@ install -Dpm 0644 licenses/* -t %{buildroot}%{_pkglicensedir}
%changelog
+* Wed Sep 23 2026 Maxwell G <maxwell@gtmx.me> - 2.22.0~b1-1
+- Update to 2.22.0~b1.
+
* Sat Sep 12 2026 Maxwell G <maxwell@gtmx.me> - 2.21.4-1
- Update to 2.21.4. Fixes rhbz#2529942.
diff --git a/fix-compatibility-with-python-315.patch b/fix-compatibility-with-python-315.patch
deleted file mode 100644
index bc61213..0000000
--- a/fix-compatibility-with-python-315.patch
+++ /dev/null
@@ -1,189 +0,0 @@
-From 6018c366dfdbfe5bc673019f307944b4d4f0b421 Mon Sep 17 00:00:00 2001
-From: Matt Clay <matt@mystile.com>
-Date: Fri, 15 May 2026 18:17:43 -0700
-Subject: [PATCH 1/2] ansible-test - Update base/default containers (#86958)
-
----
- .../_internal/_patches/_dataclass_annotation_patch.py | 4 +++-
- .../targets/ansible-test-sanity-pylint/aliases | 1 +
- test/lib/ansible_test/_internal/commands/sanity/pylint.py | 8 ++++++++
- .../units/module_utils/_internal/_patches/test_patches.py | 3 ++-
- 4 files changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/lib/ansible/module_utils/_internal/_patches/_dataclass_annotation_patch.py b/lib/ansible/module_utils/_internal/_patches/_dataclass_annotation_patch.py
-index 43da39a..85bf4e4 100644
---- a/lib/ansible/module_utils/_internal/_patches/_dataclass_annotation_patch.py
-+++ b/lib/ansible/module_utils/_internal/_patches/_dataclass_annotation_patch.py
-@@ -6,6 +6,8 @@ import dataclasses
- import sys
- import typing as t
-
-+# deprecated: description='remove this patch once Python 3.14 is no longer supported on targets' python_version='3.14'
-+
- from . import CallablePatch
-
- # trigger the bug by exposing typing.ClassVar via a module reference that is not `typing`
-@@ -24,7 +26,7 @@ class DataclassesIsTypePatch(CallablePatch):
- @dataclasses.dataclass
- class CheckClassVar:
- # this is the broken case requiring patching: ClassVar dot-referenced from a module that is not `typing` is treated as an instance field
-- # DTFIX-FUTURE: file/link CPython bug report, deprecate this patch if/when it's fixed in CPython
-+ # fixed in CPython 3.15.0b1, see: https://github.com/python/cpython/pull/140541
- a_classvar: _ts.ClassVar[int] # type: ignore[name-defined]
- a_field: int
-
-diff --git a/test/integration/targets/ansible-test-sanity-pylint/aliases b/test/integration/targets/ansible-test-sanity-pylint/aliases
-index 7741d44..d83e46d 100644
---- a/test/integration/targets/ansible-test-sanity-pylint/aliases
-+++ b/test/integration/targets/ansible-test-sanity-pylint/aliases
-@@ -2,3 +2,4 @@ shippable/posix/group3 # runs in the distro test containers
- shippable/generic/group1 # runs in the default test container
- context/controller
- needs/target/collection
-+skip/python3.15 # see: https://github.com/uqfoundation/dill/issues/753
-diff --git a/test/lib/ansible_test/_internal/commands/sanity/pylint.py b/test/lib/ansible_test/_internal/commands/sanity/pylint.py
-index 301ff47..71275ec 100644
---- a/test/lib/ansible_test/_internal/commands/sanity/pylint.py
-+++ b/test/lib/ansible_test/_internal/commands/sanity/pylint.py
-@@ -13,6 +13,7 @@ from . import (
- SanitySingleVersion,
- SanityMessage,
- SanityFailure,
-+ SanitySkipped,
- SanitySuccess,
- SanityTargets,
- SANITY_ROOT,
-@@ -39,6 +40,7 @@ from ...util import (
- SubprocessError,
- display,
- is_subdir,
-+ str_to_version,
- )
-
- from ...util_common import (
-@@ -86,6 +88,12 @@ class PylintTest(SanitySingleVersion):
- return [target for target in targets if os.path.splitext(target.path)[1] == '.py' or is_subdir(target.path, 'bin')]
-
- def test(self, args: SanityConfig, targets: SanityTargets, python: PythonConfig) -> TestResult:
-+ if str_to_version(python.version) >= (3, 15):
-+ # see: https://github.com/uqfoundation/dill/issues/753
-+ result = SanitySkipped(self.name, python.version)
-+ result.reason = f'Skipping sanity test "{self.name}" due to lack of support for Python version {python.version} in the "dill" package.'
-+ return result
-+
- target_paths = set(target.path for target in self.filter_remote_targets(list(targets.targets)))
-
- plugin_dir = os.path.join(SANITY_ROOT, 'pylint', 'plugins')
-diff --git a/test/units/module_utils/_internal/_patches/test_patches.py b/test/units/module_utils/_internal/_patches/test_patches.py
-index 08c8497..c5b8d66 100644
---- a/test/units/module_utils/_internal/_patches/test_patches.py
-+++ b/test/units/module_utils/_internal/_patches/test_patches.py
-@@ -10,7 +10,7 @@ import typing as t
- import pytest
-
- from ansible.module_utils._internal import _patches
--from ansible.module_utils._internal._patches import _socket_patch
-+from ansible.module_utils._internal._patches import _socket_patch, _dataclass_annotation_patch
- from ansible.module_utils.common._utils import get_all_subclasses
-
- module_to_patch = sys.modules[__name__]
-@@ -38,6 +38,7 @@ def get_patch_required_test_cases() -> list:
- # Example:
- # _patches._some_patch_module.SomePatchClass: sys.version_info >= (3, 13),
- _socket_patch.GetAddrInfoPatch: sys.version_info >= (3, 14),
-+ _dataclass_annotation_patch.DataclassesIsTypePatch: sys.version_info >= (3, 15, 0, 'beta', 1),
- }
-
- patches = sorted(get_all_subclasses(_patches.CallablePatch), key=lambda item: item.__name__)
---
-2.54.0
-
-
-From 7fd0f2b8cba8d120bcdac75d77fa95ea74730250 Mon Sep 17 00:00:00 2001
-From: Matt Davis <nitzmahone@redhat.com>
-Date: Mon, 11 May 2026 15:49:20 -0700
-Subject: [PATCH 2/2] Defer patch target attribute failure until verified
- needed
-
-* Fixes startup failure under Python 3.15.0b1 on dataclass ClassVar annotation patch (which appears to have been fixed).
-* Adds explicit failure if the target attribute does not exist but `is_patch_needed` is True.
-* Added surrogate test coverage for the new defensive error case.
----
- changelogs/fragments/patch_resilience.yml | 2 ++
- .../_internal/_patches/__init__.py | 8 ++++++-
- test/units/_internal/_patches/__init__.py | 0
- test/units/_internal/_patches/test_patch.py | 23 +++++++++++++++++++
- 4 files changed, 32 insertions(+), 1 deletion(-)
- create mode 100644 changelogs/fragments/patch_resilience.yml
- create mode 100644 test/units/_internal/_patches/__init__.py
- create mode 100644 test/units/_internal/_patches/test_patch.py
-
-diff --git a/changelogs/fragments/patch_resilience.yml b/changelogs/fragments/patch_resilience.yml
-new file mode 100644
-index 0000000..67b3991
---- /dev/null
-+++ b/changelogs/fragments/patch_resilience.yml
-@@ -0,0 +1,2 @@
-+bugfixes:
-+ - Internal patch framework - Defer failure on missing target patch attribute until `is_patch_needed` validator has confirmed that the behavior to be patched is present.
-diff --git a/lib/ansible/module_utils/_internal/_patches/__init__.py b/lib/ansible/module_utils/_internal/_patches/__init__.py
-index 7e08b04..4365ea9 100644
---- a/lib/ansible/module_utils/_internal/_patches/__init__.py
-+++ b/lib/ansible/module_utils/_internal/_patches/__init__.py
-@@ -42,7 +42,7 @@ class CallablePatch(abc.ABC):
- @classmethod
- def get_current_implementation(cls) -> t.Any:
- """Get the current (possibly patched) implementation from the patch target container."""
-- return getattr(cls.target_container, cls.target_attribute)
-+ return getattr(cls.target_container, cls.target_attribute, ...)
-
- @classmethod
- def patch(cls) -> None:
-@@ -55,6 +55,12 @@ class CallablePatch(abc.ABC):
- if not cls.is_patch_needed():
- return
-
-+ if cls.unpatched_implementation is ...:
-+ raise RuntimeError(
-+ f"Patch {cls.__name__!r} appears to be needed, but implementation to be patched "
-+ f"('{cls.target_container.__name__}.{cls.target_attribute}') is not present."
-+ )
-+
- # __call__ requires an instance (otherwise it'll be __new__)
- setattr(cls.target_container, cls.target_attribute, cls())
-
-diff --git a/test/units/_internal/_patches/__init__.py b/test/units/_internal/_patches/__init__.py
-new file mode 100644
-index 0000000..e69de29
-diff --git a/test/units/_internal/_patches/test_patch.py b/test/units/_internal/_patches/test_patch.py
-new file mode 100644
-index 0000000..fe942c1
---- /dev/null
-+++ b/test/units/_internal/_patches/test_patch.py
-@@ -0,0 +1,23 @@
-+import pytest
-+import typing as t
-+
-+from ansible.module_utils._internal._patches import CallablePatch
-+
-+
-+class BogusPatch(CallablePatch):
-+ """Coverage-oriented simulated patch where the patch is required but the original implementation to be patched does not exist."""
-+
-+ target_container: t.ClassVar = dict
-+ target_attribute = '_bogus_dict_attr'
-+
-+ @classmethod
-+ def is_patch_needed(cls) -> bool:
-+ return True
-+
-+ def __call__(self, annotation, cls, a_module, a_type, is_type_predicate) -> bool:
-+ raise NotImplementedError("should not be called")
-+
-+
-+def test_bogus_patch():
-+ with pytest.raises(RuntimeError, match="implementation to be patched .* is not present"):
-+ BogusPatch.patch()
---
-2.54.0
-
diff --git a/sources b/sources
index b8eea63..12c2ef7 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (ansible-core-2.21.4.tar.gz) = d4cab79a7b54d8fc0620a8ac9161c982b54d04289670f8e096cef86bc2cc89619acaad83a088e0a4acca32cf5f398e070be9faa48c063fb8fa02b8227cb86e17
-SHA512 (ansible-documentation-2.21.4.tar.gz) = e6d1e3ed9d8ec0a894a74515d3eb489788f30d7ee039f93512dcb9a6454cc881e85aa070f3a9e4b36ec1038e176cbffbcb5d1a4b4bf6cc39006c8cc12e285d39
+SHA512 (ansible-core-2.22.0b1.tar.gz) = 1bf7cce7762e5542ddeebdb2cbe5abb267a93a2a9f13d95148ea904adc2f7beb47ca9f7879272f05a611b178cc9c98f665757e38b0bcc0a1da63c81fe7f99eb3
+SHA512 (ansible-documentation-2.22.0b1.tar.gz) = a3406019efa1c3abb1ac1dbd0bd534de78336cda790eb63b25d14fd1255e7f030cdcd2477184c1fdd6c8b7e372c6be47443f3c42664b5ae8405cc4e8429d2f10
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-23 14:23 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-23 14:23 [rpms/ansible-core] rawhide: Update to 2.22.0~b1 Maxwell G
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox