Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package helm for openSUSE:Factory checked in 
at 2025-08-29 18:37:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/helm (Old)
 and      /work/SRC/openSUSE:Factory/.helm.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "helm"

Fri Aug 29 18:37:45 2025 rev:87 rq:1301959 version:3.18.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/helm/helm.changes        2025-08-05 
14:22:24.968070106 +0200
+++ /work/SRC/openSUSE:Factory/.helm.new.1977/helm.changes      2025-08-29 
18:40:09.498724400 +0200
@@ -1,0 +2,17 @@
+Wed Aug 20 11:12:50 UTC 2025 - Johannes Kastl 
<opensuse_buildserv...@ojkastl.de>
+
+- Update to version 3.18.6:
+  * fix(helm-lint): fmt
+  * fix(helm-lint): Add TLSClientConfig
+  * fix(helm-lint): Add HTTP/HTTPS URL support for json schema
+    references
+
+-------------------------------------------------------------------
+Tue Aug 19 05:19:28 UTC 2025 - Johannes Kastl 
<opensuse_buildserv...@ojkastl.de>
+
+- Update to version 3.18.5:
+  * fix Chart.yaml handling 7799b48 (Matt Farina)
+  * Handle messy index files dd8502f (Matt Farina)
+  * json schema fix cb8595b (Robert Sirchia)
+
+-------------------------------------------------------------------

Old:
----
  helm-3.18.4.obscpio

New:
----
  helm-3.18.6.obscpio

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

Other differences:
------------------
++++++ helm.spec ++++++
--- /var/tmp/diff_new_pack.3l1LS3/_old  2025-08-29 18:40:10.202754298 +0200
+++ /var/tmp/diff_new_pack.3l1LS3/_new  2025-08-29 18:40:10.202754298 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package helm
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %define goipath helm.sh/helm/v3
 %define git_dirty clean
 Name:           helm
-Version:        3.18.4
+Version:        3.18.6
 Release:        0
 Summary:        The Kubernetes Package Manager
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.3l1LS3/_old  2025-08-29 18:40:10.234755657 +0200
+++ /var/tmp/diff_new_pack.3l1LS3/_new  2025-08-29 18:40:10.238755827 +0200
@@ -5,7 +5,7 @@
     <param name="exclude">.git</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
-    <param name="revision">v3.18.4</param>
+    <param name="revision">v3.18.6</param>
     <param name="changesgenerate">enable</param>
   </service>
   <service name="set_version" mode="manual">

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.3l1LS3/_old  2025-08-29 18:40:10.258756676 +0200
+++ /var/tmp/diff_new_pack.3l1LS3/_new  2025-08-29 18:40:10.262756846 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/helm/helm.git</param>
-              <param 
name="changesrevision">d80839cf37d860c8aa9a0503fe463278f26cd5e2</param></service></servicedata>
+              <param 
name="changesrevision">b76a950f6835474e0906b96c9ec68a2eff3a6430</param></service></servicedata>
 (No newline at EOF)
 

++++++ helm-3.18.4.obscpio -> helm-3.18.6.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helm-3.18.4/cmd/helm/testdata/output/schema-negative-cli.txt 
new/helm-3.18.6/cmd/helm/testdata/output/schema-negative-cli.txt
--- old/helm-3.18.4/cmd/helm/testdata/output/schema-negative-cli.txt    
2025-07-08 21:58:00.000000000 +0200
+++ new/helm-3.18.6/cmd/helm/testdata/output/schema-negative-cli.txt    
2025-08-19 21:59:50.000000000 +0200
@@ -1,4 +1,4 @@
 Error: INSTALLATION FAILED: values don't meet the specifications of the 
schema(s) in the following chart(s):
 empty:
-- age: Must be greater than or equal to 0
+- at '/age': minimum: got -5, want 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helm-3.18.4/cmd/helm/testdata/output/schema-negative.txt 
new/helm-3.18.6/cmd/helm/testdata/output/schema-negative.txt
--- old/helm-3.18.4/cmd/helm/testdata/output/schema-negative.txt        
2025-07-08 21:58:00.000000000 +0200
+++ new/helm-3.18.6/cmd/helm/testdata/output/schema-negative.txt        
2025-08-19 21:59:50.000000000 +0200
@@ -1,5 +1,5 @@
 Error: INSTALLATION FAILED: values don't meet the specifications of the 
schema(s) in the following chart(s):
 empty:
-- (root): employmentInfo is required
-- age: Must be greater than or equal to 0
+- at '': missing property 'employmentInfo'
+- at '/age': minimum: got -5, want 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helm-3.18.4/cmd/helm/testdata/output/subchart-schema-cli-negative.txt 
new/helm-3.18.6/cmd/helm/testdata/output/subchart-schema-cli-negative.txt
--- old/helm-3.18.4/cmd/helm/testdata/output/subchart-schema-cli-negative.txt   
2025-07-08 21:58:00.000000000 +0200
+++ new/helm-3.18.6/cmd/helm/testdata/output/subchart-schema-cli-negative.txt   
2025-08-19 21:59:50.000000000 +0200
@@ -1,4 +1,4 @@
 Error: INSTALLATION FAILED: values don't meet the specifications of the 
schema(s) in the following chart(s):
 subchart-with-schema:
-- age: Must be greater than or equal to 0
+- at '/age': minimum: got -25, want 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helm-3.18.4/cmd/helm/testdata/output/subchart-schema-negative.txt 
new/helm-3.18.6/cmd/helm/testdata/output/subchart-schema-negative.txt
--- old/helm-3.18.4/cmd/helm/testdata/output/subchart-schema-negative.txt       
2025-07-08 21:58:00.000000000 +0200
+++ new/helm-3.18.6/cmd/helm/testdata/output/subchart-schema-negative.txt       
2025-08-19 21:59:50.000000000 +0200
@@ -1,6 +1,6 @@
 Error: INSTALLATION FAILED: values don't meet the specifications of the 
schema(s) in the following chart(s):
 chart-without-schema:
-- (root): lastname is required
+- at '': missing property 'lastname'
 subchart-with-schema:
-- (root): age is required
+- at '': missing property 'age'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.18.4/go.mod new/helm-3.18.6/go.mod
--- old/helm-3.18.4/go.mod      2025-07-08 21:58:00.000000000 +0200
+++ new/helm-3.18.6/go.mod      2025-08-19 21:59:50.000000000 +0200
@@ -29,24 +29,24 @@
        github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5
        github.com/pkg/errors v0.9.1
        github.com/rubenv/sql-migrate v1.8.0
+       github.com/santhosh-tekuri/jsonschema/v6 v6.0.2
        github.com/spf13/cobra v1.9.1
-       github.com/spf13/pflag v1.0.6
+       github.com/spf13/pflag v1.0.7
        github.com/stretchr/testify v1.10.0
-       github.com/xeipuuv/gojsonschema v1.2.0
-       golang.org/x/crypto v0.39.0
-       golang.org/x/term v0.32.0
-       golang.org/x/text v0.26.0
+       golang.org/x/crypto v0.40.0
+       golang.org/x/term v0.33.0
+       golang.org/x/text v0.27.0
        gopkg.in/yaml.v3 v3.0.1
-       k8s.io/api v0.33.2
-       k8s.io/apiextensions-apiserver v0.33.2
-       k8s.io/apimachinery v0.33.2
-       k8s.io/apiserver v0.33.2
-       k8s.io/cli-runtime v0.33.2
-       k8s.io/client-go v0.33.2
+       k8s.io/api v0.33.3
+       k8s.io/apiextensions-apiserver v0.33.3
+       k8s.io/apimachinery v0.33.3
+       k8s.io/apiserver v0.33.3
+       k8s.io/cli-runtime v0.33.3
+       k8s.io/client-go v0.33.3
        k8s.io/klog/v2 v2.130.1
-       k8s.io/kubectl v0.33.2
+       k8s.io/kubectl v0.33.3
        oras.land/oras-go/v2 v2.6.0
-       sigs.k8s.io/yaml v1.4.0
+       sigs.k8s.io/yaml v1.5.0
 )
 
 require (
@@ -133,8 +133,6 @@
        github.com/sirupsen/logrus v1.9.3 // indirect
        github.com/spf13/cast v1.7.0 // indirect
        github.com/x448/float16 v0.8.4 // indirect
-       github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // 
indirect
-       github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 
// indirect
        github.com/xlab/treeprint v1.2.0 // indirect
        go.opentelemetry.io/auto/sdk v1.1.0 // indirect
        go.opentelemetry.io/contrib/bridges/prometheus v0.57.0 // indirect
@@ -159,13 +157,15 @@
        go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect
        go.opentelemetry.io/otel/trace v1.33.0 // indirect
        go.opentelemetry.io/proto/otlp v1.4.0 // indirect
+       go.yaml.in/yaml/v2 v2.4.2 // indirect
+       go.yaml.in/yaml/v3 v3.0.3 // indirect
        golang.org/x/mod v0.25.0 // indirect
-       golang.org/x/net v0.40.0 // indirect
+       golang.org/x/net v0.41.0 // indirect
        golang.org/x/oauth2 v0.28.0 // indirect
-       golang.org/x/sync v0.15.0 // indirect
-       golang.org/x/sys v0.33.0 // indirect
+       golang.org/x/sync v0.16.0 // indirect
+       golang.org/x/sys v0.34.0 // indirect
        golang.org/x/time v0.9.0 // indirect
-       golang.org/x/tools v0.33.0 // indirect
+       golang.org/x/tools v0.34.0 // indirect
        google.golang.org/genproto/googleapis/api 
v0.0.0-20241209162323-e6fa225c2576 // indirect
        google.golang.org/genproto/googleapis/rpc 
v0.0.0-20241209162323-e6fa225c2576 // indirect
        google.golang.org/grpc v1.68.1 // indirect
@@ -173,7 +173,7 @@
        gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
        gopkg.in/inf.v0 v0.9.1 // indirect
        gopkg.in/yaml.v2 v2.4.0 // indirect
-       k8s.io/component-base v0.33.2 // indirect
+       k8s.io/component-base v0.33.3 // indirect
        k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
        k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
        sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.18.4/go.sum new/helm-3.18.6/go.sum
--- old/helm-3.18.4/go.sum      2025-07-08 21:58:00.000000000 +0200
+++ new/helm-3.18.6/go.sum      2025-08-19 21:59:50.000000000 +0200
@@ -76,6 +76,8 @@
 github.com/distribution/distribution/v3 v3.0.0/go.mod 
h1:tRNuFoZsUdyRVegq8xGNeds4KLjwLCRin/tTo6i1DhU=
 github.com/distribution/reference v0.6.0 
h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
 github.com/distribution/reference v0.6.0/go.mod 
h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
+github.com/dlclark/regexp2 v1.11.0 
h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
+github.com/dlclark/regexp2 v1.11.0/go.mod 
h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
 github.com/docker/docker-credential-helpers v0.8.2 
h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo=
 github.com/docker/docker-credential-helpers v0.8.2/go.mod 
h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
 github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c 
h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8=
@@ -303,6 +305,8 @@
 github.com/rubenv/sql-migrate v1.8.0/go.mod 
h1:F2bGFBwCU+pnmbtNYDeKvSuvL6lBVtXDXUUv5t+u1qw=
 github.com/russross/blackfriday/v2 v2.1.0 
h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 
h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ=
+github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod 
h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
 github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
 github.com/sergi/go-diff v1.2.0/go.mod 
h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
 github.com/shopspring/decimal v1.4.0 
h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
@@ -314,8 +318,9 @@
 github.com/spf13/cast v1.7.0/go.mod 
h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
 github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
 github.com/spf13/cobra v1.9.1/go.mod 
h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
-github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
 github.com/spf13/pflag v1.0.6/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M=
+github.com/spf13/pflag v1.0.7/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/stretchr/objx v0.1.0/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.4.0/go.mod 
h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
@@ -333,13 +338,6 @@
 github.com/stretchr/testify v1.10.0/go.mod 
h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
 github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
 github.com/x448/float16 v0.8.4/go.mod 
h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
-github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod 
h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
-github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb 
h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo=
-github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod 
h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
-github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 
h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
-github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod 
h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
-github.com/xeipuuv/gojsonschema v1.2.0 
h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
-github.com/xeipuuv/gojsonschema v1.2.0/go.mod 
h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
 github.com/xlab/treeprint v1.2.0 
h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ=
 github.com/xlab/treeprint v1.2.0/go.mod 
h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
 github.com/yuin/goldmark v1.1.27/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -393,6 +391,10 @@
 go.opentelemetry.io/proto/otlp v1.4.0/go.mod 
h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY=
 go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
 go.uber.org/goleak v1.3.0/go.mod 
h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
+go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
+go.yaml.in/yaml/v2 v2.4.2/go.mod 
h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
+go.yaml.in/yaml/v3 v3.0.3 h1:bXOww4E/J3f66rav3pX3m8w6jDE4knZjGOw8b5Y6iNE=
+go.yaml.in/yaml/v3 v3.0.3/go.mod 
h1:tBHosrYAkRZjRAOREWbDnBXUf08JOwYq++0QNwQiWzI=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod 
h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@@ -401,8 +403,8 @@
 golang.org/x/crypto v0.13.0/go.mod 
h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
 golang.org/x/crypto v0.14.0/go.mod 
h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
 golang.org/x/crypto v0.15.0/go.mod 
h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g=
-golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
-golang.org/x/crypto v0.39.0/go.mod 
h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
+golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM=
+golang.org/x/crypto v0.40.0/go.mod 
h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY=
 golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
@@ -424,8 +426,8 @@
 golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
 golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
 golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
-golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
-golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
+golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
+golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
 golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc=
 golang.org/x/oauth2 v0.28.0/go.mod 
h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -438,8 +440,8 @@
 golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
 golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
 golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
-golang.org/x/sync v0.15.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
+golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
+golang.org/x/sync v0.16.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -461,8 +463,8 @@
 golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
-golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
+golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
@@ -470,8 +472,8 @@
 golang.org/x/term v0.12.0/go.mod 
h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
 golang.org/x/term v0.13.0/go.mod 
h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
 golang.org/x/term v0.14.0/go.mod 
h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww=
-golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg=
-golang.org/x/term v0.32.0/go.mod 
h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ=
+golang.org/x/term v0.33.0 h1:NuFncQrRcaRvVmgRkvM3j/F00gWIAlcmlB8ACEKmGIg=
+golang.org/x/term v0.33.0/go.mod 
h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
@@ -479,8 +481,8 @@
 golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
 golang.org/x/text v0.13.0/go.mod 
h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.14.0/go.mod 
h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
-golang.org/x/text v0.26.0/go.mod 
h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
+golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=
+golang.org/x/text v0.27.0/go.mod 
h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=
 golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
 golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -491,8 +493,8 @@
 golang.org/x/tools v0.6.0/go.mod 
h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
 golang.org/x/tools v0.13.0/go.mod 
h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
 golang.org/x/tools v0.15.0/go.mod 
h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk=
-golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc=
-golang.org/x/tools v0.33.0/go.mod 
h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI=
+golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo=
+golang.org/x/tools v0.34.0/go.mod 
h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -519,26 +521,26 @@
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod 
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 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/api v0.33.2 h1:YgwIS5jKfA+BZg//OQhkJNIfie/kmRsO0BmNaVSimvY=
-k8s.io/api v0.33.2/go.mod h1:fhrbphQJSM2cXzCWgqU29xLDuks4mu7ti9vveEnpSXs=
-k8s.io/apiextensions-apiserver v0.33.2 
h1:6gnkIbngnaUflR3XwE1mCefN3YS8yTD631JXQhsU6M8=
-k8s.io/apiextensions-apiserver v0.33.2/go.mod 
h1:IvVanieYsEHJImTKXGP6XCOjTwv2LUMos0YWc9O+QP8=
-k8s.io/apimachinery v0.33.2 h1:IHFVhqg59mb8PJWTLi8m1mAoepkUNYmptHsV+Z1m5jY=
-k8s.io/apimachinery v0.33.2/go.mod 
h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM=
-k8s.io/apiserver v0.33.2 h1:KGTRbxn2wJagJowo29kKBp4TchpO1DRO3g+dB/KOJN4=
-k8s.io/apiserver v0.33.2/go.mod h1:9qday04wEAMLPWWo9AwqCZSiIn3OYSZacDyu/AcoM/M=
-k8s.io/cli-runtime v0.33.2 h1:koNYQKSDdq5AExa/RDudXMhhtFasEg48KLS2KSAU74Y=
-k8s.io/cli-runtime v0.33.2/go.mod 
h1:gnhsAWpovqf1Zj5YRRBBU7PFsRc6NkEkwYNQE+mXL88=
-k8s.io/client-go v0.33.2 h1:z8CIcc0P581x/J1ZYf4CNzRKxRvQAwoAolYPbtQes+E=
-k8s.io/client-go v0.33.2/go.mod h1:9mCgT4wROvL948w6f6ArJNb7yQd7QsvqavDeZHvNmHo=
-k8s.io/component-base v0.33.2 h1:sCCsn9s/dG3ZrQTX/Us0/Sx2R0G5kwa0wbZFYoVp/+0=
-k8s.io/component-base v0.33.2/go.mod 
h1:/41uw9wKzuelhN+u+/C59ixxf4tYQKW7p32ddkYNe2k=
+k8s.io/api v0.33.3 h1:SRd5t//hhkI1buzxb288fy2xvjubstenEKL9K51KBI8=
+k8s.io/api v0.33.3/go.mod h1:01Y/iLUjNBM3TAvypct7DIj0M0NIZc+PzAHCIo0CYGE=
+k8s.io/apiextensions-apiserver v0.33.3 
h1:qmOcAHN6DjfD0v9kxL5udB27SRP6SG/MTopmge3MwEs=
+k8s.io/apiextensions-apiserver v0.33.3/go.mod 
h1:oROuctgo27mUsyp9+Obahos6CWcMISSAPzQ77CAQGz8=
+k8s.io/apimachinery v0.33.3 h1:4ZSrmNa0c/ZpZJhAgRdcsFcZOw1PQU1bALVQ0B3I5LA=
+k8s.io/apimachinery v0.33.3/go.mod 
h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM=
+k8s.io/apiserver v0.33.3 h1:Wv0hGc+QFdMJB4ZSiHrCgN3zL3QRatu56+rpccKC3J4=
+k8s.io/apiserver v0.33.3/go.mod h1:05632ifFEe6TxwjdAIrwINHWE2hLwyADFk5mBsQa15E=
+k8s.io/cli-runtime v0.33.3 h1:Dgy4vPjNIu8LMJBSvs8W0LcdV0PX/8aGG1DA1W8lklA=
+k8s.io/cli-runtime v0.33.3/go.mod 
h1:yklhLklD4vLS8HNGgC9wGiuHWze4g7x6XQZ+8edsKEo=
+k8s.io/client-go v0.33.3 h1:M5AfDnKfYmVJif92ngN532gFqakcGi6RvaOF16efrpA=
+k8s.io/client-go v0.33.3/go.mod h1:luqKBQggEf3shbxHY4uVENAxrDISLOarxpTKMiUuujg=
+k8s.io/component-base v0.33.3 h1:mlAuyJqyPlKZM7FyaoM/LcunZaaY353RXiOd2+B5tGA=
+k8s.io/component-base v0.33.3/go.mod 
h1:ktBVsBzkI3imDuxYXmVxZ2zxJnYTZ4HAsVj9iF09qp4=
 k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
 k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
 k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff 
h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4=
 k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod 
h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8=
-k8s.io/kubectl v0.33.2 h1:7XKZ6DYCklu5MZQzJe+CkCjoGZwD1wWl7t/FxzhMz7Y=
-k8s.io/kubectl v0.33.2/go.mod h1:8rC67FB8tVTYraovAGNi/idWIK90z2CHFNMmGJZJ3KI=
+k8s.io/kubectl v0.33.3 h1:r/phHvH1iU7gO/l7tTjQk2K01ER7/OAJi8uFHHyWSac=
+k8s.io/kubectl v0.33.3/go.mod h1:euj2bG56L6kUGOE/ckZbCoudPwuj4Kud7BR0GzyNiT0=
 k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 
h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
 k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod 
h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
 oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc=
@@ -554,5 +556,6 @@
 sigs.k8s.io/randfill v1.0.0/go.mod 
h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
 sigs.k8s.io/structured-merge-diff/v4 v4.6.0 
h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc=
 sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod 
h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps=
-sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
 sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
+sigs.k8s.io/yaml v1.5.0 h1:M10b2U7aEUY6hRtU870n2VTPgR5RZiL/I6Lcc2F4NUQ=
+sigs.k8s.io/yaml v1.5.0/go.mod h1:wZs27Rbxoai4C0f8/9urLZtZtF3avA3gKvGyPdDqTO4=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.18.4/pkg/chartutil/dependencies.go 
new/helm-3.18.6/pkg/chartutil/dependencies.go
--- old/helm-3.18.4/pkg/chartutil/dependencies.go       2025-07-08 
21:58:00.000000000 +0200
+++ new/helm-3.18.6/pkg/chartutil/dependencies.go       2025-08-19 
21:59:50.000000000 +0200
@@ -16,6 +16,7 @@
 package chartutil
 
 import (
+       "fmt"
        "log"
        "strings"
 
@@ -255,8 +256,8 @@
                for _, riv := range r.ImportValues {
                        switch iv := riv.(type) {
                        case map[string]interface{}:
-                               child := iv["child"].(string)
-                               parent := iv["parent"].(string)
+                               child := fmt.Sprintf("%v", iv["child"])
+                               parent := fmt.Sprintf("%v", iv["parent"])
 
                                outiv = append(outiv, map[string]string{
                                        "child":  child,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.18.4/pkg/chartutil/jsonschema.go 
new/helm-3.18.6/pkg/chartutil/jsonschema.go
--- old/helm-3.18.4/pkg/chartutil/jsonschema.go 2025-07-08 21:58:00.000000000 
+0200
+++ new/helm-3.18.6/pkg/chartutil/jsonschema.go 2025-08-19 21:59:50.000000000 
+0200
@@ -18,20 +18,62 @@
 
 import (
        "bytes"
+       "crypto/tls"
+       "errors"
        "fmt"
        "strings"
+       "time"
 
-       "github.com/pkg/errors"
-       "github.com/xeipuuv/gojsonschema"
-       "sigs.k8s.io/yaml"
+       "github.com/santhosh-tekuri/jsonschema/v6"
 
+       "net/http"
+
+       "helm.sh/helm/v3/internal/version"
        "helm.sh/helm/v3/pkg/chart"
 )
 
+// HTTPURLLoader implements a loader for HTTP/HTTPS URLs
+type HTTPURLLoader http.Client
+
+func (l *HTTPURLLoader) Load(urlStr string) (any, error) {
+       client := (*http.Client)(l)
+
+       req, err := http.NewRequest(http.MethodGet, urlStr, nil)
+       if err != nil {
+               return nil, fmt.Errorf("failed to create HTTP request for %s: 
%w", urlStr, err)
+       }
+       req.Header.Set("User-Agent", version.GetUserAgent())
+
+       resp, err := client.Do(req)
+       if err != nil {
+               return nil, fmt.Errorf("HTTP request failed for %s: %w", 
urlStr, err)
+       }
+       defer resp.Body.Close()
+
+       if resp.StatusCode != http.StatusOK {
+               return nil, fmt.Errorf("HTTP request to %s returned status %d 
(%s)", urlStr, resp.StatusCode, http.StatusText(resp.StatusCode))
+       }
+
+       return jsonschema.UnmarshalJSON(resp.Body)
+}
+
+// newHTTPURLLoader creates a HTTP URL loader with proxy support.
+func newHTTPURLLoader() *HTTPURLLoader {
+       httpLoader := HTTPURLLoader(http.Client{
+               Timeout: 15 * time.Second,
+               Transport: &http.Transport{
+                       Proxy:           http.ProxyFromEnvironment,
+                       TLSClientConfig: &tls.Config{},
+               },
+       })
+       return &httpLoader
+}
+
 // ValidateAgainstSchema checks that values does not violate the structure 
laid out in schema
 func ValidateAgainstSchema(chrt *chart.Chart, values map[string]interface{}) 
error {
        var sb strings.Builder
        if chrt.Schema != nil {
+
                err := ValidateAgainstSingleSchema(values, chrt.Schema)
                if err != nil {
                        sb.WriteString(fmt.Sprintf("%s:\n", chrt.Name()))
@@ -39,7 +81,6 @@
                }
        }
 
-       // For each dependency, recursively call this function with the 
coalesced values
        for _, subchart := range chrt.Dependencies() {
                subchartValues := 
values[subchart.Name()].(map[string]interface{})
                if err := ValidateAgainstSchema(subchart, subchartValues); err 
!= nil {
@@ -62,32 +103,48 @@
                }
        }()
 
-       valuesData, err := yaml.Marshal(values)
+       // This unmarshal function leverages UseNumber() for number precision. 
The parser
+       // used for values does this as well.
+       schema, err := jsonschema.UnmarshalJSON(bytes.NewReader(schemaJSON))
        if err != nil {
                return err
        }
-       valuesJSON, err := yaml.YAMLToJSON(valuesData)
+
+       // Configure compiler with loaders for different URL schemes
+       loader := jsonschema.SchemeURLLoader{
+               "file":  jsonschema.FileLoader{},
+               "http":  newHTTPURLLoader(),
+               "https": newHTTPURLLoader(),
+       }
+
+       compiler := jsonschema.NewCompiler()
+       compiler.UseLoader(loader)
+       err = compiler.AddResource("file:///values.schema.json", schema)
        if err != nil {
                return err
        }
-       if bytes.Equal(valuesJSON, []byte("null")) {
-               valuesJSON = []byte("{}")
-       }
-       schemaLoader := gojsonschema.NewBytesLoader(schemaJSON)
-       valuesLoader := gojsonschema.NewBytesLoader(valuesJSON)
 
-       result, err := gojsonschema.Validate(schemaLoader, valuesLoader)
+       validator, err := compiler.Compile("file:///values.schema.json")
        if err != nil {
                return err
        }
 
-       if !result.Valid() {
-               var sb strings.Builder
-               for _, desc := range result.Errors() {
-                       sb.WriteString(fmt.Sprintf("- %s\n", desc))
-               }
-               return errors.New(sb.String())
+       err = validator.Validate(values.AsMap())
+       if err != nil {
+               return JSONSchemaValidationError{err}
        }
 
        return nil
 }
+
+type JSONSchemaValidationError struct {
+       embeddedErr error
+}
+
+func (e JSONSchemaValidationError) Error() string {
+       errStr := e.embeddedErr.Error()
+
+       errStr = strings.TrimPrefix(errStr, "jsonschema validation failed with 
'file:///values.schema.json#'\n")
+
+       return errStr + "\n"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.18.4/pkg/chartutil/jsonschema_test.go 
new/helm-3.18.6/pkg/chartutil/jsonschema_test.go
--- old/helm-3.18.4/pkg/chartutil/jsonschema_test.go    2025-07-08 
21:58:00.000000000 +0200
+++ new/helm-3.18.6/pkg/chartutil/jsonschema_test.go    2025-08-19 
21:59:50.000000000 +0200
@@ -17,7 +17,10 @@
 package chartutil
 
 import (
+       "net/http"
+       "net/http/httptest"
        "os"
+       "strings"
        "testing"
 
        "helm.sh/helm/v3/pkg/chart"
@@ -55,8 +58,9 @@
                errString = err.Error()
        }
 
-       expectedErrString := "unable to validate schema: runtime error: invalid 
" +
-               "memory address or nil pointer dereference"
+       expectedErrString := `"file:///values.schema.json#" is not valid 
against metaschema: jsonschema validation failed with 
'https://json-schema.org/draft/2020-12/schema#'
+- at '': got number, want boolean or object`
+
        if errString != expectedErrString {
                t.Errorf("Error string :\n`%s`\ndoes not match expected\n`%s`", 
errString, expectedErrString)
        }
@@ -79,8 +83,8 @@
                errString = err.Error()
        }
 
-       expectedErrString := `- (root): employmentInfo is required
-- age: Must be greater than or equal to 0
+       expectedErrString := `- at '': missing property 'employmentInfo'
+- at '/age': minimum: got -5, want 0
 `
        if errString != expectedErrString {
                t.Errorf("Error string :\n`%s`\ndoes not match expected\n`%s`", 
errString, expectedErrString)
@@ -104,6 +108,21 @@
 }
 `
 
+const subchartSchema2020 = `{
+       "$schema": "https://json-schema.org/draft/2020-12/schema";,
+       "title": "Values",
+       "type": "object",
+       "properties": {
+               "data": {
+                       "type": "array",
+                       "contains": { "type": "string" },
+                       "unevaluatedItems": { "type": "number" }
+               }
+       },
+       "required": ["data"]
+}
+`
+
 func TestValidateAgainstSchema(t *testing.T) {
        subchartJSON := []byte(subchartSchema)
        subchart := &chart.Chart{
@@ -159,9 +178,111 @@
        }
 
        expectedErrString := `subchart:
-- (root): age is required
+- at '': missing property 'age'
 `
        if errString != expectedErrString {
                t.Errorf("Error string :\n`%s`\ndoes not match expected\n`%s`", 
errString, expectedErrString)
        }
 }
+
+func TestValidateAgainstSchema2020(t *testing.T) {
+       subchartJSON := []byte(subchartSchema2020)
+       subchart := &chart.Chart{
+               Metadata: &chart.Metadata{
+                       Name: "subchart",
+               },
+               Schema: subchartJSON,
+       }
+       chrt := &chart.Chart{
+               Metadata: &chart.Metadata{
+                       Name: "chrt",
+               },
+       }
+       chrt.AddDependency(subchart)
+
+       vals := map[string]interface{}{
+               "name": "John",
+               "subchart": map[string]interface{}{
+                       "data": []any{"hello", 12},
+               },
+       }
+
+       if err := ValidateAgainstSchema(chrt, vals); err != nil {
+               t.Errorf("Error validating Values against Schema: %s", err)
+       }
+}
+
+func TestValidateAgainstSchema2020Negative(t *testing.T) {
+       subchartJSON := []byte(subchartSchema2020)
+       subchart := &chart.Chart{
+               Metadata: &chart.Metadata{
+                       Name: "subchart",
+               },
+               Schema: subchartJSON,
+       }
+       chrt := &chart.Chart{
+               Metadata: &chart.Metadata{
+                       Name: "chrt",
+               },
+       }
+       chrt.AddDependency(subchart)
+
+       vals := map[string]interface{}{
+               "name": "John",
+               "subchart": map[string]interface{}{
+                       "data": []any{12},
+               },
+       }
+
+       var errString string
+       if err := ValidateAgainstSchema(chrt, vals); err == nil {
+               t.Fatalf("Expected an error, but got nil")
+       } else {
+               errString = err.Error()
+       }
+
+       expectedErrString := `subchart:
+- at '/data': no items match contains schema
+  - at '/data/0': got number, want string
+`
+       if errString != expectedErrString {
+               t.Errorf("Error string :\n`%s`\ndoes not match expected\n`%s`", 
errString, expectedErrString)
+       }
+}
+
+func TestHTTPURLLoader_Load(t *testing.T) {
+       // Test successful JSON schema loading
+       t.Run("successful load", func(t *testing.T) {
+               server := httptest.NewServer(http.HandlerFunc(func(w 
http.ResponseWriter, _ *http.Request) {
+                       w.Header().Set("Content-Type", "application/json")
+                       w.WriteHeader(http.StatusOK)
+                       w.Write([]byte(`{"type": "object", "properties": 
{"name": {"type": "string"}}}`))
+               }))
+               defer server.Close()
+
+               loader := newHTTPURLLoader()
+               result, err := loader.Load(server.URL)
+               if err != nil {
+                       t.Fatalf("Expected no error, got: %v", err)
+               }
+               if result == nil {
+                       t.Fatal("Expected result to be non-nil")
+               }
+       })
+
+       t.Run("HTTP error status", func(t *testing.T) {
+               server := httptest.NewServer(http.HandlerFunc(func(w 
http.ResponseWriter, _ *http.Request) {
+                       w.WriteHeader(http.StatusNotFound)
+               }))
+               defer server.Close()
+
+               loader := newHTTPURLLoader()
+               _, err := loader.Load(server.URL)
+               if err == nil {
+                       t.Fatal("Expected error for HTTP 404")
+               }
+               if !strings.Contains(err.Error(), "404") {
+                       t.Errorf("Expected error message to contain '404', got: 
%v", err)
+               }
+       })
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.18.4/pkg/lint/rules/chartfile.go 
new/helm-3.18.6/pkg/lint/rules/chartfile.go
--- old/helm-3.18.4/pkg/lint/rules/chartfile.go 2025-07-08 21:58:00.000000000 
+0200
+++ new/helm-3.18.6/pkg/lint/rules/chartfile.go 2025-08-19 21:59:50.000000000 
+0200
@@ -151,6 +151,9 @@
 
 func validateChartMaintainer(cf *chart.Metadata) error {
        for _, maintainer := range cf.Maintainers {
+               if maintainer == nil {
+                       return errors.New("a maintainer entry is empty")
+               }
                if maintainer.Name == "" {
                        return errors.New("each maintainer requires a name")
                } else if maintainer.Email != "" && 
!govalidator.IsEmail(maintainer.Email) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.18.4/pkg/lint/rules/chartfile_test.go 
new/helm-3.18.6/pkg/lint/rules/chartfile_test.go
--- old/helm-3.18.4/pkg/lint/rules/chartfile_test.go    2025-07-08 
21:58:00.000000000 +0200
+++ new/helm-3.18.6/pkg/lint/rules/chartfile_test.go    2025-08-19 
21:59:50.000000000 +0200
@@ -143,6 +143,16 @@
                        t.Errorf("validateChartMaintainer(%s, %s) to return no 
error, got %s", test.Name, test.Email, err.Error())
                }
        }
+
+       // Testing for an empty maintainer
+       badChart.Maintainers = []*chart.Maintainer{nil}
+       err := validateChartMaintainer(badChart)
+       if err == nil {
+               t.Errorf("validateChartMaintainer did not return error for nil 
maintainer as expected")
+       }
+       if err.Error() != "a maintainer entry is empty" {
+               t.Errorf("validateChartMaintainer returned unexpected error for 
nil maintainer: %s", err.Error())
+       }
 }
 
 func TestValidateChartSources(t *testing.T) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.18.4/pkg/lint/rules/values_test.go 
new/helm-3.18.6/pkg/lint/rules/values_test.go
--- old/helm-3.18.4/pkg/lint/rules/values_test.go       2025-07-08 
21:58:00.000000000 +0200
+++ new/helm-3.18.6/pkg/lint/rules/values_test.go       2025-08-19 
21:59:50.000000000 +0200
@@ -96,7 +96,7 @@
                t.Fatal("expected values file to fail parsing")
        }
 
-       assert.Contains(t, err.Error(), "Expected: string, given: integer", 
"integer should be caught by schema")
+       assert.Contains(t, err.Error(), "- at '/username': got number, want 
string")
 }
 
 func TestValidateValuesFileSchemaOverrides(t *testing.T) {
@@ -129,7 +129,7 @@
                        name:         "value not overridden",
                        yaml:         "username: admin\npassword:",
                        overrides:    map[string]interface{}{"username": 
"anotherUser"},
-                       errorMessage: "Expected: string, given: null",
+                       errorMessage: "- at '/password': got null, want string",
                },
                {
                        name:      "value overridden",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.18.4/pkg/repo/index.go 
new/helm-3.18.6/pkg/repo/index.go
--- old/helm-3.18.4/pkg/repo/index.go   2025-07-08 21:58:00.000000000 +0200
+++ new/helm-3.18.6/pkg/repo/index.go   2025-08-19 21:59:50.000000000 +0200
@@ -357,6 +357,7 @@
                for idx := len(cvs) - 1; idx >= 0; idx-- {
                        if cvs[idx] == nil {
                                log.Printf("skipping loading invalid entry for 
chart %q from %s: empty entry", name, source)
+                               cvs = append(cvs[:idx], cvs[idx+1:]...)
                                continue
                        }
                        // When metadata section missing, initialize with no 
data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.18.4/pkg/repo/index_test.go 
new/helm-3.18.6/pkg/repo/index_test.go
--- old/helm-3.18.4/pkg/repo/index_test.go      2025-07-08 21:58:00.000000000 
+0200
+++ new/helm-3.18.6/pkg/repo/index_test.go      2025-08-19 21:59:50.000000000 
+0200
@@ -68,6 +68,7 @@
   grafana:
   - apiVersion: v2
     name: grafana
+  - null
   foo:
   -
   bar:

++++++ helm.obsinfo ++++++
--- /var/tmp/diff_new_pack.3l1LS3/_old  2025-08-29 18:40:10.798779610 +0200
+++ /var/tmp/diff_new_pack.3l1LS3/_new  2025-08-29 18:40:10.814780289 +0200
@@ -1,5 +1,5 @@
 name: helm
-version: 3.18.4
-mtime: 1752004680
-commit: d80839cf37d860c8aa9a0503fe463278f26cd5e2
+version: 3.18.6
+mtime: 1755633590
+commit: b76a950f6835474e0906b96c9ec68a2eff3a6430
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/helm/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.helm.new.1977/vendor.tar.gz differ: char 30, line 1

Reply via email to