mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-06-27 10:40:22 -07:00
Prepare for version 11: pipx/pipx_info (#10137)
* Remove various deprecated module helper things. * pipx/pipx_info: pipx 1.7.0 required from c.g. 11.0.0 onwards * restore chglog frag * add changelog frag * fix chglog --------- Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
13e3aed86d
commit
a249996f91
6 changed files with 61 additions and 63 deletions
3
changelogs/fragments/10137-pipx-cg11.yml
Normal file
3
changelogs/fragments/10137-pipx-cg11.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
removed_features:
|
||||
- pipx - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137).
|
||||
- pipx_info - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137).
|
|
@ -14,9 +14,6 @@ options:
|
|||
global:
|
||||
description:
|
||||
- The module will pass the C(--global) argument to C(pipx), to execute actions in global scope.
|
||||
- The C(--global) is only available in C(pipx>=1.6.0), so make sure to have a compatible version when using this option.
|
||||
Moreover, a nasty bug with C(--global) was fixed in C(pipx==1.7.0), so it is strongly recommended you used that version
|
||||
or newer.
|
||||
type: bool
|
||||
default: false
|
||||
executable:
|
||||
|
@ -25,10 +22,9 @@ options:
|
|||
- If not specified, the module will use C(python -m pipx) to run the tool, using the same Python interpreter as ansible
|
||||
itself.
|
||||
type: path
|
||||
requirements:
|
||||
- This module requires C(pipx) version 1.7.0 or above. Please note that C(pipx) 1.7.0 requires Python 3.8 or above.
|
||||
notes:
|
||||
- This module requires C(pipx) version 0.16.2.1 or above. From community.general 11.0.0 onwards, the module will require
|
||||
C(pipx>=1.7.0).
|
||||
- Please note that C(pipx) requires Python 3.6 or above.
|
||||
- This module does not install the C(pipx) python package, however that can be easily done with the module M(ansible.builtin.pip).
|
||||
- This module does not require C(pipx) to be in the shell C(PATH), but it must be loadable by Python as a module.
|
||||
- This module will honor C(pipx) environment variables such as but not limited to E(PIPX_HOME) and E(PIPX_BIN_DIR) passed
|
||||
|
|
|
@ -211,6 +211,7 @@ version:
|
|||
from ansible_collections.community.general.plugins.module_utils.module_helper import StateModuleHelper
|
||||
from ansible_collections.community.general.plugins.module_utils.pipx import pipx_runner, pipx_common_argspec, make_process_dict
|
||||
from ansible_collections.community.general.plugins.module_utils.pkg_req import PackageRequirement
|
||||
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
|
||||
|
||||
from ansible.module_utils.facts.compat import ansible_facts
|
||||
|
||||
|
@ -293,6 +294,9 @@ class PipX(StateModuleHelper):
|
|||
rc, out, err = ctx.run()
|
||||
self.vars.version = out.strip()
|
||||
|
||||
if LooseVersion(self.vars.version) < LooseVersion("1.7.0"):
|
||||
self.do_raise("The pipx tool must be at least at version 1.7.0")
|
||||
|
||||
def __quit_module__(self):
|
||||
self.vars.application = self._retrieve_installed()
|
||||
|
||||
|
|
|
@ -127,6 +127,7 @@ version:
|
|||
|
||||
from ansible_collections.community.general.plugins.module_utils.module_helper import ModuleHelper
|
||||
from ansible_collections.community.general.plugins.module_utils.pipx import pipx_runner, pipx_common_argspec, make_process_dict
|
||||
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
|
||||
|
||||
from ansible.module_utils.facts.compat import ansible_facts
|
||||
|
||||
|
@ -156,6 +157,9 @@ class PipXInfo(ModuleHelper):
|
|||
rc, out, err = ctx.run()
|
||||
self.vars.version = out.strip()
|
||||
|
||||
if LooseVersion(self.vars.version) < LooseVersion("1.7.0"):
|
||||
self.do_raise("The pipx tool must be at least at version 1.7.0")
|
||||
|
||||
def __run__(self):
|
||||
output_process = make_process_dict(self.vars.include_injected, self.vars.include_deps)
|
||||
with self.runner('_list global', output_process=output_process) as ctx:
|
||||
|
|
|
@ -3,21 +3,13 @@
|
|||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Determine pipx level
|
||||
block:
|
||||
- name: Bail out if Python < 3.8
|
||||
when: ansible_python_version is version('3.8', '<')
|
||||
ansible.builtin.meta: end_play
|
||||
- name: Install pipx>=1.7.0
|
||||
ansible.builtin.pip:
|
||||
name: pipx>=1.7.0
|
||||
- name: Set has_pipx170 fact true
|
||||
ansible.builtin.set_fact:
|
||||
has_pipx170: true
|
||||
rescue:
|
||||
- name: Set has_pipx170 fact false
|
||||
ansible.builtin.set_fact:
|
||||
has_pipx170: false
|
||||
- name: Install pipx (no version spec)
|
||||
ansible.builtin.pip:
|
||||
name: pipx
|
||||
extra_args: --user
|
||||
|
||||
- name: Determine packaging level
|
||||
block:
|
||||
|
@ -266,10 +258,6 @@
|
|||
- name: Include testcase for issue 8656
|
||||
ansible.builtin.include_tasks: testcase-8656.yml
|
||||
|
||||
- name: Recent features
|
||||
when:
|
||||
- has_pipx170
|
||||
block:
|
||||
- name: Include testcase for PR 8793 --global
|
||||
ansible.builtin.include_tasks: testcase-8793-global.yml
|
||||
|
||||
|
|
|
@ -3,13 +3,16 @@
|
|||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: install pipx
|
||||
pip:
|
||||
name: pipx
|
||||
- name: Bail out if Python < 3.8
|
||||
when: ansible_python_version is version('3.8', '<')
|
||||
ansible.builtin.meta: end_play
|
||||
- name: Install pipx>=1.7.0
|
||||
ansible.builtin.pip:
|
||||
name: pipx>=1.7.0
|
||||
extra_args: --user
|
||||
|
||||
##############################################################################
|
||||
- name: ensure applications are uninstalled
|
||||
- name: Ensure applications are uninstalled
|
||||
community.general.pipx:
|
||||
name: "{{ item }}"
|
||||
state: absent
|
||||
|
@ -17,36 +20,36 @@
|
|||
- tox
|
||||
- pylint
|
||||
|
||||
- name: retrieve applications (empty)
|
||||
- name: Retrieve applications (empty)
|
||||
community.general.pipx_info: {}
|
||||
register: info_empty
|
||||
|
||||
- name: install application tox
|
||||
- name: Install application tox
|
||||
community.general.pipx:
|
||||
name: tox
|
||||
|
||||
- name: retrieve applications
|
||||
- name: Retrieve applications
|
||||
community.general.pipx_info: {}
|
||||
register: info_all
|
||||
|
||||
- name: retrieve applications (include_deps=true)
|
||||
- name: Retrieve applications (include_deps=true)
|
||||
community.general.pipx_info:
|
||||
include_deps: true
|
||||
register: info_all_deps
|
||||
|
||||
- name: retrieve application tox
|
||||
- name: Retrieve application tox
|
||||
community.general.pipx_info:
|
||||
name: tox
|
||||
include_deps: true
|
||||
register: info_tox
|
||||
|
||||
- name: uninstall application tox
|
||||
- name: Uninstall application tox
|
||||
community.general.pipx:
|
||||
state: absent
|
||||
name: tox
|
||||
|
||||
- name: check assertions tox
|
||||
assert:
|
||||
- name: Check assertions tox
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- info_empty.application|length == 0
|
||||
|
||||
|
@ -66,8 +69,8 @@
|
|||
- info_tox.application == info_all_deps.application
|
||||
|
||||
##############################################################################
|
||||
- name: set test applications
|
||||
set_fact:
|
||||
- name: Set test applications
|
||||
ansible.builtin.set_fact:
|
||||
apps:
|
||||
- name: tox
|
||||
source: tox==3.24.0
|
||||
|
@ -75,19 +78,19 @@
|
|||
inject_packages:
|
||||
- licenses
|
||||
|
||||
- name: ensure applications are uninstalled
|
||||
- name: Ensure applications are uninstalled
|
||||
community.general.pipx:
|
||||
name: "{{ item.name }}"
|
||||
state: absent
|
||||
loop: "{{ apps }}"
|
||||
|
||||
- name: install applications
|
||||
- name: Install applications
|
||||
community.general.pipx:
|
||||
name: "{{ item.name }}"
|
||||
source: "{{ item.source | default(omit) }}"
|
||||
loop: "{{ apps }}"
|
||||
|
||||
- name: inject packages
|
||||
- name: Inject packages
|
||||
community.general.pipx:
|
||||
state: inject
|
||||
name: "{{ item.name }}"
|
||||
|
@ -95,31 +98,31 @@
|
|||
when: "'inject_packages' in item"
|
||||
loop: "{{ apps }}"
|
||||
|
||||
- name: retrieve applications
|
||||
- name: Retrieve applications
|
||||
community.general.pipx_info: {}
|
||||
register: info2_all
|
||||
|
||||
- name: retrieve applications (include_deps=true)
|
||||
- name: Retrieve applications (include_deps=true)
|
||||
community.general.pipx_info:
|
||||
include_deps: true
|
||||
include_injected: true
|
||||
register: info2_all_deps
|
||||
|
||||
- name: retrieve application pylint
|
||||
- name: Retrieve application pylint
|
||||
community.general.pipx_info:
|
||||
name: pylint
|
||||
include_deps: true
|
||||
include_injected: true
|
||||
register: info2_lint
|
||||
|
||||
- name: ensure applications are uninstalled
|
||||
- name: Ensure applications are uninstalled
|
||||
community.general.pipx:
|
||||
name: "{{ item.name }}"
|
||||
state: absent
|
||||
loop: "{{ apps }}"
|
||||
|
||||
- name: check assertions multiple apps
|
||||
assert:
|
||||
- name: Check assertions multiple apps
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- all_apps|length == 2
|
||||
- all_apps[1].name == "tox"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue