Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package k9s for openSUSE:Factory checked in 
at 2025-09-29 16:32:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/k9s (Old)
 and      /work/SRC/openSUSE:Factory/.k9s.new.11973 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "k9s"

Mon Sep 29 16:32:39 2025 rev:65 rq:1307581 version:0.50.13

Changes:
--------
--- /work/SRC/openSUSE:Factory/k9s/k9s.changes  2025-09-20 22:04:48.856517860 
+0200
+++ /work/SRC/openSUSE:Factory/.k9s.new.11973/k9s.changes       2025-09-29 
16:34:51.209030637 +0200
@@ -1,0 +2,14 @@
+Sun Sep 28 14:55:04 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- update to 0.50.13:
+  * Resolved Issues
+    - #3587 UI doesn't show any updates when restarting a
+      Deployment
+    - #3585 abbreviation sec for secret not working
+    - #3584 Show managed fields doesn't show them
+    - #3583 Cannot open shell to pods without node read access as
+      of 0.50.12
+    - #3577 Log view is broken as of v0.50.10
+    - #3574 Aliases for pods with label filters not working
+
+-------------------------------------------------------------------

Old:
----
  k9s-0.50.12.obscpio

New:
----
  k9s-0.50.13.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ k9s.spec ++++++
--- /var/tmp/diff_new_pack.Bey7k7/_old  2025-09-29 16:34:53.381122081 +0200
+++ /var/tmp/diff_new_pack.Bey7k7/_new  2025-09-29 16:34:53.381122081 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           k9s
-Version:        0.50.12
+Version:        0.50.13
 Release:        0
 Summary:        Curses based terminal UI for Kubernetes clusters
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.Bey7k7/_old  2025-09-29 16:34:53.417123596 +0200
+++ /var/tmp/diff_new_pack.Bey7k7/_new  2025-09-29 16:34:53.421123765 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/derailed/k9s.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.50.12</param>
+    <param name="revision">v0.50.13</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">disable</param>

++++++ k9s-0.50.12.obscpio -> k9s-0.50.13.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/Makefile new/k9s-0.50.13/Makefile
--- old/k9s-0.50.12/Makefile    2025-09-19 16:36:53.000000000 +0200
+++ new/k9s-0.50.13/Makefile    2025-09-27 17:16:36.000000000 +0200
@@ -1,5 +1,5 @@
 NAME            := k9s
-VERSION         ?= v0.50.12
+VERSION         ?= v0.50.13
 PACKAGE         := github.com/derailed/$(NAME)
 OUTPUT_BIN      ?= execs/${NAME}
 GO_FLAGS        ?=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/change_logs/release_v0.50.13.md 
new/k9s-0.50.13/change_logs/release_v0.50.13.md
--- old/k9s-0.50.12/change_logs/release_v0.50.13.md     1970-01-01 
01:00:00.000000000 +0100
+++ new/k9s-0.50.13/change_logs/release_v0.50.13.md     2025-09-27 
17:16:36.000000000 +0200
@@ -0,0 +1,32 @@
+<img 
src="https://raw.githubusercontent.com/derailed/k9s/master/assets/k9s.png"; 
align="center" width="800" height="auto"/>
+
+# Release v0.50.13
+
+## Notes
+
+Thank you to all that contributed with flushing out issues and enhancements 
for K9s!
+I'll try to mark some of these issues as fixed. But if you don't mind grab the 
latest rev
+and see if we're happier with some of the fixes!
+If you've filed an issue please help me verify and close.
+
+Your support, kindness and awesome suggestions to make K9s better are, as 
ever, very much noted and appreciated!
+Also big thanks to all that have allocated their own time to help others on 
both slack and on this repo!!
+
+As you may know, K9s is not pimped out by corps with deep pockets, thus if you 
feel K9s is helping your Kubernetes journey,
+please consider joining our [sponsorship 
program](https://github.com/sponsors/derailed) and/or make some noise on 
social! [@kitesurfer](https://twitter.com/kitesurfer)
+
+On Slack? Please join us 
[K9slackers](https://join.slack.com/t/k9sers/shared_invite/zt-3360a389v-ElLHrb0Dp1kAXqYUItSAFA)
+
+## Maintenance Release!
+
+## Resolved Issues
+
+* [#3587](https://github.com/derailed/k9s/issues/3587) UI doesn't show any 
updates when restarting a Deployment
+* [#3585](https://github.com/derailed/k9s/issues/3585) abbreviation sec for 
secret not working
+* [#3584](https://github.com/derailed/k9s/issues/3584) Show managed fields 
doesn't show them
+* [#3583](https://github.com/derailed/k9s/issues/3583) Cannot open shell to 
pods without node read access as of 0.50.12
+* [#3577](https://github.com/derailed/k9s/issues/3577) Log view is broken as 
of v0.50.10
+* [#3574](https://github.com/derailed/k9s/issues/3574) Aliases for pods with 
label filters not working
+
+---
+<img 
src="https://raw.githubusercontent.com/derailed/k9s/master/assets/imhotep_logo.png";
 width="32" height="auto"/> © 2025 Imhotep Software LLC. All materials licensed 
under [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0)#
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/go.mod new/k9s-0.50.13/go.mod
--- old/k9s-0.50.12/go.mod      2025-09-19 16:36:53.000000000 +0200
+++ new/k9s-0.50.13/go.mod      2025-09-27 17:16:36.000000000 +0200
@@ -19,7 +19,7 @@
        github.com/lmittmann/tint v1.0.7
        github.com/mattn/go-colorable v0.1.14
        github.com/mattn/go-runewidth v0.0.16
-       github.com/olekukonko/tablewriter v1.0.9
+       github.com/olekukonko/tablewriter v1.1.0
        github.com/petergtz/pegomock v2.9.0+incompatible
        github.com/rakyll/hey v0.1.4
        github.com/sahilm/fuzzy v0.1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/go.sum new/k9s-0.50.13/go.sum
--- old/k9s-0.50.12/go.sum      2025-09-19 16:36:53.000000000 +0200
+++ new/k9s-0.50.13/go.sum      2025-09-27 17:16:36.000000000 +0200
@@ -910,8 +910,8 @@
 github.com/olekukonko/errors v1.1.0/go.mod 
h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
 github.com/olekukonko/ll v0.0.9 h1:Y+1YqDfVkqMWuEQMclsF9HUR5+a82+dxJuL1HHSRpxI=
 github.com/olekukonko/ll v0.0.9/go.mod 
h1:En+sEW0JNETl26+K8eZ6/W4UQ7CYSrrgg/EdIYT2H8g=
-github.com/olekukonko/tablewriter v1.0.9 
h1:XGwRsYLC2bY7bNd93Dk51bcPZksWZmLYuaTHR0FqfL8=
-github.com/olekukonko/tablewriter v1.0.9/go.mod 
h1:5c+EBPeSqvXnLLgkm9isDdzR3wjfBkHR9Nhfp3NWrzo=
+github.com/olekukonko/tablewriter v1.1.0 
h1:N0LHrshF4T39KvI96fn6GT8HEjXRXYNDrDjKFDB7RIY=
+github.com/olekukonko/tablewriter v1.1.0/go.mod 
h1:5c+EBPeSqvXnLLgkm9isDdzR3wjfBkHR9Nhfp3NWrzo=
 github.com/onsi/ginkgo v1.6.0/go.mod 
h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.12.1/go.mod 
h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
 github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/internal/client/gvr.go 
new/k9s-0.50.13/internal/client/gvr.go
--- old/k9s-0.50.12/internal/client/gvr.go      2025-09-19 16:36:53.000000000 
+0200
+++ new/k9s-0.50.13/internal/client/gvr.go      2025-09-27 17:16:36.000000000 
+0200
@@ -88,7 +88,7 @@
 }
 
 func (g *GVR) IsK8sRes() bool {
-       return g != nil && ((strings.Contains(g.raw, "/") && 
!strings.Contains(g.raw, " /")) || reservedGVRs.Has(g))
+       return g != nil && ((!strings.Contains(g.raw, " ") && 
strings.Contains(g.raw, "/") && !strings.Contains(g.raw, " /")) || 
reservedGVRs.Has(g))
 }
 
 // WithSubResource builds a new gvr with a sub resource.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/internal/config/alias.go 
new/k9s-0.50.13/internal/config/alias.go
--- old/k9s-0.50.12/internal/config/alias.go    2025-09-19 16:36:53.000000000 
+0200
+++ new/k9s-0.50.13/internal/config/alias.go    2025-09-27 17:16:36.000000000 
+0200
@@ -159,11 +159,15 @@
        }
 
        a.mx.Lock()
-       defer a.mx.Unlock()
        if err := yaml.Unmarshal(bb, a); err != nil {
                return err
        }
 
+       for k, v := range a.Alias {
+               a.Alias[k] = client.NewGVR(v.String())
+       }
+       defer a.mx.Unlock()
+
        return nil
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/internal/dao/helpers.go 
new/k9s-0.50.13/internal/dao/helpers.go
--- old/k9s-0.50.12/internal/dao/helpers.go     2025-09-19 16:36:53.000000000 
+0200
+++ new/k9s-0.50.13/internal/dao/helpers.go     2025-09-27 17:16:36.000000000 
+0200
@@ -8,7 +8,6 @@
        "errors"
        "fmt"
        "log/slog"
-       "maps"
        "math"
 
        "github.com/derailed/k9s/internal/client"
@@ -95,17 +94,12 @@
                return "", fmt.Errorf("expecting unstructured object but got 
nil")
        }
 
-       mm := u.Object
-       var (
-               buff bytes.Buffer
-               p    printers.YAMLPrinter
-       )
+       var p printers.ResourcePrinter = &printers.YAMLPrinter{}
        if !showManaged {
-               mm = maps.Clone(mm)
-               if meta, ok := mm["metadata"].(map[string]any); ok {
-                       delete(meta, "managedFields")
-               }
+               p = &printers.OmitManagedFieldsPrinter{Delegate: p}
        }
+
+       var buff bytes.Buffer
        if err := p.PrintObj(o, &buff); err != nil {
                slog.Error("PrintObj failed", slogs.Error, err)
                return "", err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/internal/dao/pod.go 
new/k9s-0.50.13/internal/dao/pod.go
--- old/k9s-0.50.12/internal/dao/pod.go 2025-09-19 16:36:53.000000000 +0200
+++ new/k9s-0.50.13/internal/dao/pod.go 2025-09-27 17:16:36.000000000 +0200
@@ -71,9 +71,9 @@
        switch pod.Status.Phase {
        case v1.PodSucceeded, v1.PodFailed:
                return true
+       default:
+               return false
        }
-
-       return false
 }
 
 // Get returns a resource instance if found, else an error.
@@ -372,20 +372,19 @@
                delay := logBackoffInitial
 
                for range logRetryCount {
-                       // Check if we should stop retrying based on pod status
-                       if pod, ok := logger.(*Pod); ok && 
pod.shouldStopRetrying(opts.Path) {
-                               slog.Debug("Stopping log retry - pod is 
terminating or deleted",
-                                       slogs.Container, opts.Info(),
-                               )
-                               return
-                       }
-
                        req, err := logger.Logs(opts.Path, podOpts)
                        if err != nil {
                                slog.Error("Log request failed",
                                        slogs.Container, opts.Info(),
                                        slogs.Error, err,
                                )
+                               // Check if we should stop retrying based on 
pod status
+                               if pod, ok := logger.(*Pod); ok && 
pod.shouldStopRetrying(opts.Path) {
+                                       slog.Debug("Stopping log retry - pod is 
terminating or deleted",
+                                               slogs.Container, opts.Info(),
+                                       )
+                                       return
+                               }
                                select {
                                case <-ctx.Done():
                                        return
@@ -403,6 +402,13 @@
                                        slogs.Error, e,
                                        slogs.Container, opts.Info(),
                                )
+                               // Check if we should stop retrying based on 
pod status
+                               if pod, ok := logger.(*Pod); ok && 
pod.shouldStopRetrying(opts.Path) {
+                                       slog.Debug("Stopping log retry - pod is 
terminating or deleted",
+                                               slogs.Container, opts.Info(),
+                                       )
+                                       return
+                               }
                                select {
                                case <-ctx.Done():
                                        return
@@ -466,7 +472,7 @@
 func readLogs(ctx context.Context, stream io.ReadCloser, out chan<- *LogItem, 
opts *LogOptions) streamResult {
        defer func() {
                if err := stream.Close(); err != nil && !errors.Is(err, 
io.ErrClosedPipe) {
-                       slog.Error("Fail to close stream",
+                       slog.Error("Failed to close stream",
                                slogs.Container, opts.Info(),
                                slogs.Error, err,
                        )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/internal/render/dp.go 
new/k9s-0.50.13/internal/render/dp.go
--- old/k9s-0.50.12/internal/render/dp.go       2025-09-19 16:36:53.000000000 
+0200
+++ new/k9s-0.50.13/internal/render/dp.go       2025-09-27 17:16:36.000000000 
+0200
@@ -100,7 +100,7 @@
                strconv.Itoa(int(dp.Status.UpdatedReplicas)),
                strconv.Itoa(int(dp.Status.AvailableReplicas)),
                mapToStr(dp.Labels),
-               AsStatus(d.diagnose(desired, dp.Status.AvailableReplicas)),
+               AsStatus(d.diagnose(dp.Status.Replicas, 
dp.Status.AvailableReplicas)),
                ToAge(dp.GetCreationTimestamp()),
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/internal/render/sts.go 
new/k9s-0.50.13/internal/render/sts.go
--- old/k9s-0.50.12/internal/render/sts.go      2025-09-19 16:36:53.000000000 
+0200
+++ new/k9s-0.50.13/internal/render/sts.go      2025-09-27 17:16:36.000000000 
+0200
@@ -66,30 +66,34 @@
                return err
        }
 
+       var desired int32
+       if sts.Spec.Replicas != nil {
+               desired = *sts.Spec.Replicas
+       }
        r.ID = client.MetaFQN(&sts.ObjectMeta)
        r.Fields = model1.Fields{
                sts.Namespace,
                sts.Name,
                computeVulScore(sts.Namespace, sts.Labels, 
&sts.Spec.Template.Spec),
-               strconv.Itoa(int(sts.Status.ReadyReplicas)) + "/" + 
strconv.Itoa(int(sts.Status.Replicas)),
+               strconv.Itoa(int(sts.Status.ReadyReplicas)) + "/" + 
strconv.Itoa(int(desired)),
                asSelector(sts.Spec.Selector),
                na(sts.Spec.ServiceName),
                podContainerNames(&sts.Spec.Template.Spec, true),
                podImageNames(&sts.Spec.Template.Spec, true),
                mapToStr(sts.Labels),
-               AsStatus(s.diagnose(sts.Spec.Replicas, sts.Status.Replicas, 
sts.Status.ReadyReplicas)),
+               AsStatus(s.diagnose(desired, sts.Status.Replicas, 
sts.Status.ReadyReplicas)),
                ToAge(sts.GetCreationTimestamp()),
        }
 
        return nil
 }
 
-func (StatefulSet) diagnose(w *int32, d, r int32) error {
-       if d != r {
-               return fmt.Errorf("desired %d replicas got %d available", d, r)
+func (StatefulSet) diagnose(d, c, r int32) error {
+       if c != r {
+               return fmt.Errorf("desired %d replicas got %d available", c, r)
        }
-       if w != nil && *w != r {
-               return fmt.Errorf("want %d replicas got %d available", *w, r)
+       if d != r {
+               return fmt.Errorf("want %d replicas got %d available", d, r)
        }
 
        return nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/internal/view/exec.go 
new/k9s-0.50.13/internal/view/exec.go
--- old/k9s-0.50.12/internal/view/exec.go       2025-09-19 16:36:53.000000000 
+0200
+++ new/k9s-0.50.13/internal/view/exec.go       2025-09-27 17:16:36.000000000 
+0200
@@ -348,7 +348,7 @@
        cfg := a.Config.K9s.ShellPod
        platform, err := getPodOS(a.factory, fqn)
        if err != nil {
-               return fmt.Errorf("os detect failed: %w", err)
+               slog.Warn("os detect failed", slogs.Error, err)
        }
 
        args := buildShellArgs("exec", fqn, co, a.Conn().Config().Flags())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/k9s-0.50.12/snap/snapcraft.yaml 
new/k9s-0.50.13/snap/snapcraft.yaml
--- old/k9s-0.50.12/snap/snapcraft.yaml 2025-09-19 16:36:53.000000000 +0200
+++ new/k9s-0.50.13/snap/snapcraft.yaml 2025-09-27 17:16:36.000000000 +0200
@@ -1,6 +1,6 @@
 name: k9s
 base: core22
-version: 'v0.50.12'
+version: 'v0.50.13'
 summary: K9s is a CLI to view and manage your Kubernetes clusters.
 description: |
   K9s is a CLI to view and manage your Kubernetes clusters. By leveraging a 
terminal UI, you can easily traverse Kubernetes resources and view the state of 
your clusters in a single powerful session.

++++++ k9s.obsinfo ++++++
--- /var/tmp/diff_new_pack.Bey7k7/_old  2025-09-29 16:34:54.525170244 +0200
+++ /var/tmp/diff_new_pack.Bey7k7/_new  2025-09-29 16:34:54.533170582 +0200
@@ -1,5 +1,5 @@
 name: k9s
-version: 0.50.12
-mtime: 1758292613
-commit: 09c1c0795051f443da6b75a11705e25c0c1c7c6b
+version: 0.50.13
+mtime: 1758986196
+commit: 1d8cb6ced0d0f1231fa6bd59f165277d7416b736
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/k9s/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.k9s.new.11973/vendor.tar.gz differ: char 117, line 1

Reply via email to