diff --git a/ansible_mitogen/loaders.py b/ansible_mitogen/loaders.py index 123dd4ac..9597e3ee 100644 --- a/ansible_mitogen/loaders.py +++ b/ansible_mitogen/loaders.py @@ -49,7 +49,7 @@ __all__ = [ ANSIBLE_VERSION_MIN = (2, 10) -ANSIBLE_VERSION_MAX = (2, 18) +ANSIBLE_VERSION_MAX = (2, 19) NEW_VERSION_MSG = ( "Your Ansible version (%s) is too recent. The most recent version\n" diff --git a/ansible_mitogen/utils/unsafe.py b/ansible_mitogen/utils/unsafe.py index b2c3d533..c1bdaee7 100644 --- a/ansible_mitogen/utils/unsafe.py +++ b/ansible_mitogen/utils/unsafe.py @@ -31,7 +31,12 @@ _CAST_DISPATCH = { } _CAST_DISPATCH.update({t: _passthrough for t in mitogen.utils.PASSTHROUGH}) -if hasattr(ansible.utils.unsafe_proxy.AnsibleUnsafeText, '_strip_unsafe'): +if ansible_mitogen.utils.ansible_version[:2] >= (2, 19): + _CAST_DISPATCH.update({ + ansible.utils.unsafe_proxy.AnsibleUnsafeBytes: bytes, + ansible.utils.unsafe_proxy.AnsibleUnsafeText: mitogen.core.UnicodeType, + }) +elif hasattr(ansible.utils.unsafe_proxy.AnsibleUnsafeText, '_strip_unsafe'): _CAST_DISPATCH.update({ ansible.utils.unsafe_proxy.AnsibleUnsafeBytes: _cast_unsafe, ansible.utils.unsafe_proxy.AnsibleUnsafeText: _cast_unsafe, diff --git a/docs/changelog.rst b/docs/changelog.rst index 69755988..9f059eed 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -21,6 +21,7 @@ To avail of fixes in an unreleased version, please download a ZIP file In progress (unreleased) ------------------------ +* :gh:issue:`1258` Initial Ansible 12 (ansible-core 2.19) support v0.3.24 (2025-05-29) diff --git a/tox.ini b/tox.ini index ddb8c88d..67d6cf45 100644 --- a/tox.ini +++ b/tox.ini @@ -47,6 +47,7 @@ # ansible == 9.x ansible-core ~= 2.16.0 # ansible == 10.x ansible-core ~= 2.17.0 # ansible == 11.x ansible-core ~= 2.18.0 +# ansible == 12.x ansible-core ~= 2.19.0 # See also # - https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix @@ -56,7 +57,7 @@ envlist = init, py{27,36}-mode_ansible-ansible{2.10,3,4}, py{311}-mode_ansible-ansible{2.10,3,4,5}, - py{313}-mode_ansible-ansible{6,7,8,9,10,11}, + py{313}-mode_ansible-ansible{6,7,8,9,10,11,12}, py{27,36,313}-mode_mitogen, report, @@ -85,7 +86,8 @@ deps = ansible8: ansible~=8.0 ansible9: ansible~=9.0 ansible10: ansible~=10.0 - ansible11: ansible>=11.0 + ansible11: ansible~=11.0 + ansible12: ansible>=12.0a install_command = python -m pip --no-python-version-warning --disable-pip-version-check install {opts} {packages} commands_pre = @@ -118,6 +120,7 @@ setenv = ansible10: MITOGEN_TEST_DISTRO_SPECS=debian10-py3 debian11-py3 ubuntu2004-py3 # Ansible 11 (ansible-core 2.18) requires Python >= 3.8 on targets ansible11: MITOGEN_TEST_DISTRO_SPECS=debian11-py3 ubuntu2004-py3 + ansible12: MITOGEN_TEST_DISTRO_SPECS=debian11-py3 ubuntu2004-py3 distros_centos: MITOGEN_TEST_DISTRO_SPECS=centos6 centos7 centos8 distros_centos5: MITOGEN_TEST_DISTRO_SPECS=centos5 distros_centos6: MITOGEN_TEST_DISTRO_SPECS=centos6