[PR #11838/d0d213a4 backport][stable-12] homebrew_cask: fix false failure on upgrade of latest-versioned casks (#11880)

homebrew_cask: fix false failure on upgrade of latest-versioned casks (#11838)

* homebrew_cask: fix false failure on upgrade of latest-versioned casks

Use rc == 0 to determine upgrade success, consistent with _upgrade_all().
The previous check (_current_cask_is_installed() and not _current_cask_is_outdated())
was unreliable: for `latest`-versioned casks under --greedy, brew may still
list the cask as outdated after a successful upgrade, causing the task to fail
with a harmless warning from stderr as the error message.

Fixes #1647



* homebrew_cask: add changelog fragment for #11838



* Fix changelog fragment

---------


(cherry picked from commit d0d213a41d)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
patchback[bot]
2026-04-19 12:49:23 +02:00
committed by GitHub
parent 09201bf49e
commit 6458abb9c1
2 changed files with 7 additions and 1 deletions

View File

@@ -0,0 +1,6 @@
bugfixes:
- homebrew_cask - fix false task failure when upgrading casks with ``version=latest``;
the post-upgrade check incorrectly re-ran ``brew outdated`` (which always lists ``latest``
casks as outdated under ``--greedy``), now uses the command exit code instead
(https://github.com/ansible-collections/community.general/issues/1647,
https://github.com/ansible-collections/community.general/pull/11838).

View File

@@ -656,7 +656,7 @@ class HomebrewCask:
else:
rc, out, err = self.module.run_command(cmd)
if self._current_cask_is_installed() and not self._current_cask_is_outdated():
if rc == 0:
self.changed_count += 1
self.changed = True
self.message = f"Cask upgraded: {self.current_cask}"