Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ansible-core-2.20 for 
openSUSE:Factory checked in at 2026-10-08 13:28:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ansible-core-2.20 (Old)
 and      /work/SRC/openSUSE:Factory/.ansible-core-2.20.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ansible-core-2.20"

Thu Oct  8 13:28:00 2026 rev:6 rq:1383202 version:2.20.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/ansible-core-2.20/ansible-core-2.20.changes      
2026-10-05 13:05:08.572668761 +0200
+++ 
/work/SRC/openSUSE:Factory/.ansible-core-2.20.new.3698736/ansible-core-2.20.changes
 2026-10-08 13:28:35.097798046 +0200
@@ -1,0 +2,20 @@
+Thu Oct  8 06:03:27 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- update to 2.20.10:
+  
https://github.com/ansible/ansible/blob/v2.20.10/changelogs/CHANGELOG-v2.20.rst
+  * Bugfixes
+    - ansible-connection - ensure that the connection persistent
+      directory has private permissions. This covers the corner
+      case in which the preceding directories do not exist or do
+      not have private enough permissions.
+    - ansible-test - Do not fail the validate-modules sanity test
+      when a plugin documents an option with the secret key. The
+      key is only honored by ansible-core 2.22 and later, where it
+      masks the option value in output. It is ignored by earlier
+      versions, but is now accepted by the sanity test so a
+      collection can document it while still testing against those
+      versions.
+    - dnf5 module - Set the dnf destdir configuration option from
+      download_dir when download_only is true, as documented.
+
+-------------------------------------------------------------------

Old:
----
  ansible_core-2.20.9.tar.gz
  ansible_core-2.20.9.tar.gz.sha256

New:
----
  ansible_core-2.20.10.tar.gz
  ansible_core-2.20.10.tar.gz.sha256

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ansible-core-2.20.spec ++++++
--- /var/tmp/diff_new_pack.VD8CB2/_old  2026-10-08 13:28:36.573859819 +0200
+++ /var/tmp/diff_new_pack.VD8CB2/_new  2026-10-08 13:28:36.579860070 +0200
@@ -43,7 +43,7 @@
 %endif
 
 Name:           ansible-core-2.20
-Version:        2.20.9
+Version:        2.20.10
 Release:        0
 Summary:        Radically simple IT automation
 License:        GPL-3.0-or-later

++++++ ansible_core-2.20.9.tar.gz -> ansible_core-2.20.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.20.9/PKG-INFO 
new/ansible_core-2.20.10/PKG-INFO
--- old/ansible_core-2.20.9/PKG-INFO    2026-09-08 18:38:56.000000000 +0200
+++ new/ansible_core-2.20.10/PKG-INFO   2026-10-05 17:06:40.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: ansible-core
-Version: 2.20.9
+Version: 2.20.10
 Summary: Radically simple IT automation
 Author: Ansible Project
 Project-URL: Homepage, https://ansible.com/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.20.9/ansible_core.egg-info/PKG-INFO 
new/ansible_core-2.20.10/ansible_core.egg-info/PKG-INFO
--- old/ansible_core-2.20.9/ansible_core.egg-info/PKG-INFO      2026-09-08 
18:38:56.000000000 +0200
+++ new/ansible_core-2.20.10/ansible_core.egg-info/PKG-INFO     2026-10-05 
17:06:40.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: ansible-core
-Version: 2.20.9
+Version: 2.20.10
 Summary: Radically simple IT automation
 Author: Ansible Project
 Project-URL: Homepage, https://ansible.com/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.20.9/changelogs/CHANGELOG-v2.20.rst 
new/ansible_core-2.20.10/changelogs/CHANGELOG-v2.20.rst
--- old/ansible_core-2.20.9/changelogs/CHANGELOG-v2.20.rst      2026-09-08 
18:38:56.000000000 +0200
+++ new/ansible_core-2.20.10/changelogs/CHANGELOG-v2.20.rst     2026-10-05 
17:06:40.000000000 +0200
@@ -4,6 +4,22 @@
 
 .. contents:: Topics
 
+v2.20.10
+========
+
+Release Summary
+---------------
+
+| Release Date: 2026-10-05
+| `Porting Guide 
<https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
+
+Bugfixes
+--------
+
+- ansible-connection - ensure that the connection persistent directory has 
private permissions. This covers the corner case in which the preceding 
directories do not exist or do not have private enough permissions.
+- ansible-test - Do not fail the ``validate-modules`` sanity test when a 
plugin documents an option with the ``secret`` key. The key is only honored by 
ansible-core 2.22 and later, where it masks the option value in output. It is 
ignored by earlier versions, but is now accepted by the sanity test so a 
collection can document it while still testing against those versions.
+- dnf5 module - Set the dnf ``destdir`` configuration option from 
``download_dir`` when ``download_only`` is true, as documented.
+
 v2.20.9
 =======
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.20.9/changelogs/changelog.yaml 
new/ansible_core-2.20.10/changelogs/changelog.yaml
--- old/ansible_core-2.20.9/changelogs/changelog.yaml   2026-09-08 
18:38:56.000000000 +0200
+++ new/ansible_core-2.20.10/changelogs/changelog.yaml  2026-10-05 
17:06:40.000000000 +0200
@@ -404,6 +404,42 @@
     fragments:
     - 2.20.1_summary.yaml
     release_date: '2025-12-09'
+  2.20.10:
+    changes:
+      release_summary: '| Release Date: 2026-10-05
+
+        | `Porting Guide 
<https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
+
+        '
+    codename: Good Times Bad Times
+    fragments:
+    - 2.20.10_summary.yaml
+    release_date: '2026-10-05'
+  2.20.10rc1:
+    changes:
+      bugfixes:
+      - ansible-connection - ensure that the connection persistent directory 
has private
+        permissions. This covers the corner case in which the preceding 
directories
+        do not exist or do not have private enough permissions.
+      - ansible-test - Do not fail the ``validate-modules`` sanity test when a 
plugin
+        documents an option with the ``secret`` key. The key is only honored 
by ansible-core
+        2.22 and later, where it masks the option value in output. It is 
ignored by
+        earlier versions, but is now accepted by the sanity test so a 
collection can
+        document it while still testing against those versions.
+      - dnf5 module - Set the dnf ``destdir`` configuration option from 
``download_dir``
+        when ``download_only`` is true, as documented.
+      release_summary: '| Release Date: 2026-09-29
+
+        | `Porting Guide 
<https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
+
+        '
+    codename: Good Times Bad Times
+    fragments:
+    - 2.20.10rc1_summary.yaml
+    - ansible-test-validate-modules-secret.yml
+    - dnf5-download_dir-download_only.yml
+    - ensure_conn_cli_dir_perms.yml
+    release_date: '2026-09-29'
   2.20.1rc1:
     changes:
       bugfixes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.20.9/lib/ansible/cli/scripts/ansible_connection_cli_stub.py 
new/ansible_core-2.20.10/lib/ansible/cli/scripts/ansible_connection_cli_stub.py
--- 
old/ansible_core-2.20.9/lib/ansible/cli/scripts/ansible_connection_cli_stub.py  
    2026-09-08 18:38:56.000000000 +0200
+++ 
new/ansible_core-2.20.10/lib/ansible/cli/scripts/ansible_connection_cli_stub.py 
    2026-10-05 17:06:40.000000000 +0200
@@ -24,7 +24,7 @@
 from ansible.module_utils._internal._json._profiles import _tagless
 from ansible.playbook.play_context import PlayContext
 from ansible.plugins.loader import connection_loader, init_plugin_loader
-from ansible.utils.path import unfrackpath, makedirs_safe
+from ansible.utils.path import unfrackpath
 from ansible.utils.display import Display
 from ansible.utils.jsonrpc import JsonRpcServer
 
@@ -260,7 +260,7 @@
         # create the persistent connection dir if need be and create the paths
         # which we will be using later
         tmp_path = unfrackpath(C.PERSISTENT_CONTROL_PATH_DIR)
-        makedirs_safe(tmp_path)
+        os.makedirs(tmp_path, mode=0o700, exist_ok=True)
 
         socket_path = unfrackpath(cp % dict(directory=tmp_path))
         lock_path = unfrackpath("%s/.ansible_pc_lock_%s" % 
os.path.split(socket_path))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.20.9/lib/ansible/module_utils/ansible_release.py 
new/ansible_core-2.20.10/lib/ansible/module_utils/ansible_release.py
--- old/ansible_core-2.20.9/lib/ansible/module_utils/ansible_release.py 
2026-09-08 18:38:56.000000000 +0200
+++ new/ansible_core-2.20.10/lib/ansible/module_utils/ansible_release.py        
2026-10-05 17:06:40.000000000 +0200
@@ -17,6 +17,6 @@
 
 from __future__ import annotations
 
-__version__ = '2.20.9'
+__version__ = '2.20.10'
 __author__ = 'Ansible, Inc.'
 __codename__ = "Good Times Bad Times"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.20.9/lib/ansible/modules/dnf5.py 
new/ansible_core-2.20.10/lib/ansible/modules/dnf5.py
--- old/ansible_core-2.20.9/lib/ansible/modules/dnf5.py 2026-09-08 
18:38:56.000000000 +0200
+++ new/ansible_core-2.20.10/lib/ansible/modules/dnf5.py        2026-10-05 
17:06:40.000000000 +0200
@@ -602,7 +602,7 @@
         conf.installroot = self.installroot
         conf.use_host_config = True  # needed for installroot
         conf.cacheonly = "all" if self.cacheonly else "none"
-        if self.download_dir:
+        if self.download_only and self.download_dir:
             conf.destdir = self.download_dir
 
         if self.enable_plugin:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.20.9/lib/ansible/release.py 
new/ansible_core-2.20.10/lib/ansible/release.py
--- old/ansible_core-2.20.9/lib/ansible/release.py      2026-09-08 
18:38:56.000000000 +0200
+++ new/ansible_core-2.20.10/lib/ansible/release.py     2026-10-05 
17:06:40.000000000 +0200
@@ -17,6 +17,6 @@
 
 from __future__ import annotations
 
-__version__ = '2.20.9'
+__version__ = '2.20.10'
 __author__ = 'Ansible, Inc.'
 __codename__ = "Good Times Bad Times"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.20.9/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/schema.py
 
new/ansible_core-2.20.10/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/schema.py
--- 
old/ansible_core-2.20.9/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/schema.py
   2026-09-08 18:38:56.000000000 +0200
+++ 
new/ansible_core-2.20.10/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/schema.py
  2026-10-05 17:06:40.000000000 +0200
@@ -670,6 +670,10 @@
             'cli': [cli_schema],
             'keyword': [keyword_schema],
             'deprecated': deprecated_schema,
+            # Only honored by ansible-core 2.22 and later. It is accepted here
+            # so a collection documenting it can still pass this sanity test
+            # when run under older ansible-core versions.
+            'secret': bool,
         })
 
     suboption_schema = dict(basic_option_schema)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.20.9/test/units/module_utils/urls/test_Request.py 
new/ansible_core-2.20.10/test/units/module_utils/urls/test_Request.py
--- old/ansible_core-2.20.9/test/units/module_utils/urls/test_Request.py        
2026-09-08 18:38:56.000000000 +0200
+++ new/ansible_core-2.20.10/test/units/module_utils/urls/test_Request.py       
2026-10-05 17:06:40.000000000 +0200
@@ -192,7 +192,15 @@
         if isinstance(handler, expected_handlers):
             found_handlers.append(handler)
     assert len(found_handlers) == 2
-    assert found_handlers[0].passwd.passwd[None] == {(('ansible.com', '/'),): 
('user', None)}
+
+    expected = ('user', None)
+    result = found_handlers[0].passwd.passwd[None]
+
+    assert (
+        # see https://github.com/python/cpython/issues/155694
+        result == {(('ansible.com', '/'),): expected} or  # before fix
+        result == {((None, 'ansible.com', '/'),): expected}  # after fix
+    )
 
 
 @pytest.mark.parametrize('url, expected', (
@@ -215,7 +223,14 @@
     for handler in handlers:
         if isinstance(handler, expected_handlers):
             found_handlers.append(handler)
-    assert found_handlers[0].passwd.passwd[None] == {(('ansible.com', '/'),): 
expected}
+
+    result = found_handlers[0].passwd.passwd[None]
+
+    assert (
+        # see https://github.com/python/cpython/issues/155694
+        result == {(('ansible.com', '/'),): expected} or  # before fix
+        result == {((None, 'ansible.com', '/'),): expected}  # after fix
+    )
 
 
 def test_Request_open_username_force_basic(urlopen_mock, install_opener_mock):

++++++ ansible_core-2.20.9.tar.gz.sha256 -> ansible_core-2.20.10.tar.gz.sha256 
++++++
--- 
/work/SRC/openSUSE:Factory/ansible-core-2.20/ansible_core-2.20.9.tar.gz.sha256  
    2026-09-18 22:04:33.770625373 +0200
+++ 
/work/SRC/openSUSE:Factory/.ansible-core-2.20.new.3698736/ansible_core-2.20.10.tar.gz.sha256
        2026-10-08 13:28:35.173801227 +0200
@@ -1 +1 @@
-73bcd4c3dd51b597202f8cf5a72b8e145342c7885ad21114e5979bdf629b3366  
ansible_core-2.20.9.tar.gz
+577b8d3c18e4228310a4e5180c3e133bb3955b378367077bfc643f3c21ebee5c  
ansible_core-2.20.10.tar.gz

Reply via email to