From 766ce6ff1ea584dfe980a5e0b29251768c4c0726 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 21 Oct 2026 11:36:01 +0200 Subject: sbb-remote 0.12.0: named builds, per-package job results, prune - Packages: named packages run slackrepo build, which also updates outdated ones; update on a named item finds only already-built packages. The per-row Update action is gone, Update all stays. - A real slackrepo job reads its items' buildresults rows into the job's results and is failed when any item failed, aborted or was bad: slackrepo itself exits 0. The notification names the failed items; a Build results dialog lists every item with its log and Retry failed, reopenable from the Jobs ribbon. - slackrepo prune: the helper lists built items whose SlackBuild is gone and runs slackrepo remove on them, without an Update all. stats gives the count; Packages gets a Prune action, the Built tile a 'to prune' note. Remove and prune ask for confirmation at Run it. Co-Authored-By: Claude Opus 5.5 --- sb_builder/dashboard.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sb_builder/dashboard.py') diff --git a/sb_builder/dashboard.py b/sb_builder/dashboard.py index 0d68d6f..c70258c 100644 --- a/sb_builder/dashboard.py +++ b/sb_builder/dashboard.py @@ -327,6 +327,8 @@ class Dashboard(QWidget): t["Built"].set(NA, "no slackrepo database") else: never = "" if p is None else f" · {num(p['total'] - sr['built'])} never built" + if s.get("prunable"): + never += f" · {num(s['prunable'])} to prune" t["Built"].set(num(sr["built"]), f"of {num(p and p['total'])}{never}") known = [ts for ts in sync.values() if ts is not None] t["Last pull"].set(fmt_age(min(known)) if known else NA, -- cgit v1.2.3