Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package helm-schema for openSUSE:Factory 
checked in at 2026-02-13 12:47:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/helm-schema (Old)
 and      /work/SRC/openSUSE:Factory/.helm-schema.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "helm-schema"

Fri Feb 13 12:47:37 2026 rev:5 rq:1332801 version:0.21.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/helm-schema/helm-schema.changes  2026-02-09 
15:35:44.369637691 +0100
+++ /work/SRC/openSUSE:Factory/.helm-schema.new.1977/helm-schema.changes        
2026-02-13 12:47:47.144917662 +0100
@@ -1,0 +2,7 @@
+Fri Feb 13 06:16:39 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.21.2:
+  * fix: Fixed various bugs and improved docs
+  * chore(deps): update actions/checkout digest to de0fac2
+
+-------------------------------------------------------------------

Old:
----
  helm-schema-0.21.1.obscpio

New:
----
  helm-schema-0.21.2.obscpio

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

Other differences:
------------------
++++++ helm-schema.spec ++++++
--- /var/tmp/diff_new_pack.AgqmFQ/_old  2026-02-13 12:47:50.301049845 +0100
+++ /var/tmp/diff_new_pack.AgqmFQ/_new  2026-02-13 12:47:50.305050013 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           helm-schema
-Version:        0.21.1
+Version:        0.21.2
 Release:        0
 Summary:        Generate jsonschemas from helm charts
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.AgqmFQ/_old  2026-02-13 12:47:50.349051856 +0100
+++ /var/tmp/diff_new_pack.AgqmFQ/_new  2026-02-13 12:47:50.353052023 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/dadav/helm-schema</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">0.21.1</param>
+    <param name="revision">0.21.2</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
   </service>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.AgqmFQ/_old  2026-02-13 12:47:50.385053363 +0100
+++ /var/tmp/diff_new_pack.AgqmFQ/_new  2026-02-13 12:47:50.389053530 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/dadav/helm-schema</param>
-              <param 
name="changesrevision">c0ca4c5c600f237539b2a1e5fbfcac7bb963bbbc</param></service></servicedata>
+              <param 
name="changesrevision">4c9eab6daa858d237826da64c21ad0d8eae0486e</param></service></servicedata>
 (No newline at EOF)
 

++++++ helm-schema-0.21.1.obscpio -> helm-schema-0.21.2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-schema-0.21.1/CLAUDE.md 
new/helm-schema-0.21.2/CLAUDE.md
--- old/helm-schema-0.21.1/CLAUDE.md    2026-02-09 06:52:57.000000000 +0100
+++ new/helm-schema-0.21.2/CLAUDE.md    2026-02-12 21:40:06.000000000 +0100
@@ -9,6 +9,7 @@
 ## Build and Test Commands
 
 ### Build
+
 ```bash
 # Build the binary
 go build -o helm-schema ./cmd/helm-schema
@@ -18,6 +19,7 @@
 ```
 
 ### Test
+
 ```bash
 # Run all tests
 go test ./...
@@ -37,6 +39,7 @@
 ```
 
 ### Linting and Formatting
+
 ```bash
 # Format code
 go fmt ./...
@@ -66,6 +69,7 @@
 ### Key Components
 
 #### Schema Parsing (`pkg/schema/schema.go`)
+
 - **`ParseValues()`**: Main entry point that parses a values.yaml file and 
returns a Schema
 - **`parseYamlNode()`**: Recursively traverses YAML nodes, extracting schema 
annotations and inferring types
 - **Annotation blocks**: Comments between `# @schema` markers are parsed as 
YAML to extract JSON Schema properties
@@ -73,6 +77,7 @@
 - **Type inference**: If no type is specified, the tool infers it from YAML 
tags (!!str, !!int, !!bool, etc.)
 
 #### Worker Pattern (`pkg/schema/worker.go`)
+
 - Workers pull chart paths from a channel and process them independently
 - Each worker:
   1. Reads Chart.yaml
@@ -81,15 +86,18 @@
   4. Sends Result to results channel
 
 #### Dependency Graph (`pkg/schema/toposort.go`)
+
 - **TopoSort()**: Uses DFS-based topological sorting to ensure dependencies 
are processed before dependents
 - Detects circular dependencies and can either fail or warn based on 
`allowCircular` flag
 - Returns charts in dependency order (dependencies first, parents last)
 
 #### Chart Models (`pkg/chart/chart.go`)
+
 - **ChartFile**: Represents Chart.yaml structure
 - **Dependency**: Represents a chart dependency with name, version, alias, 
condition
 
 #### Schema Merging (in `main.go`)
+
 - Regular dependencies: Nested under dependency name (or alias) in parent 
schema
 - Library charts: Properties merged directly into parent schema at top level
 - Conditional dependencies: If a dependency has a `condition` field, the 
corresponding boolean property is auto-created in the dependency's schema
@@ -144,6 +152,7 @@
 ### Verification Process
 
 Users can verify plugins with:
+
 ```bash
 helm plugin install <tarball> --verify
 helm plugin verify schema
@@ -154,6 +163,7 @@
 The Schema struct (`pkg/schema/schema.go`) supports the following JSON Schema 
Draft 7 keywords:
 
 ### Core Keywords
+
 - `$schema`, `$id`, `$ref`, `$comment`
 - `type` (single type or array of types)
 - `title`, `description`
@@ -163,17 +173,20 @@
 ### Validation Keywords
 
 #### Numeric (number, integer)
+
 - `minimum`, `maximum` (float64 - supports decimal values like `1.5`)
 - `exclusiveMinimum`, `exclusiveMaximum` (float64)
 - `multipleOf` (float64 - supports `0.1`, `0.01`, etc.)
 
 #### String
+
 - `minLength`, `maxLength`
 - `pattern` (regex pattern)
 - `format` (date-time, email, uri, ipv4, ipv6, uuid, etc.)
 - `contentEncoding`, `contentMediaType`
 
 #### Array
+
 - `items` (single schema or handled via anyOf for arrays)
 - `additionalItems` (boolean or schema)
 - `minItems`, `maxItems`
@@ -181,6 +194,7 @@
 - `contains`
 
 #### Object
+
 - `properties`, `patternProperties`
 - `additionalProperties` (boolean or schema)
 - `required` (boolean or array of strings)
@@ -189,16 +203,24 @@
 - `dependencies`
 
 ### Composition Keywords
+
 - `allOf`, `anyOf`, `oneOf`, `not`
 - `if`, `then`, `else`
 
 ### Annotation Keywords
+
 - `deprecated`, `readOnly`, `writeOnly`
 - `enum`, `const`
 
 ### Custom Annotations
+
 - Any key prefixed with `x-` is treated as a custom annotation
 
+## Documentation Notes
+
+- README plugin verification examples should use a `vX.Y.Z` placeholder to 
avoid version drift.
+- GPG public key fingerprint (from `signing-key.asc`) is `806F 70D2 5667 D42A 
AE4E 07CE F587 0796 9D0F BFA5`; key ID is `F58707969D0FBFA5`.
+
 ## Validation Behavior
 
 The schema validation (`Validate()` method) performs type-specific constraint 
checks:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-schema-0.21.1/README.md 
new/helm-schema-0.21.2/README.md
--- old/helm-schema-0.21.1/README.md    2026-02-09 06:52:57.000000000 +0100
+++ new/helm-schema-0.21.2/README.md    2026-02-12 21:40:06.000000000 +0100
@@ -58,7 +58,7 @@
 
 ```sh
 # Install from a specific release with automatic verification
-helm plugin install 
https://github.com/dadav/helm-schema/releases/download/v0.18.1/helm-schema_0.18.1_Linux_x86_64.tar.gz
+helm plugin install 
https://github.com/dadav/helm-schema/releases/download/vX.Y.Z/helm-schema_X.Y.Z_Linux_x86_64.tar.gz
 ```
 
 **Manual Verification**
@@ -66,11 +66,17 @@
 Before installing, import the signing key:
 
 ```sh
-# Import the public signing key
-gpg --keyserver keyserver.ubuntu.com --recv-keys [KEY_ID]
+# Import the public signing key (from file)
+gpg --import signing-key.asc
+
+# Or import by key ID (last 16 hex chars of the fingerprint)
+gpg --keyserver keyserver.ubuntu.com --recv-keys F58707969D0FBFA5
+
+# Verify the imported key fingerprint (expect: 806F 70D2 5667 D42A AE4E 07CE 
F587 0796 9D0F BFA5)
+gpg --fingerprint F58707969D0FBFA5
 
 # Install with explicit verification
-helm plugin install 
https://github.com/dadav/helm-schema/releases/download/v0.18.1/helm-schema_0.18.1_Linux_x86_64.tar.gz
 --verify
+helm plugin install 
https://github.com/dadav/helm-schema/releases/download/vX.Y.Z/helm-schema_X.Y.Z_Linux_x86_64.tar.gz
 --verify
 ```
 
 **Verify Installed Plugin**
@@ -118,13 +124,13 @@
   -a, --append-newline                         "append newline to generated 
jsonschema at the end of the file"
   -c, --chart-search-root string               "directory to search 
recursively within for charts (default ".")"
   -i, --dependencies-filter strings            "only generate schema for 
specified dependencies (comma-separated list of dependency names)"
-  -g, --dont-add-global                        "dont auto add global property"
+  -g, --dont-add-global                        "don't auto add global property"
   -x, --dont-strip-helm-docs-prefix            "disable the removal of the 
helm-docs prefix (--)"
   -d, --dry-run                                "don't actually create files 
just print to stdout passed"
   -p, --helm-docs-compatibility-mode           "parse and use helm-docs 
comments"
   -h, --help                                   "help for helm-schema"
   -s, --keep-full-comment                      "keep the whole leading comment 
(default: cut at empty line)"
-  -l, --log-level string                       "level of logs that should 
printed, one of (panic, fatal, error, warning, info, debug, trace) (default 
"info")"
+  -l, --log-level string                       "level of logs that should be 
printed, one of (panic, fatal, error, warning, info, debug, trace) (default 
"info")"
   -n, --no-dependencies                        "don't analyze dependencies"
   -o, --output-file string                     "jsonschema file path relative 
to each chart directory to which jsonschema will be written (default 
'values.schema.json')"
   -m, --skip-dependencies-schema-validation    "skip schema validation for 
dependencies by setting additionalProperties to true and removing from required"
@@ -266,7 +272,7 @@
 
 ## Dependencies
 
-Per default, `helm-schema` will try to also create the schemas for the 
dependencies in their respective chart directory. These schemas will be merged 
as properties in the main schema, but the `requiredProperties` field will be 
nullified, otherwise you would have to always overwrite all the required fields.
+By default, `helm-schema` will try to also create the schemas for the 
dependencies in their respective chart directory. These schemas will be merged 
as properties in the main schema, but the `requiredProperties` field will be 
nullified, otherwise you would have to always overwrite all the required fields.
 
 If you don't want to generate `jsonschema` for chart dependencies, you can use 
the `-n, --no-dependencies` option to only generate the `values.schema.json` 
for your parent chart(s)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-schema-0.21.1/cmd/helm-schema/main.go 
new/helm-schema-0.21.2/cmd/helm-schema/main.go
--- old/helm-schema-0.21.1/cmd/helm-schema/main.go      2026-02-09 
06:52:57.000000000 +0100
+++ new/helm-schema-0.21.2/cmd/helm-schema/main.go      2026-02-12 
21:40:06.000000000 +0100
@@ -135,7 +135,7 @@
        }
 
        // Drain any remaining errors
-drainErrors:
+       drainErrors:
        for {
                select {
                case err, ok := <-errs:
@@ -181,7 +181,7 @@
                }
        }
 
-       conditionsToPatch := make(map[string][]string)
+       conditionsToPatch := make(map[string][][]string)
        if !noDeps {
                for _, result := range results {
                        if len(result.Errors) > 0 {
@@ -194,7 +194,16 @@
 
                                if dep.Condition != "" {
                                        conditionKeys := 
strings.Split(dep.Condition, ".")
-                                       conditionsToPatch[conditionKeys[0]] = 
conditionKeys[1:]
+                                       if len(conditionKeys) == 1 {
+                                               continue
+                                       }
+                                       targetName := conditionKeys[0]
+                                       if dep.Alias != "" && dep.Alias == 
conditionKeys[0] {
+                                               targetName = dep.Name
+                                       }
+                                       if targetName != "" {
+                                               conditionsToPatch[targetName] = 
append(conditionsToPatch[targetName], conditionKeys[1:])
+                                       }
                                }
                        }
                }
@@ -232,36 +241,38 @@
                        chartNameToResult[result.Chart.Name] = result
                        log.Debugf("Stored chart %s in chartNameToResult", 
result.Chart.Name)
 
-                       if patch, ok := conditionsToPatch[result.Chart.Name]; 
ok {
-                               schemaToPatch := &result.Schema
-                               lastIndex := len(patch) - 1
-                               for i, key := range patch {
-                                       // Ensure Properties map is initialized
-                                       if schemaToPatch.Properties == nil {
-                                               schemaToPatch.Properties = 
make(map[string]*schema.Schema)
-                                       }
-                                       if alreadyPresentSchema, ok := 
schemaToPatch.Properties[key]; !ok {
-                                               log.Debugf(
-                                                       "Patching conditional 
field \"%s\" into schema of chart %s",
-                                                       key,
-                                                       result.Chart.Name,
-                                               )
-                                               if i == lastIndex {
-                                                       
schemaToPatch.Properties[key] = &schema.Schema{
-                                                               Type:        
[]string{"boolean"},
-                                                               Title:       
key,
-                                                               Description: 
"Conditional property used in parent chart",
+                       if patches, ok := conditionsToPatch[result.Chart.Name]; 
ok {
+                               for _, patch := range patches {
+                                       schemaToPatch := &result.Schema
+                                       lastIndex := len(patch) - 1
+                                       for i, key := range patch {
+                                               // Ensure Properties map is 
initialized
+                                               if schemaToPatch.Properties == 
nil {
+                                                       
schemaToPatch.Properties = make(map[string]*schema.Schema)
+                                               }
+                                               if alreadyPresentSchema, ok := 
schemaToPatch.Properties[key]; !ok {
+                                                       log.Debugf(
+                                                               "Patching 
conditional field \"%s\" into schema of chart %s",
+                                                               key,
+                                                               
result.Chart.Name,
+                                                       )
+                                                       if i == lastIndex {
+                                                               
schemaToPatch.Properties[key] = &schema.Schema{
+                                                                       Type:   
     []string{"boolean"},
+                                                                       Title:  
     key,
+                                                                       
Description: "Conditional property used in parent chart",
+                                                               }
+                                                       } else {
+                                                               
schemaToPatch.Properties[key] = &schema.Schema{
+                                                                       Type:   
    []string{"object"},
+                                                                       Title:  
    key,
+                                                                       
Properties: make(map[string]*schema.Schema),
+                                                               }
+                                                               schemaToPatch = 
schemaToPatch.Properties[key]
                                                        }
                                                } else {
-                                                       
schemaToPatch.Properties[key] = &schema.Schema{
-                                                               Type:       
[]string{"object"},
-                                                               Title:      key,
-                                                               Properties: 
make(map[string]*schema.Schema),
-                                                       }
-                                                       schemaToPatch = 
schemaToPatch.Properties[key]
+                                                       schemaToPatch = 
alreadyPresentSchema
                                                }
-                                       } else {
-                                               schemaToPatch = 
alreadyPresentSchema
                                        }
                                }
                        }
@@ -303,6 +314,9 @@
                                                                Description: 
dependencyResult.Chart.Description,
                                                                Properties:  
dependencyResult.Schema.Properties,
                                                        }
+                                                       if dep.Condition != "" 
&& !strings.Contains(dep.Condition, ".") {
+                                                               depSchema.Type 
= []string{"object", "boolean"}
+                                                       }
                                                        
depSchema.DisableRequiredProperties()
 
                                                        if dep.Alias != "" {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-schema-0.21.1/cmd/helm-schema/version.go 
new/helm-schema-0.21.2/cmd/helm-schema/version.go
--- old/helm-schema-0.21.1/cmd/helm-schema/version.go   2026-02-09 
06:52:57.000000000 +0100
+++ new/helm-schema-0.21.2/cmd/helm-schema/version.go   2026-02-12 
21:40:06.000000000 +0100
@@ -1,3 +1,3 @@
 package main
 
-var version string = "0.21.1"
+var version string = "0.21.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-schema-0.21.1/pkg/schema/schema.go 
new/helm-schema-0.21.2/pkg/schema/schema.go
--- old/helm-schema-0.21.1/pkg/schema/schema.go 2026-02-09 06:52:57.000000000 
+0100
+++ new/helm-schema-0.21.2/pkg/schema/schema.go 2026-02-12 21:40:06.000000000 
+0100
@@ -841,14 +841,6 @@
 }
 
 func (s Schema) validateTypeConstraints() error {
-       if s.Const != nil && !s.Type.IsEmpty() {
-               return errors.New("cannot use both 'const' and 'type' in the 
same schema")
-       }
-
-       if s.Enum != nil && !s.Type.IsEmpty() {
-               return errors.New("cannot use both 'enum' and 'type' in the 
same schema")
-       }
-
        return nil
 }
 
@@ -1249,7 +1241,11 @@
                }
                if !slices.Contains(schema.Type, "object") {
                        // If .Properties is set, type must be object
-                       schema.Type = []string{"object"}
+                       if len(schema.Type) == 0 {
+                               schema.Type = []string{"object"}
+                       } else {
+                               schema.Type = append(schema.Type, "object")
+                       }
                }
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-schema-0.21.1/pkg/schema/worker.go 
new/helm-schema-0.21.2/pkg/schema/worker.go
--- old/helm-schema-0.21.1/pkg/schema/worker.go 2026-02-09 06:52:57.000000000 
+0100
+++ new/helm-schema-0.21.2/pkg/schema/worker.go 2026-02-12 21:40:06.000000000 
+0100
@@ -97,7 +97,7 @@
                }
 
                // Check if we need to add a schema reference
-               if addSchemaReference {
+               if addSchemaReference && !dryRun {
                        schemaRef := `# yaml-language-server: 
$schema=values.schema.json`
                        if !strings.Contains(string(content), schemaRef) {
                                err = util.PrefixFirstYamlDocument(schemaRef, 
valuesPath)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-schema-0.21.1/pkg/schema/worker_test.go 
new/helm-schema-0.21.2/pkg/schema/worker_test.go
--- old/helm-schema-0.21.1/pkg/schema/worker_test.go    2026-02-09 
06:52:57.000000000 +0100
+++ new/helm-schema-0.21.2/pkg/schema/worker_test.go    2026-02-12 
21:40:06.000000000 +0100
@@ -152,3 +152,43 @@
                })
        }
 }
+
+func TestWorker_DryRunDoesNotWriteSchemaReference(t *testing.T) {
+       tmpDir := t.TempDir()
+
+       chartPath := filepath.Join(tmpDir, "Chart.yaml")
+       valuesPath := filepath.Join(tmpDir, "values.yaml")
+
+       err := os.WriteFile(chartPath, []byte("apiVersion: v2\nname: 
test-chart\nversion: 1.0.0\n"), 0o644)
+       assert.NoError(t, err)
+       err = os.WriteFile(valuesPath, []byte("key: value\n"), 0o644)
+       assert.NoError(t, err)
+
+       queue := make(chan string, 1)
+       results := make(chan Result, 1)
+       queue <- chartPath
+       close(queue)
+
+       Worker(
+               true,  // dryRun
+               false, // uncomment
+               true,  // addSchemaReference
+               false, // keepFullComment
+               false, // helmDocsCompatibilityMode
+               false, // dontRemoveHelmDocsPrefix
+               false, // dontAddGlobal
+               false, // annotate
+               []string{"values.yaml"},
+               &SkipAutoGenerationConfig{},
+               "values.schema.json",
+               queue,
+               results,
+       )
+
+       result := <-results
+       assert.Empty(t, result.Errors)
+
+       updated, err := os.ReadFile(valuesPath)
+       assert.NoError(t, err)
+       assert.NotContains(t, string(updated), "yaml-language-server: 
$schema=values.schema.json")
+}

++++++ helm-schema.obsinfo ++++++
--- /var/tmp/diff_new_pack.AgqmFQ/_old  2026-02-13 12:47:50.645064253 +0100
+++ /var/tmp/diff_new_pack.AgqmFQ/_new  2026-02-13 12:47:50.661064923 +0100
@@ -1,5 +1,5 @@
 name: helm-schema
-version: 0.21.1
-mtime: 1770616377
-commit: c0ca4c5c600f237539b2a1e5fbfcac7bb963bbbc
+version: 0.21.2
+mtime: 1770928806
+commit: 4c9eab6daa858d237826da64c21ad0d8eae0486e
 

++++++ vendor.tar.gz ++++++

Reply via email to