Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ktop for openSUSE:Factory checked in at 2026-11-06 19:57:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ktop (Old) and /work/SRC/openSUSE:Factory/.ktop.new.3759290 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktop" Fri Nov 6 19:57:17 2026 rev:8 rq:1395710 version:0.6.0 Changes: -------- --- /work/SRC/openSUSE:Factory/ktop/ktop.changes 2026-01-13 21:35:07.333378371 +0100 +++ /work/SRC/openSUSE:Factory/.ktop.new.3759290/ktop.changes 2026-11-06 20:03:14.356479103 +0100 @@ -1,0 +2,114 @@ +Fri Nov 06 08:04:08 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 0.6.0: + ktop v0.6.0 introduces Kubernetes Pressure Stall Information + (PSI) resource contention metrics, a dedicated user session + directory with rotated logging (~/.ktop/), dynamic in-app table + column selection and configuration persistence + (~/.ktop/config.yaml), interactive column sorting and filtering + across subpages, major Prometheus scraper and metric store + performance optimizations, codebase modernization, and toolchain + upgrade to Go 1.27. + * PSI (Pressure Stall Information) Metrics + - Resource Contention Signals: Integrated cAdvisor/kubelet PSI + metrics (container_pressure_cpu_waiting_seconds_total, + container_pressure_memory_waiting_seconds_total, + container_pressure_io_waiting_seconds_total) across node and + pod workloads. + - Overview STALL Column: Added a STALL column to Nodes and Pods + overview tables rendering the dominant waiting stall + percentage (CPU, Memory, or I/O) over the scrape window. + - Cluster Summary Stall Gauge: Added cluster-level PSI stall + metrics to the Cluster Summary header. + - Version Guardrails: Added runtime version checks that surface + ⚠ PSI beta in the cluster header when Kubernetes is <1.36 and + prefix STALL values with ⚠ 0% when node kernels are <4.20. + * User Session Directory & Rotated Logging (~/.ktop/) + - Session Directory: Introduced automatic creation of ~/.ktop/ + (mode 0700) for user-specific data, relocatable via the + $KTOP_DIR environment variable. + - Rotated Structured Logging: Integrated log/slog and + lumberjack.v2 writing to ~/.ktop/ktop.log (mode 0600) with + automatic 10MB rotation, retaining the last 3 sessions + without interfering with the terminal display. + - CLI Logging Flags: Added --log-level (debug, info, warn, + error) and --log-format (text, json) flags. + - Graceful Degradation: Application continues running cleanly + if directory or file creation fails due to restrictive + filesystem permissions. + * Dynamic Column Configuration & Persistence + (~/.ktop/config.yaml) + - Interactive Column Selector Modal: Added interactive column + selection dialog triggered via the = hotkey on focused + overview tables, supporting Space toggle, Enter apply, and + Esc cancel. + - Active Default Columns: Enforced compact default column + layouts for Nodes (NAME, STATUS, RST, PODS, DISK, CPU, MEM) + and Pods (NAMESPACE, POD, READY, STATUS, RST, AGE, CPU, + MEMORY), preventing horizontal table sprawling on standard + terminals unless explicitly requested with + --show-all-columns. + - Configuration Schema: Introduced ~/.ktop/config.yaml + supporting table column customizations with resolved defaults + for metrics collection and logging. + - Automatic Persistence: Column selections passed via CLI flags + (--node-columns, --pod-columns) or modified via the + interactive modal automatically persist to + ~/.ktop/config.yaml. + - Modal Event Isolation: Isolated modal input capture so + dismissing the column dialog with Esc restores table focus + without triggering application-level exit. + * Subpage Navigation, Sorting & UI Consolidation + - Shared Table Controller: Extracted reusable + ui.TableController encapsulating sort toggling, shortcut key + binding, slash / filter lifecycle, and scroll titles. + - Node Detail Pods Sorting & Filtering: Enabled interactive + column sorting (c CPU, m MEM, n NAMESPACE, p POD, s STATUS, r + RESTARTS, d READY, a AGE) and / slash filtering on the Node + Detail Pods table. + - Header Shortcut Collision Fix: Renamed Node Detail Pods + second column from NAME to POD, matching the Overview page + and fixing the hotkey collision on 'N' with NAMESPACE. + - Format Consolidation: Unified detail formatting utilities + (FormatCPU, FormatMemory, FormatDuration, FormatEventAge, + Truncate, AdaptiveRateMax, CycleFocus) into ui/format.go. + * Performance & Scraper Optimizations + - Scraper Loop Deduplication: Eliminated duplicate background + scrape goroutines in KubernetesScraper, halving proxy scrape + traffic to node kubelets and cAdvisor endpoints. + - O(S) Pod Metrics Aggregation: Rewrote GetAllPodMetrics from + an O ( N ns × N pods × N series ) Cartesian scan into a + single-pass O ( S ) aggregation grouped by (namespace, pod, + container). + - Node Metric Query Deduplication: Reused existing node metrics + during overview and summary refresh cycles to avoid duplicate + queries. + - Pod-to-Node Indexing: Pre-indexed pods by Spec.NodeName in O + ( P ) when constructing node models. + - Sparkline Memory Leak Fix: Added automatic eviction of + deleted pods and nodes from memory sparkline maps. + - InitContainer Metric Correctness: Corrected CPU request + accounting in GetPodContainerSummary for pods configured with + init containers. + - Informer Resilience & RBAC Fallback: Replaced background + informer sync panics with graceful error recovery, supporting + namespace-scoped RBAC clusters. + - TUI Concurrency Deadlock Fix: Switched refresh queue delivery + to non-blocking sends and debounced filter inputs to + eliminate UI freezes. + * Codebase Simplification & Toolchain Modernization + - Dead Code Removal: Removed unused views/pod/logs.go and + deprecated metrics informer/lister infrastructure in k8s/. + - Direct Metric Summation: Eliminated redundant + v1beta1.PodMetrics round-trip conversion in + MainPanel.refreshPods. + - Go 1.27 Toolchain: Upgraded module toolchain to Go 1.27 + across go.mod, Dockerfile, and GitHub Actions workflows. + - Standard Library Idioms: Modernized codebase to use + slices.Sort, slices.Contains, slices.Clone, and standardized + error wrapping with %w. + - Multi-OS CI Matrix: Expanded GitHub Actions CI test suite to + validate builds and tests across Linux, macOS, and Windows + (windows-latest). + +------------------------------------------------------------------- Old: ---- ktop-0.5.3.obscpio New: ---- ktop-0.6.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ktop.spec ++++++ --- /var/tmp/diff_new_pack.mVBgJr/_old 2026-11-06 20:03:16.824582462 +0100 +++ /var/tmp/diff_new_pack.mVBgJr/_new 2026-11-06 20:03:16.830582713 +0100 @@ -17,14 +17,14 @@ Name: ktop -Version: 0.5.3 +Version: 0.6.0 Release: 0 Summary: A top-like tool for your Kubernetes clusters License: Apache-2.0 URL: https://github.com/vladimirvivien/ktop Source: ktop-%{version}.tar.gz Source1: vendor.tar.gz -BuildRequires: golang(API) >= 1.24 +BuildRequires: golang(API) >= 1.27 %description A top-like tool for your Kubernetes cluster. @@ -46,6 +46,10 @@ # Install the binary. install -D -m 0755 %{name} %{buildroot}/%{_bindir}/%{name} +%check +# make sure the binary is a proper executable +%{buildroot}/%{_bindir}/%{name} --help + %files %doc README.md %license LICENSE ++++++ _service ++++++ --- /var/tmp/diff_new_pack.mVBgJr/_old 2026-11-06 20:03:16.882584891 +0100 +++ /var/tmp/diff_new_pack.mVBgJr/_new 2026-11-06 20:03:16.889585184 +0100 @@ -1,9 +1,9 @@ <services> <service name="obs_scm" mode="manual"> - <param name="url">https://github.com/vladimirvivien/ktop</param> + <param name="url">https://github.com/vladimirvivien/ktop.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.5.3</param> + <param name="revision">refs/tags/v0.6.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.mVBgJr/_old 2026-11-06 20:03:16.940587320 +0100 +++ /var/tmp/diff_new_pack.mVBgJr/_new 2026-11-06 20:03:16.946587571 +0100 @@ -1,6 +1,8 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/vladimirvivien/ktop</param> - <param name="changesrevision">741794d89c63c4e9898e31d14799317ee4aa7cfb</param></service></servicedata> + <param name="changesrevision">741794d89c63c4e9898e31d14799317ee4aa7cfb</param></service><service name="tar_scm"> + <param name="url">https://github.com/vladimirvivien/ktop.git</param> + <param name="changesrevision">d57cd4d5f2ebbee23e9d97263db8ca10c4bf5579</param></service></servicedata> (No newline at EOF) ++++++ ktop-0.5.3.obscpio -> ktop-0.6.0.obscpio ++++++ ++++ 10181 lines of diff (skipped) ++++++ ktop.obsinfo ++++++ --- /var/tmp/diff_new_pack.mVBgJr/_old 2026-11-06 20:03:17.338603988 +0100 +++ /var/tmp/diff_new_pack.mVBgJr/_new 2026-11-06 20:03:17.349604448 +0100 @@ -1,5 +1,5 @@ name: ktop -version: 0.5.3 -mtime: 1768175176 -commit: 741794d89c63c4e9898e31d14799317ee4aa7cfb +version: 0.6.0 +mtime: 1793934631 +commit: d57cd4d5f2ebbee23e9d97263db8ca10c4bf5579 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/ktop/vendor.tar.gz /work/SRC/openSUSE:Factory/.ktop.new.3759290/vendor.tar.gz differ: char 29, line 1
