mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
[PR #6303/996fc8c1 backport][stable-6] pipx: fix state=latest w/ install_deps=true (#6377)
pipx: fix state=latest w/ install_deps=true (#6303)
* pipx and pipx_info: Document that modules require pipx 0.16.2.1 or above
Since their introduction, these modules rely on 'pipx list --json' to
return machine-readable output about installed pipx applications. That
functionality was introduced in 0.16.2, along with a critical bug fix
(invalid json) in 0.16.2.1.
* pipx: fix state=latest with install_deps=true
"pipx upgrade" stopped supporting the "--include-deps" option
("install_deps" in the ansible module) in pipx 0.15
(https://pypa.github.io/pipx/changelog/#01500).
The lack of support causes the pipx module to fail if attempting to use
state=latest with install_deps, since the parameter is passed to both
pipx install (fine) and pipx upgrade (fails).
* Add changelog fragment
(cherry picked from commit 996fc8c18e
)
Co-authored-by: Paul Aurich <paul@darkrain42.org>
This commit is contained in:
parent
40b5967fc3
commit
d393b16064
4 changed files with 24 additions and 3 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- pipx - fixed handling of ``install_deps=true`` with ``state=latest`` and ``state=upgrade`` (https://github.com/ansible-collections/community.general/pull/6303).
|
|
@ -57,7 +57,7 @@ options:
|
||||||
install_deps:
|
install_deps:
|
||||||
description:
|
description:
|
||||||
- Include applications of dependent packages.
|
- Include applications of dependent packages.
|
||||||
- Only used when I(state=install), I(state=latest), I(state=upgrade), or I(state=inject).
|
- Only used when I(state=install), I(state=latest), or I(state=inject).
|
||||||
type: bool
|
type: bool
|
||||||
default: false
|
default: false
|
||||||
inject_packages:
|
inject_packages:
|
||||||
|
@ -120,6 +120,7 @@ notes:
|
||||||
- >
|
- >
|
||||||
This module will honor C(pipx) environment variables such as but not limited to C(PIPX_HOME) and C(PIPX_BIN_DIR)
|
This module will honor C(pipx) environment variables such as but not limited to C(PIPX_HOME) and C(PIPX_BIN_DIR)
|
||||||
passed using the R(environment Ansible keyword, playbooks_environment).
|
passed using the R(environment Ansible keyword, playbooks_environment).
|
||||||
|
- This module requires C(pipx) version 0.16.2.1 or above.
|
||||||
- Please note that C(pipx) requires Python 3.6 or above.
|
- Please note that C(pipx) requires Python 3.6 or above.
|
||||||
- >
|
- >
|
||||||
This first implementation does not verify whether a specified version constraint has been installed or not.
|
This first implementation does not verify whether a specified version constraint has been installed or not.
|
||||||
|
@ -263,7 +264,7 @@ class PipX(StateModuleHelper):
|
||||||
if self.vars.force:
|
if self.vars.force:
|
||||||
self.changed = True
|
self.changed = True
|
||||||
|
|
||||||
with self.runner('state include_injected index_url install_deps force editable pip_args name', check_mode_skip=True) as ctx:
|
with self.runner('state include_injected index_url force editable pip_args name', check_mode_skip=True) as ctx:
|
||||||
ctx.run()
|
ctx.run()
|
||||||
self._capture_results(ctx)
|
self._capture_results(ctx)
|
||||||
|
|
||||||
|
@ -316,7 +317,7 @@ class PipX(StateModuleHelper):
|
||||||
ctx.run(state='install', name_source=[self.vars.name, self.vars.source])
|
ctx.run(state='install', name_source=[self.vars.name, self.vars.source])
|
||||||
self._capture_results(ctx)
|
self._capture_results(ctx)
|
||||||
|
|
||||||
with self.runner('state include_injected index_url install_deps force editable pip_args name', check_mode_skip=True) as ctx:
|
with self.runner('state include_injected index_url force editable pip_args name', check_mode_skip=True) as ctx:
|
||||||
ctx.run(state='upgrade')
|
ctx.run(state='upgrade')
|
||||||
self._capture_results(ctx)
|
self._capture_results(ctx)
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@ notes:
|
||||||
- >
|
- >
|
||||||
This module will honor C(pipx) environment variables such as but not limited to C(PIPX_HOME) and C(PIPX_BIN_DIR)
|
This module will honor C(pipx) environment variables such as but not limited to C(PIPX_HOME) and C(PIPX_BIN_DIR)
|
||||||
passed using the R(environment Ansible keyword, playbooks_environment).
|
passed using the R(environment Ansible keyword, playbooks_environment).
|
||||||
|
- This module requires C(pipx) version 0.16.2.1 or above.
|
||||||
- Please note that C(pipx) requires Python 3.6 or above.
|
- Please note that C(pipx) requires Python 3.6 or above.
|
||||||
- See also the C(pipx) documentation at U(https://pypa.github.io/pipx/).
|
- See also the C(pipx) documentation at U(https://pypa.github.io/pipx/).
|
||||||
author:
|
author:
|
||||||
|
|
|
@ -184,6 +184,19 @@
|
||||||
name: tox
|
name: tox
|
||||||
register: uninstall_tox_latest_again
|
register: uninstall_tox_latest_again
|
||||||
|
|
||||||
|
- name: install application tox with deps
|
||||||
|
community.general.pipx:
|
||||||
|
state: latest
|
||||||
|
name: tox
|
||||||
|
install_deps: true
|
||||||
|
register: install_tox_with_deps
|
||||||
|
|
||||||
|
- name: cleanup tox latest yet again
|
||||||
|
community.general.pipx:
|
||||||
|
state: absent
|
||||||
|
name: tox
|
||||||
|
register: uninstall_tox_again
|
||||||
|
|
||||||
- name: check assertions tox latest
|
- name: check assertions tox latest
|
||||||
assert:
|
assert:
|
||||||
that:
|
that:
|
||||||
|
@ -198,6 +211,10 @@
|
||||||
- install_tox_latest_with_preinstall_again_force is changed
|
- install_tox_latest_with_preinstall_again_force is changed
|
||||||
- install_tox_latest_with_preinstall_again_force.application.tox.version == latest_tox_version
|
- install_tox_latest_with_preinstall_again_force.application.tox.version == latest_tox_version
|
||||||
- uninstall_tox_latest_again is changed
|
- uninstall_tox_latest_again is changed
|
||||||
|
- install_tox_with_deps is changed
|
||||||
|
- install_tox_with_deps.application.tox.version == latest_tox_version
|
||||||
|
- uninstall_tox_again is changed
|
||||||
|
- "'tox' not in uninstall_tox_again.application"
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
- name: ensure application ansible-lint is uninstalled
|
- name: ensure application ansible-lint is uninstalled
|
||||||
|
|
Loading…
Reference in a new issue