Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package melange for openSUSE:Factory checked in at 2025-10-17 17:26:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/melange (Old) and /work/SRC/openSUSE:Factory/.melange.new.18484 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "melange" Fri Oct 17 17:26:38 2025 rev:118 rq:1311879 version:0.31.8 Changes: -------- --- /work/SRC/openSUSE:Factory/melange/melange.changes 2025-10-10 17:12:00.451951348 +0200 +++ /work/SRC/openSUSE:Factory/.melange.new.18484/melange.changes 2025-10-17 17:28:35.329084806 +0200 @@ -1,0 +2,7 @@ +Fri Oct 17 06:21:42 UTC 2025 - Johannes Kastl <[email protected]> + +- Update to version 0.31.8: + * Revert "Fail build when var-transforms produce empty or + non-matching results" (#2185) + +------------------------------------------------------------------- Old: ---- melange-0.31.7.obscpio New: ---- melange-0.31.8.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ melange.spec ++++++ --- /var/tmp/diff_new_pack.kFqZd4/_old 2025-10-17 17:28:36.901151023 +0200 +++ /var/tmp/diff_new_pack.kFqZd4/_new 2025-10-17 17:28:36.901151023 +0200 @@ -17,7 +17,7 @@ Name: melange -Version: 0.31.7 +Version: 0.31.8 Release: 0 Summary: Build APKs from source code License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.kFqZd4/_old 2025-10-17 17:28:36.973154055 +0200 +++ /var/tmp/diff_new_pack.kFqZd4/_new 2025-10-17 17:28:36.981154393 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/chainguard-dev/melange</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.31.7</param> + <param name="revision">v0.31.8</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.kFqZd4/_old 2025-10-17 17:28:37.005155403 +0200 +++ /var/tmp/diff_new_pack.kFqZd4/_new 2025-10-17 17:28:37.017155909 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/chainguard-dev/melange</param> - <param name="changesrevision">0cbbd8bc31b6f44f7d411e7b8e0dc6621cb03d12</param></service></servicedata> + <param name="changesrevision">e01ce749c30dc120bf147a837831ca799b449b96</param></service></servicedata> (No newline at EOF) ++++++ melange-0.31.7.obscpio -> melange-0.31.8.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/melange-0.31.7/pkg/config/vars.go new/melange-0.31.8/pkg/config/vars.go --- old/melange-0.31.7/pkg/config/vars.go 2025-10-09 19:36:57.000000000 +0200 +++ new/melange-0.31.8/pkg/config/vars.go 2025-10-15 18:06:08.000000000 +0200 @@ -76,15 +76,7 @@ return fmt.Errorf("match value: %s string does not compile into a regex: %w", v.Match, err) } - // Check if the regex matches at all - if !re.MatchString(from) { - return fmt.Errorf("var-transform %q failed: regex %q does not match input %q (no substitution will be performed)", v.To, v.Match, from) - } - output := re.ReplaceAllString(from, v.Replace) - if output == "" { - return fmt.Errorf("var-transform %q resulted in empty value (from=%q, match=%q, replace=%q) - transformed variables cannot be empty", v.To, from, v.Match, v.Replace) - } nw[nk] = output } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/melange-0.31.7/pkg/config/vars_test.go new/melange-0.31.8/pkg/config/vars_test.go --- old/melange-0.31.7/pkg/config/vars_test.go 2025-10-09 19:36:57.000000000 +0200 +++ new/melange-0.31.8/pkg/config/vars_test.go 1970-01-01 01:00:00.000000000 +0100 @@ -1,156 +0,0 @@ -// Copyright 2025 Chainguard, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package config - -import ( - "os" - "path/filepath" - "testing" - - "github.com/chainguard-dev/clog/slogtest" - "github.com/stretchr/testify/require" -) - -func Test_VarTransformValidation(t *testing.T) { - ctx := slogtest.Context(t) - - tests := []struct { - name string - config string - errorContains []string - }{ - { - name: "regex doesn't match input (grafana case)", - config: ` -package: - name: test-no-match - version: 12.0.3 - epoch: 0 - -var-transforms: - - from: ${{package.version}} - match: '^(\d+\.\d+\.\d+)\.(\d+)$' - replace: '$1' - to: mangled-package-version - -pipeline: - - runs: echo "version is ${{vars.mangled-package-version}}" -`, - errorContains: []string{ - "var-transform \"mangled-package-version\" failed: regex", - "does not match input \"12.0.3\"", - "(no substitution will be performed)", - }, - }, - { - name: "var-transform results in empty value", - config: ` -package: - name: test-empty-result - version: 1.2.3 - epoch: 0 - -var-transforms: - - from: ${{package.version}} - match: '^(\d+)\.(\d+)\.(\d+)$' - replace: '' - to: empty-version - -pipeline: - - runs: echo "This should not be reached" -`, - errorContains: []string{ - "var-transform \"empty-version\" resulted in empty value", - "transformed variables cannot be empty", - }, - }, - { - name: "empty input with regex that matches empty string", - config: ` -package: - name: test-empty-input - version: 1.0.0 - epoch: 0 - -vars: - empty: "" - -var-transforms: - - from: ${{vars.empty}} - match: '^$' - replace: '' - to: still-empty - -pipeline: - - runs: echo "empty var" -`, - errorContains: []string{ - "var-transform \"still-empty\" resulted in empty value", - "transformed variables cannot be empty", - }, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - fp := filepath.Join(os.TempDir(), "melange-test-var-transform-"+tt.name) - if err := os.WriteFile(fp, []byte(tt.config), 0o644); err != nil { - t.Fatal(err) - } - defer os.Remove(fp) - - _, err := ParseConfiguration(ctx, fp) - require.Error(t, err) - for _, expected := range tt.errorContains { - require.Contains(t, err.Error(), expected) - } - }) - } -} - -func Test_VarTransformSuccess(t *testing.T) { - ctx := slogtest.Context(t) - - // Test case where var-transform works correctly - fp := filepath.Join(os.TempDir(), "melange-test-var-transform-success") - if err := os.WriteFile(fp, []byte(` -package: - name: test-success - version: 12.0.3.01 - epoch: 0 - -var-transforms: - - from: ${{package.version}} - match: '^(\d+\.\d+\.\d+)\.(\d+)$' - replace: '$1' - to: mangled-package-version - -pipeline: - - runs: echo "version is ${{vars.mangled-package-version}}" -`), 0o644); err != nil { - t.Fatal(err) - } - defer os.Remove(fp) - - cfg, err := ParseConfiguration(ctx, fp) - require.NoError(t, err) - - // Verify the transformed variable is set correctly - expectedVar := "${{vars.mangled-package-version}}" - nw := buildConfigMap(cfg) - err = cfg.PerformVarSubstitutions(nw) - require.NoError(t, err) - require.Equal(t, "12.0.3", nw[expectedVar]) -} ++++++ melange.obsinfo ++++++ --- /var/tmp/diff_new_pack.kFqZd4/_old 2025-10-17 17:28:37.645182362 +0200 +++ /var/tmp/diff_new_pack.kFqZd4/_new 2025-10-17 17:28:37.649182530 +0200 @@ -1,5 +1,5 @@ name: melange -version: 0.31.7 -mtime: 1760031417 -commit: 0cbbd8bc31b6f44f7d411e7b8e0dc6621cb03d12 +version: 0.31.8 +mtime: 1760544368 +commit: e01ce749c30dc120bf147a837831ca799b449b96 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/melange/vendor.tar.gz /work/SRC/openSUSE:Factory/.melange.new.18484/vendor.tar.gz differ: char 31, line 1
