Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kubecolor for openSUSE:Factory 
checked in at 2026-09-28 10:45:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kubecolor (Old)
 and      /work/SRC/openSUSE:Factory/.kubecolor.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kubecolor"

Mon Sep 28 10:45:04 2026 rev:7 rq:1380767 version:0.8.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kubecolor/kubecolor.changes      2026-08-28 
19:50:22.012235719 +0200
+++ /work/SRC/openSUSE:Factory/.kubecolor.new.383539/kubecolor.changes  
2026-09-28 10:45:34.370740970 +0200
@@ -1,0 +2,26 @@
+Sun Sep 20 07:31:20 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.8.0:
+  * Features
+    - Provide automatic themes that switch light and dark
+      automatically in #363
+    - kubecolor is now able to automatically detect if it should
+      use dark or light theme.
+    - New theme presets:
+      - auto: resolves to light or dark
+      - protanopia: resolves to protanopia-light or protanopia-dark
+      - deuteranopia: resolves to deuteranopia-light or
+        deuteranopia-dark
+      - tritanopia: resolves to tritanopia-light or tritanopia-dark
+    - If kubecolor is unable to read your terminal emulator's
+      background color, then any "auto" preset will fall back to
+      their "dark" variant.
+    - This also changes the default preset (YAML) /
+      --kubecolor-theme (flag) / KUBECOLOR_PRESET (env var) config
+      from dark to auto.
+  * Dependencies
+    - Bump k8s.io/apimachinery from 0.36.3 to 0.36.4 in #362
+    - Bump the github-actions group with 2 updates in #365
+    - Bump k8s.io/apimachinery from 0.36.4 to 0.37.0 in #364
+
+-------------------------------------------------------------------

Old:
----
  kubecolor-0.7.1.obscpio

New:
----
  kubecolor-0.8.0.obscpio

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

Other differences:
------------------
++++++ kubecolor.spec ++++++
--- /var/tmp/diff_new_pack.XBWRlr/_old  2026-09-28 10:45:36.240819319 +0200
+++ /var/tmp/diff_new_pack.XBWRlr/_new  2026-09-28 10:45:36.245819528 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           kubecolor
-Version:        0.7.1
+Version:        0.8.0
 Release:        0
 Summary:        Colorize your kubectl output
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.XBWRlr/_old  2026-09-28 10:45:36.322822755 +0200
+++ /var/tmp/diff_new_pack.XBWRlr/_new  2026-09-28 10:45:36.332823173 +0200
@@ -1,10 +1,10 @@
 <services>
   <service mode="manual" name="obs_scm">
-    <param name="url">https://github.com/kubecolor/kubecolor</param>
+    <param name="url">https://github.com/kubecolor/kubecolor.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.7.1</param>
-    <param name="match-tag">v0.7.1</param>
+    <param name="revision">refs/tags/v0.8.0</param>
+    <param name="match-tag">v0.8.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.XBWRlr/_old  2026-09-28 10:45:36.387825478 +0200
+++ /var/tmp/diff_new_pack.XBWRlr/_new  2026-09-28 10:45:36.393825729 +0200
@@ -1,6 +1,8 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/kubecolor/kubecolor</param>
-              <param 
name="changesrevision">fd9e6f787f15c20e4864926334855931512ca407</param></service></servicedata>
+              <param 
name="changesrevision">fd9e6f787f15c20e4864926334855931512ca407</param></service><service
 name="tar_scm">
+                <param 
name="url">https://github.com/kubecolor/kubecolor.git</param>
+              <param 
name="changesrevision">342330236d3620d0a84fcce1462a8a7108cd56a0</param></service></servicedata>
 (No newline at EOF)
 

++++++ kubecolor-0.7.1.obscpio -> kubecolor-0.8.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/command/config.go 
new/kubecolor-0.8.0/command/config.go
--- old/kubecolor-0.7.1/command/config.go       2026-08-25 14:59:44.000000000 
+0200
+++ new/kubecolor-0.8.0/command/config.go       2026-09-19 16:05:29.000000000 
+0200
@@ -21,15 +21,15 @@
        Flags           FlagSet
 }
 
-func ResolveConfig(inputArgs []string) (*Config, error) {
+func ResolveConfig(inputArgs []string, term config.TermInfo) (*Config, error) {
        v, err := config.LoadViper()
        if err != nil {
                return nil, err
        }
-       return ResolveConfigViper(inputArgs, v)
+       return ResolveConfigViper(inputArgs, v, term)
 }
 
-func ResolveConfigViper(inputArgs []string, v *viper.Viper) (*Config, error) {
+func ResolveConfigViper(inputArgs []string, v *viper.Viper, term 
config.TermInfo) (*Config, error) {
        cfg := &Config{}
 
        if lightThemeEnv, ok, err := 
parseBoolEnv("KUBECOLOR_LIGHT_BACKGROUND"); err != nil {
@@ -116,7 +116,7 @@
                }
        }
 
-       newCfg, err := config.Unmarshal(v)
+       newCfg, err := config.Unmarshal(v, term)
        if err != nil {
                return nil, err
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/command/config_test.go 
new/kubecolor-0.8.0/command/config_test.go
--- old/kubecolor-0.7.1/command/config_test.go  2026-08-25 14:59:44.000000000 
+0200
+++ new/kubecolor-0.8.0/command/config_test.go  2026-09-19 16:05:29.000000000 
+0200
@@ -15,6 +15,7 @@
                args         []string
                env          map[string]string
                expectedConf *Config
+               term         config.TermInfo
        }{
                {
                        name: "no config",
@@ -25,7 +26,7 @@
                                        ObjFreshThreshold: nil,
                                        Paging:            config.PagingDefault,
                                        Theme:             
*testconfig.DarkTheme,
-                                       Preset:            config.PresetDark,
+                                       Preset:            config.PresetAuto,
                                },
                                ArgsPassthrough: []string{"get", "pods"},
                                ForceColor:      ColorLevelUnset,
@@ -56,7 +57,7 @@
                                        ObjFreshThreshold: nil,
                                        Paging:            config.PagingDefault,
                                        Theme:             
*testconfig.DarkTheme,
-                                       Preset:            config.PresetDark,
+                                       Preset:            config.PresetAuto,
                                },
                                ForceColor:      ColorLevelNone,
                                ArgsPassthrough: []string{"get", "pods"},
@@ -72,7 +73,7 @@
                                        ObjFreshThreshold: 
config.MustParseDurationSlice("1m"),
                                        Paging:            config.PagingDefault,
                                        Theme:             
*testconfig.DarkTheme,
-                                       Preset:            config.PresetDark,
+                                       Preset:            config.PresetAuto,
                                },
                                ForceColor:      ColorLevelUnset,
                                ArgsPassthrough: []string{"get", "pods"},
@@ -102,7 +103,7 @@
                                        Kubectl: "kubectl",
                                        Paging:  config.PagingDefault,
                                        Theme:   *testconfig.DarkTheme,
-                                       Preset:  config.PresetDark,
+                                       Preset:  config.PresetAuto,
                                },
                                ForceColor:      ColorLevelAuto,
                                ArgsPassthrough: []string{"get", "pods"},
@@ -117,7 +118,7 @@
                                        Kubectl: "kubectl",
                                        Paging:  config.PagingDefault,
                                        Theme:   *testconfig.DarkTheme,
-                                       Preset:  config.PresetDark,
+                                       Preset:  config.PresetAuto,
                                },
                                ForceColor:      ColorLevelTrueColor,
                                ArgsPassthrough: []string{"get", "pods"},
@@ -136,7 +137,7 @@
                                        Pager:   "most",
                                        Paging:  config.PagingAuto,
                                        Theme:   *testconfig.DarkTheme,
-                                       Preset:  config.PresetDark,
+                                       Preset:  config.PresetAuto,
                                },
                                ArgsPassthrough: []string{"get", "pods"},
                        },
@@ -152,27 +153,60 @@
                                        Kubectl: "kubectl",
                                        Paging:  config.PagingNever,
                                        Theme:   *testconfig.DarkTheme,
-                                       Preset:  config.PresetDark,
+                                       Preset:  config.PresetAuto,
+                               },
+                               ArgsPassthrough: []string{"get", "pods"},
+                       },
+               },
+               {
+                       name: "Auto dark theme",
+                       args: []string{"get", "pods"},
+                       env: map[string]string{
+                               "KUBECOLOR_PRESET": string(config.PresetAuto),
+                       },
+                       term: testconfig.DarkTerm,
+                       expectedConf: &Config{
+                               Config: &config.Config{
+                                       Kubectl: "kubectl",
+                                       Paging:  config.PagingNever,
+                                       Theme:   *testconfig.DarkTheme,
+                                       Preset:  config.PresetAuto,
+                               },
+                               ArgsPassthrough: []string{"get", "pods"},
+                       },
+               },
+               {
+                       name: "Auto light theme",
+                       args: []string{"get", "pods"},
+                       env: map[string]string{
+                               "KUBECOLOR_PRESET": string(config.PresetAuto),
+                       },
+                       term: testconfig.LightTerm,
+                       expectedConf: &Config{
+                               Config: &config.Config{
+                                       Kubectl: "kubectl",
+                                       Paging:  config.PagingNever,
+                                       Theme:   *testconfig.LightTheme,
+                                       Preset:  config.PresetAuto,
                                },
                                ArgsPassthrough: []string{"get", "pods"},
                        },
                },
        }
-       for _, tt := range tests {
-               tt := tt
-               t.Run(tt.name, func(t *testing.T) {
+       for _, test := range tests {
+               t.Run(test.name, func(t *testing.T) {
                        os.Clearenv()
-                       for k, v := range tt.env {
+                       for k, v := range test.env {
                                testutil.Setenv(t, k, v)
                        }
 
-                       conf, err := ResolveConfig(tt.args)
+                       conf, err := ResolveConfig(test.args, test.term)
                        testutil.MustNoError(t, err)
 
                        // Don't test flags field
-                       tt.expectedConf.Flags = conf.Flags
+                       test.expectedConf.Flags = conf.Flags
 
-                       testutil.MustEqual(t, tt.expectedConf, conf)
+                       testutil.MustEqual(t, test.expectedConf, conf)
                })
        }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/command/runner.go 
new/kubecolor-0.8.0/command/runner.go
--- old/kubecolor-0.7.1/command/runner.go       2026-08-25 14:59:44.000000000 
+0200
+++ new/kubecolor-0.8.0/command/runner.go       2026-09-19 16:05:29.000000000 
+0200
@@ -17,6 +17,7 @@
        "github.com/kubecolor/kubecolor/printer"
        "github.com/mattn/go-colorable"
        "github.com/mattn/go-isatty"
+       "github.com/muesli/termenv"
        "github.com/xo/terminfo"
 )
 
@@ -52,7 +53,7 @@
 }
 
 func Run(rawArgs []string, version string) error {
-       cfg, err := ResolveConfig(rawArgs)
+       cfg, err := ResolveConfig(rawArgs, termenv.DefaultOutput())
        if err != nil {
                return fmt.Errorf("resolve config: %w", err)
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/config/config.go 
new/kubecolor-0.8.0/config/config.go
--- old/kubecolor-0.7.1/config/config.go        2026-08-25 14:59:44.000000000 
+0200
+++ new/kubecolor-0.8.0/config/config.go        2026-09-19 16:05:29.000000000 
+0200
@@ -89,8 +89,8 @@
        return v, nil
 }
 
-func Unmarshal(v *viper.Viper) (*Config, error) {
-       if err := ApplyThemePreset(v); err != nil {
+func Unmarshal(v *viper.Viper, term TermInfo) (*Config, error) {
+       if err := ApplyThemePreset(v, term); err != nil {
                return nil, err
        }
 
@@ -105,12 +105,12 @@
        return cfg, nil
 }
 
-func ApplyThemePreset(v *viper.Viper) error {
+func ApplyThemePreset(v *viper.Viper, term TermInfo) error {
        preset, err := ParsePreset(v.GetString(PresetKey))
        if err != nil {
                return fmt.Errorf("parse preset: %w", err)
        }
-       slog.Debug("Applying theme", "preset", preset)
+       preset = ResolveAutoThemePreset(preset, term)
        theme := NewBaseTheme(preset)
        applyViperDefaults(theme, v)
        return nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/config/config_test.go 
new/kubecolor-0.8.0/config/config_test.go
--- old/kubecolor-0.7.1/config/config_test.go   2026-08-25 14:59:44.000000000 
+0200
+++ new/kubecolor-0.8.0/config/config_test.go   2026-09-19 16:05:29.000000000 
+0200
@@ -12,7 +12,7 @@
        testutil.Setenv(t, "KUBECOLOR_PRESET", "light")
 
        v := NewViper()
-       cfg, err := Unmarshal(v)
+       cfg, err := Unmarshal(v, nil)
        testutil.MustNoError(t, err)
 
        testutil.Equal(t, PresetLight, cfg.Preset, "Read from cfg.Preset")
@@ -24,7 +24,7 @@
        testutil.Setenv(t, "KUBECOLOR_THEME_TABLE_HEADER", "red")
 
        v := NewViper()
-       cfg, err := Unmarshal(v)
+       cfg, err := Unmarshal(v, nil)
        testutil.MustNoError(t, err)
 
        testutil.Equal(t, "red", cfg.Theme.Table.Header.Source, "Read from 
cfg.Theme.Table.Header")
@@ -36,27 +36,27 @@
        os.Clearenv()
 
        testutil.Setenv(t, "PAGER", "more")
-       cfg, err := Unmarshal(v)
+       cfg, err := Unmarshal(v, nil)
        testutil.MustNoError(t, err)
        testutil.Equal(t, "", cfg.Pager)
 
        v = NewViper() // this time with more as default pager
-       cfg, err = Unmarshal(v)
+       cfg, err = Unmarshal(v, nil)
        testutil.MustNoError(t, err)
        testutil.Equal(t, "more", cfg.Pager)
 
        testutil.Setenv(t, "KUBECOLOR_PAGER", "more2")
-       cfg, err = Unmarshal(v)
+       cfg, err = Unmarshal(v, nil)
        testutil.MustNoError(t, err)
        testutil.Equal(t, "more2", cfg.Pager)
 
        testutil.Setenv(t, "KUBECOLOR_PAGING", string(PagingNever))
-       cfg, err = Unmarshal(v)
+       cfg, err = Unmarshal(v, nil)
        testutil.MustNoError(t, err)
        testutil.Equal(t, PagingNever, cfg.Paging)
 
        testutil.Setenv(t, "KUBECOLOR_PAGING", string(PagingAuto))
-       cfg, err = Unmarshal(v)
+       cfg, err = Unmarshal(v, nil)
        testutil.MustNoError(t, err)
        testutil.Equal(t, PagingAuto, cfg.Paging)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/config/preset.go 
new/kubecolor-0.8.0/config/preset.go
--- old/kubecolor-0.7.1/config/preset.go        2026-08-25 14:59:44.000000000 
+0200
+++ new/kubecolor-0.8.0/config/preset.go        2026-09-19 16:05:29.000000000 
+0200
@@ -15,14 +15,18 @@
        PresetNone Preset = ""
 
        // Default themes
+       PresetAuto  Preset = "auto"
        PresetDark  Preset = "dark"
        PresetLight Preset = "light"
 
        // Color blind focused themes
+       PresetProtAuto  Preset = "protanopia"
        PresetProtDark  Preset = "protanopia-dark"
        PresetProtLight Preset = "protanopia-light"
+       PresetDeutAuto  Preset = "deuteranopia"
        PresetDeutDark  Preset = "deuteranopia-dark"
        PresetDeutLight Preset = "deuteranopia-light"
+       PresetTritAuto  Preset = "tritanopia"
        PresetTritDark  Preset = "tritanopia-dark"
        PresetTritLight Preset = "tritanopia-light"
 
@@ -36,7 +40,7 @@
 )
 
 var (
-       PresetDefault = PresetDark
+       PresetDefault = PresetAuto
 
        // AllPresets is used in parsing and places like the
        // internal/cmd/configschema package to show all available options.
@@ -45,14 +49,18 @@
                PresetNone,
 
                // Default themes
+               PresetAuto,
                PresetDark,
                PresetLight,
 
                // Color blind focused themes
+               PresetProtAuto,
                PresetProtDark,
                PresetProtLight,
+               PresetDeutAuto,
                PresetDeutDark,
                PresetDeutLight,
+               PresetTritAuto,
                PresetTritDark,
                PresetTritLight,
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/config/testconfig/testconfig.go 
new/kubecolor-0.8.0/config/testconfig/testconfig.go
--- old/kubecolor-0.7.1/config/testconfig/testconfig.go 2026-08-25 
14:59:44.000000000 +0200
+++ new/kubecolor-0.8.0/config/testconfig/testconfig.go 2026-09-19 
16:05:29.000000000 +0200
@@ -12,6 +12,9 @@
        DarkTheme  *config.Theme
        LightTheme *config.Theme
        NullTheme  *config.Theme
+
+       DarkTerm  = NewTermInfoWithDarkBackground(true)
+       LightTerm = NewTermInfoWithDarkBackground(false)
 )
 
 func init() {
@@ -19,19 +22,34 @@
        color.ForceColor()
        color.Enable = true
 
-       DarkTheme = NewTheme(config.PresetDark)
-       LightTheme = NewTheme(config.PresetLight)
+       DarkTheme = NewTheme(config.PresetDark, nil)
+       LightTheme = NewTheme(config.PresetLight, nil)
        NullTheme = &config.Theme{}
 }
 
 // NewTheme returns a theme from a preset that's meant to be used in testing.
-func NewTheme(preset config.Preset) *config.Theme {
+func NewTheme(preset config.Preset, term config.TermInfo) *config.Theme {
        v := config.NewViper()
        // mapstructure doesn't like "type X string" values, so we have to 
convert it via string(...)
        v.Set(config.PresetKey, string(preset))
-       cfg, err := config.Unmarshal(v)
+       cfg, err := config.Unmarshal(v, term)
        if err != nil {
                panic(fmt.Errorf("unmarshal config: %w", err))
        }
        return &cfg.Theme
 }
+
+func NewTermInfoWithDarkBackground(hasDark bool) config.TermInfo {
+       return terminfo{hasDarkBackground: hasDark}
+}
+
+type terminfo struct {
+       hasDarkBackground bool
+}
+
+var _ config.TermInfo = terminfo{}
+
+// HasDarkBackground implements [config.TermInfo].
+func (t terminfo) HasDarkBackground() bool {
+       return t.hasDarkBackground
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/config/theme.go 
new/kubecolor-0.8.0/config/theme.go
--- old/kubecolor-0.7.1/config/theme.go 2026-08-25 14:59:44.000000000 +0200
+++ new/kubecolor-0.8.0/config/theme.go 2026-09-19 16:05:29.000000000 +0200
@@ -2,6 +2,7 @@
 
 import (
        "fmt"
+       "log/slog"
        "reflect"
        "strings"
 
@@ -10,6 +11,40 @@
        "github.com/spf13/viper"
 )
 
+var autoPresets = map[Preset]struct {
+       dark  Preset
+       light Preset
+}{
+       PresetAuto:     {dark: PresetDark, light: PresetLight},
+       PresetDeutAuto: {dark: PresetDeutDark, light: PresetDeutLight},
+       PresetProtAuto: {dark: PresetProtDark, light: PresetProtLight},
+       PresetTritAuto: {dark: PresetTritDark, light: PresetTritLight},
+}
+
+// TermInfo is set of methods for reading terminal information.
+//
+// Designed to be compatible with [github.com/muesli/termenv.Output]
+type TermInfo interface {
+       HasDarkBackground() bool
+}
+
+// ResolveAutoThemePreset switches theme preset depending on terminal info,
+// for example changing "auto" to "dark" or "light" theme preset
+func ResolveAutoThemePreset(preset Preset, term TermInfo) Preset {
+       if pair, ok := autoPresets[preset]; ok {
+               if term == nil || term.HasDarkBackground() {
+                       slog.Debug("Applying automatic dark theme", "preset", 
preset, "newPreset", pair.dark)
+                       preset = pair.dark
+               } else {
+                       slog.Debug("Applying automatic light theme", "preset", 
preset, "newPreset", pair.light)
+                       preset = pair.light
+               }
+       } else {
+               slog.Debug("Applying theme", "preset", preset)
+       }
+       return preset
+}
+
 // NewBaseTheme returns the base color schema depending on the dark/light 
setting
 func NewBaseTheme(preset Preset) *Theme {
        switch preset {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/config/theme_test.go 
new/kubecolor-0.8.0/config/theme_test.go
--- old/kubecolor-0.7.1/config/theme_test.go    1970-01-01 01:00:00.000000000 
+0100
+++ new/kubecolor-0.8.0/config/theme_test.go    2026-09-19 16:05:29.000000000 
+0200
@@ -0,0 +1,49 @@
+package config_test
+
+import (
+       "testing"
+
+       "github.com/kubecolor/kubecolor/config"
+       "github.com/kubecolor/kubecolor/config/testconfig"
+)
+
+func TestResolveAutoTheme(t *testing.T) {
+       t.Parallel()
+       tests := []struct {
+               preset config.Preset
+               want   config.Preset
+               term   config.TermInfo
+       }{
+               {preset: config.PresetAuto, want: config.PresetLight, term: 
testconfig.LightTerm},
+               {preset: config.PresetAuto, want: config.PresetDark, term: 
testconfig.DarkTerm},
+               {preset: config.PresetAuto, want: config.PresetDark, term: nil},
+               {preset: config.PresetProtAuto, want: config.PresetProtLight, 
term: testconfig.LightTerm},
+               {preset: config.PresetProtAuto, want: config.PresetProtDark, 
term: testconfig.DarkTerm},
+               {preset: config.PresetProtAuto, want: config.PresetProtDark, 
term: nil},
+
+               {preset: config.PresetDark, want: config.PresetDark, term: 
testconfig.LightTerm},
+               {preset: config.PresetDark, want: config.PresetDark, term: 
testconfig.DarkTerm},
+               {preset: config.PresetDark, want: config.PresetDark, term: nil},
+               {preset: config.PresetLight, want: config.PresetLight, term: 
testconfig.LightTerm},
+               {preset: config.PresetLight, want: config.PresetLight, term: 
testconfig.DarkTerm},
+               {preset: config.PresetLight, want: config.PresetLight, term: 
nil},
+       }
+
+       for _, test := range tests {
+               nameSuffix := ""
+               switch {
+               case test.term == nil:
+                       nameSuffix = "/nil term"
+               case test.term.HasDarkBackground():
+                       nameSuffix = "/dark term"
+               default:
+                       nameSuffix = "/light term"
+               }
+               t.Run(test.preset.String()+nameSuffix, func(t *testing.T) {
+                       got := config.ResolveAutoThemePreset(test.preset, 
test.term)
+                       if test.want != got {
+                               t.Errorf("want %q, got %q", test.want, got)
+                       }
+               })
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/config-schema.json 
new/kubecolor-0.8.0/config-schema.json
--- old/kubecolor-0.7.1/config-schema.json      2026-08-25 14:59:44.000000000 
+0200
+++ new/kubecolor-0.8.0/config-schema.json      2026-09-19 16:05:29.000000000 
+0200
@@ -73,12 +73,16 @@
       "type": "string",
       "enum": [
         "none",
+        "auto",
         "dark",
         "light",
+        "protanopia",
         "protanopia-dark",
         "protanopia-light",
+        "deuteranopia",
         "deuteranopia-dark",
         "deuteranopia-light",
+        "tritanopia",
         "tritanopia-dark",
         "tritanopia-light",
         "pre-0.3.0-dark",
@@ -88,7 +92,7 @@
       ],
       "title": "Color theme preset",
       "description": "Preset is a set of defaults for the color theme.",
-      "default": "dark"
+      "default": "auto"
     },
     "theme": {
       "properties": {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/go.mod new/kubecolor-0.8.0/go.mod
--- old/kubecolor-0.7.1/go.mod  2026-08-25 14:59:44.000000000 +0200
+++ new/kubecolor-0.8.0/go.mod  2026-09-19 16:05:29.000000000 +0200
@@ -11,19 +11,23 @@
        github.com/mattn/go-colorable v0.1.15
        github.com/mattn/go-isatty v0.0.24
        github.com/mitchellh/mapstructure v1.5.0
+       github.com/muesli/termenv v0.16.0
        github.com/spf13/viper v1.21.0
        github.com/xo/terminfo v1.0.0
        gopkg.in/yaml.v3 v3.0.1
-       k8s.io/apimachinery v0.36.3
+       k8s.io/apimachinery v0.37.0
 )
 
 require (
+       github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
        github.com/bahlo/generic-list-go v0.2.0 // indirect
        github.com/buger/jsonparser v1.6.1 // indirect
        github.com/fsnotify/fsnotify v1.10.1 // indirect
        github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
+       github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
        github.com/pb33f/ordered-map/v2 v2.3.1 // indirect
        github.com/pelletier/go-toml/v2 v2.4.3 // indirect
+       github.com/rivo/uniseg v0.4.7 // indirect
        github.com/sagikazarmark/locafero v0.12.0 // indirect
        github.com/spf13/afero v1.15.0 // indirect
        github.com/spf13/cast v1.10.0 // indirect
@@ -34,5 +38,4 @@
        golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect
        golang.org/x/sys v0.47.0 // indirect
        golang.org/x/text v0.40.0 // indirect
-       gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/go.sum new/kubecolor-0.8.0/go.sum
--- old/kubecolor-0.7.1/go.sum  2026-08-25 14:59:44.000000000 +0200
+++ new/kubecolor-0.8.0/go.sum  2026-09-19 16:05:29.000000000 +0200
@@ -1,5 +1,7 @@
 github.com/MakeNowJust/heredoc v1.0.0 
h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ=
 github.com/MakeNowJust/heredoc v1.0.0/go.mod 
h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
+github.com/aymanbagabas/go-osc52/v2 v2.0.1 
h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
+github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod 
h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
 github.com/bahlo/generic-list-go v0.2.0 
h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk=
 github.com/bahlo/generic-list-go v0.2.0/go.mod 
h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg=
 github.com/buger/jsonparser v1.6.1 
h1:I0phFv0PlbLHnM7TZAVjZ2MJ2/eWRTDyuO7GLR98IEs=
@@ -26,18 +28,24 @@
 github.com/kr/pretty v0.3.1/go.mod 
h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod 
h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/lucasb-eyer/go-colorful v1.2.0 
h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
+github.com/lucasb-eyer/go-colorful v1.2.0/go.mod 
h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
 github.com/mattn/go-colorable v0.1.15 
h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY=
 github.com/mattn/go-colorable v0.1.15/go.mod 
h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
 github.com/mattn/go-isatty v0.0.24 
h1:tGZZoVgT/KiqK1c8ocVLeDS8BSWMRd47J3Lbz7vsReI=
 github.com/mattn/go-isatty v0.0.24/go.mod 
h1:nMCL3Zebbrt45jsMDgnfIwz6ydEQApk5oEI3HqDio6A=
 github.com/mitchellh/mapstructure v1.5.0 
h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
+github.com/muesli/termenv v0.16.0 
h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=
+github.com/muesli/termenv v0.16.0/go.mod 
h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
 github.com/pb33f/ordered-map/v2 v2.3.1 
h1:5319HDO0aw4DA4gzi+zv4FXU9UlSs3xGZ40wcP1nBjY=
 github.com/pb33f/ordered-map/v2 v2.3.1/go.mod 
h1:qxFQgd0PkVUtOMCkTapqotNgzRhMPL7VvaHKbd1HnmQ=
 github.com/pelletier/go-toml/v2 v2.4.3 
h1:GTRvJQutkOSftxIFD5xw9aepkYNuPWmVJpffdDPYVpY=
 github.com/pelletier/go-toml/v2 v2.4.3/go.mod 
h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 
h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
+github.com/rivo/uniseg v0.4.7/go.mod 
h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
 github.com/rogpeppe/go-internal v1.14.1 
h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
 github.com/rogpeppe/go-internal v1.14.1/go.mod 
h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
 github.com/sagikazarmark/locafero v0.12.0 
h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4=
@@ -67,9 +75,9 @@
 golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs=
 golang.org/x/text v0.40.0/go.mod 
h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 
h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c 
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod 
h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-k8s.io/apimachinery v0.36.3 h1:PkzMRBRG8joFD8EhCuQAtNPvJlxb82FwplP26HIzvAM=
-k8s.io/apimachinery v0.36.3/go.mod 
h1:cTSjBWgPe/6CQyBKzY/hDIRWCQQQeK0mfLbml0UYFHE=
+k8s.io/apimachinery v0.37.0 h1:Np2AbDtf8x6RDHiD8T9LbKJ9gaegeVNa8yNm5FuGKm0=
+k8s.io/apimachinery v0.37.0/go.mod 
h1:RN3nhprFSCxOi5Selxd7oMTXOe/c+ZbcE7Im+TS2zkE=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/internal/cmd/configdoc/main.go 
new/kubecolor-0.8.0/internal/cmd/configdoc/main.go
--- old/kubecolor-0.7.1/internal/cmd/configdoc/main.go  2026-08-25 
14:59:44.000000000 +0200
+++ new/kubecolor-0.8.0/internal/cmd/configdoc/main.go  2026-09-19 
16:05:29.000000000 +0200
@@ -41,7 +41,7 @@
 
 func (p *Program) Run() error {
        v := config.NewViper()
-       if err := config.ApplyThemePreset(v); err != nil {
+       if err := config.ApplyThemePreset(v, nil); err != nil {
                return err
        }
        p.viper = v
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/internal/cmd/imagegen/main.go 
new/kubecolor-0.8.0/internal/cmd/imagegen/main.go
--- old/kubecolor-0.7.1/internal/cmd/imagegen/main.go   2026-08-25 
14:59:44.000000000 +0200
+++ new/kubecolor-0.8.0/internal/cmd/imagegen/main.go   2026-09-19 
16:05:29.000000000 +0200
@@ -255,7 +255,7 @@
        }
 
        v := config.NewViper()
-       cfg, err := command.ResolveConfigViper(cmd.Args, v)
+       cfg, err := command.ResolveConfigViper(cmd.Args, v, nil)
        if err != nil {
                return "", err
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubecolor-0.7.1/internal/testcorpus/run.go 
new/kubecolor-0.8.0/internal/testcorpus/run.go
--- old/kubecolor-0.7.1/internal/testcorpus/run.go      2026-08-25 
14:59:44.000000000 +0200
+++ new/kubecolor-0.8.0/internal/testcorpus/run.go      2026-09-19 
16:05:29.000000000 +0200
@@ -133,7 +133,7 @@
        }
 
        v := config.NewViper()
-       cfg, err := command.ResolveConfigViper(args, v)
+       cfg, err := command.ResolveConfigViper(args, v, nil)
        if err != nil {
                return fmt.Sprintf("config error: %s", err)
        }

++++++ kubecolor.obsinfo ++++++
--- /var/tmp/diff_new_pack.XBWRlr/_old  2026-09-28 10:45:36.988850658 +0200
+++ /var/tmp/diff_new_pack.XBWRlr/_new  2026-09-28 10:45:36.997851035 +0200
@@ -1,5 +1,5 @@
 name: kubecolor
-version: 0.7.1
-mtime: 1787662784
-commit: fd9e6f787f15c20e4864926334855931512ca407
+version: 0.8.0
+mtime: 1789826729
+commit: 342330236d3620d0a84fcce1462a8a7108cd56a0
 

++++++ vendor.tar.gz ++++++
++++ 22163 lines of diff (skipped)

Reply via email to