Skip to content

apt: surface phased-update holdbacks in Upgrade conflicts (fixes #9 feedback) - #12

Merged
padovanl merged 2 commits into
mainfrom
develop
Sep 1, 2026
Merged

padovanl merged 2 commits into
mainfrom
develop

Conversation

@padovanl

@padovanl padovanl commented Sep 1, 2026

Copy link
Copy Markdown
Owner

What

Extends the X (Upgrade conflicts) screen in the apt backend to also detect and report packages held back by Ubuntu's phased-update rollout, not just the existing dependency-based holdbacks.

Why

Feedback on #9 (post-merge testing of the Flatpak/Homebrew/MacPorts release) reported that packages deferred by Ubuntu's phased rollout showed up as plain "Upgrade available" everywhere, with no indication that neither a plain apt-get upgrade nor dist-upgrade (what "Upgrade all" uses) will actually touch them until the rollout reaches that machine — apt list --upgradable lists them regardless of phasing, so pkgtui inherited the same misleading signal.

Changes

  • internal/apt/apt.go: new parsePhasedOutput, parsing apt-get upgrade -s's "The following upgrades have been deferred due to phasing:" section; UpgradeConflicts() now reports these alongside dependency-based holdbacks, each with its own reason string. Shared indentation-parsing logic factored into parseNamesUnderMarker.
  • internal/apt/apt_test.go: coverage for the new parser (with and without phased packages present).
  • README.md / docs/index.html: updated the Upgrade conflicts feature description and keybinding table to mention phased-update detection.
  • CHANGELOG.md: new "Fixed" entry under Unreleased.

Testing

  • go build ./..., go vet ./..., go test ./... all pass.
  • Verified UpgradeConflicts() against this machine's real apt-get upgrade -s output (existing dependency-holdback packages still detected correctly); no live phased package was available locally to exercise that branch end-to-end, but the parser is covered by unit tests against apt's documented real output format.

Closes the remaining feedback item on #9.

Packages Ubuntu's phased rollout is holding back from this machine were
shown as plain "upgrade available" with no indication that "upgrade
all" (dist-upgrade) won't actually touch them, since phasing applies
regardless of upgrade mode. UpgradeConflicts (X) now also parses
apt-get upgrade -s's "deferred due to phasing" section, alongside the
existing dependency-holdback one.

Addresses the remaining item reported in #9.
@padovanl
padovanl merged commit 7610727 into main Sep 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant