Provide ansible-core extra

Fixes #947.
pull/948/head
Konrad Borowski 2 years ago
parent ec212a10d8
commit ef34d073b9

@ -20,13 +20,14 @@ To avail of fixes in an unreleased version, please download a ZIP file
Unreleased
----------
* :gh:issue:`947` Provide `ansible-core` extra which installs compatible version of ansible-core
v0.3.4 (2023-07-02)
-------------------
* :gh:issue:`929` Support Ansible 6 and ansible-core 2.13
* :gh:issue:`832` Fix runtime error when using the ansible.builtin.dnf module multiple times
* :gh:issue:`925` :class:`ansible_mitogen.connection.Connection` no longer tries to close the
* :gh:issue:`925` :class:`ansible_mitogen.connection.Connection` no longer tries to close the
connection on destruction. This is expected to reduce cases of `mitogen.core.Error: An attempt
was made to enqueue a message with a Broker that has already exitted`. However it may result in
resource leaks.

@ -31,15 +31,39 @@ import os
from setuptools import find_packages, setup
def parse_assignment(line, starts_with):
if line.startswith(starts_with):
_, _, s = line.partition('=')
parts = ast.literal_eval(s.strip())
return parts
return None
def grep_version():
path = os.path.join(os.path.dirname(__file__), 'mitogen/__init__.py')
with open(path) as fp:
for line in fp:
if line.startswith('__version__'):
_, _, s = line.partition('=')
parts = ast.literal_eval(s.strip())
return '.'.join(str(part) for part in parts)
parts = parse_assignment(line, '__version__')
if parts:
return '.'.join(map(str, parts))
def ansible_core_version():
path = os.path.join(os.path.dirname(__file__), 'ansible_mitogen/loaders.py')
min_version = None
with open(path) as fp:
for line in fp:
ansible_version_min = parse_assignment(line, 'ANSIBLE_VERSION_MIN')
if ansible_version_min:
# ansible-core's minimum version is 2.11, older versions were
# called ansible-base.
if ansible_version_min == (2, 10):
ansible_version_min = (2, 11)
min_version = '.'.join(map(str, ansible_version_min))
ansible_version_max = parse_assignment(line, 'ANSIBLE_VERSION_MAX')
if ansible_version_max:
major, minor = ansible_version_max
return (min_version, '{}.{}'.format(major, minor + 1))
def long_description():
@ -81,4 +105,7 @@ setup(
'Topic :: System :: Distributed Computing',
'Topic :: System :: Systems Administration',
],
extras_require = {
'ansible-core': ['ansible-core>={},<{}'.format(*ansible_core_version())],
},
)

Loading…
Cancel
Save