aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/updates
AgeCommit message (Collapse)AuthorFilesLines
8 daysfeat(updates): a page that reads at a glanceDanilo M.1-30/+106
The first cut was small type in one long list: 471 Slackware upgrades pushed everything below them out of sight, and the repo tag, the versions and the name ran together across the row. Type is 2px larger and rows taller. A section over ten rows starts folded behind a clickable heading with its count. The version being moved to is bright, the one being left dim, both in Inconsolata so digits line up. Every other row is shaded to carry the eye across, and the repo is a pill in one colour per repo, never red, green, yellow or the accent, which mean something elsewhere. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysdocs(updates): the module's READMEDanilo M.1-0/+32
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysfeat(updates): the drawer tile and pageDanilo M.2-0/+228
The tile counts what can be installed now (Slackware and the binary repo) and what only needs a build, and goes accent when there is something to install. It runs updatesctl while the drawer is open and not otherwise; a result over 30 minutes old is followed by a refresh that runs nvchecker, never after a refresh, so a failing nvchecker cannot loop. The page has one section per next action: Slackware upgrades, new and removed first, then upgrade here, awaiting build, upstream newer, app updates, the order the work is done in. Each row names the package, the repo it comes from and the one version jump its action covers. A source that could not be read says so under the section it empties instead of reading as nothing pending. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysfix(updates): review findings in updatesctlDanilo M.2-12/+27
A git hash starting with a letter (3.1-a59215d) ordered behind its base, because any trailing alphabetic chunk counted as a pre-release; only alpha, beta, rc, pre and dev do now. Trailing zeros (1.14 against 1.14.0) compare equal instead of reading as an upstream bump. A bad line in the slackpkg blacklist is skipped rather than crashing the script and leaving the drawer with nothing. An AppImage keeps its key over a flatpak of the same name, as the spec orders them, and flatpak list has a timeout. A Slackware upgrade compares version and build, so an arch change alone is not a row. The spec's prose now matches the code: the upstream comparison includes the installed version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysfix(updates): drop a redundant clause, test the mirror blacklistDanilo M.2-2/+3
The awaiting-build branch also required the build to be older than upstream, which cannot fail there: a build newer than installed was already taken as an upgrade, so the build is at most the installed version, which is behind upstream whenever a row is emitted. Removing it left every test passing, which is how it was found. The blacklisted testing/ entry sat after the main one in the fixture, so setdefault kept the main one and the mirror-side blacklist was never exercised; it now comes first, and dropping the check fails the test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daystest(updates): a hung NFS read reports unreachableDanilo M.1-0/+12
A fifo with no writer blocks cat at open() the way a hard NFS mount blocks during a NAS outage. The repo section reports unreachable within the timeout and the mirror sections still fill. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
8 daysfeat(updates): Slackware upgrades, new and removed packagesDanilo M.2-1/+92
Compared mirror against installed, as upgrade-all does, not against slackpkg's local ChangeLog: `slackpkg update` replaces that without installing anything, so a diff against it reads clean after an update that was never applied. New and removed come from the mirror's ChangeLog, the newest Added or Removed line deciding, so a package added and later upgraded still counts as new. Blacklisted build tags and directories are skipped, as slackpkg skips them. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
8 daysfeat(updates): sort tracked packages into the next actionDanilo M.2-1/+351
Each nvchecker stanza lands in one section: upgrade here when the binary repo's PACKAGES.TXT holds a newer build than installed, awaiting build when the recipe (the user's or SBo's) has caught up but the build has not, upstream newer when the recipe lags, app updates for AppImages and flatpaks. Built comes from PACKAGES.TXT rather than the .info, which is why gamescope and kitty no longer read as installable: the repo still held the old build. The repo is on a hard NFS mount, so it is read by a child the timeout can kill. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
8 daysfeat(updates): version order for updatesctlDanilo M.2-0/+117
nvtable compares versions for equality, which cannot tell an installed 2.1.278 from an SBo recipe of 2.1.267 that is older than it. vercmp orders numeric chunks as numbers and treats a trailing alphabetic chunk as a pre-release, so a kernel suffix or git hash orders as newer than its base and never reads as behind. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>