Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package wolfictl for openSUSE:Factory checked in at 2026-03-16 14:17:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wolfictl (Old) and /work/SRC/openSUSE:Factory/.wolfictl.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wolfictl" Mon Mar 16 14:17:31 2026 rev:33 rq:1339215 version:0.39.5 Changes: -------- --- /work/SRC/openSUSE:Factory/wolfictl/wolfictl.changes 2026-03-09 16:15:46.507823838 +0100 +++ /work/SRC/openSUSE:Factory/.wolfictl.new.8177/wolfictl.changes 2026-03-16 14:20:54.378198365 +0100 @@ -1,0 +2,6 @@ +Mon Mar 16 06:07:10 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 0.39.5: + * dag: Allow multiple pipeline dirs (#1899) + +------------------------------------------------------------------- Old: ---- wolfictl-0.39.4.obscpio New: ---- wolfictl-0.39.5.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wolfictl.spec ++++++ --- /var/tmp/diff_new_pack.r9u4dc/_old 2026-03-16 14:20:55.118229136 +0100 +++ /var/tmp/diff_new_pack.r9u4dc/_new 2026-03-16 14:20:55.122229303 +0100 @@ -17,7 +17,7 @@ Name: wolfictl -Version: 0.39.4 +Version: 0.39.5 Release: 0 Summary: A CLI used to work with the Wolfi OSS project License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.r9u4dc/_old 2026-03-16 14:20:55.158230800 +0100 +++ /var/tmp/diff_new_pack.r9u4dc/_new 2026-03-16 14:20:55.174231465 +0100 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="exclude">.git</param> <param name="revision">main</param> - <param name="versionformat">v0.39.4</param> + <param name="versionformat">v0.39.5</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> </service> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.r9u4dc/_old 2026-03-16 14:20:55.202232630 +0100 +++ /var/tmp/diff_new_pack.r9u4dc/_new 2026-03-16 14:20:55.206232796 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/wolfi-dev/wolfictl</param> - <param name="changesrevision">19b64c47614cd36b0c042c462d889a9858c504a9</param></service></servicedata> + <param name="changesrevision">8b8a869568643b43d2546e7d2cb3c26a38634bc1</param></service></servicedata> (No newline at EOF) ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/wolfictl/vendor.tar.gz /work/SRC/openSUSE:Factory/.wolfictl.new.8177/vendor.tar.gz differ: char 131, line 1 ++++++ wolfictl-0.39.4.obscpio -> wolfictl-0.39.5.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wolfictl-0.39.4/docs/cmd/wolfictl_dot.md new/wolfictl-0.39.5/docs/cmd/wolfictl_dot.md --- old/wolfictl-0.39.4/docs/cmd/wolfictl_dot.md 2026-03-02 19:41:59.000000000 +0100 +++ new/wolfictl-0.39.5/docs/cmd/wolfictl_dot.md 2026-03-09 23:36:09.000000000 +0100 @@ -34,7 +34,7 @@ -d, --dir string directory to search for melange configs (default ".") -h, --help help for dot -k, --keyring-append strings path to extra keys to include in the build environment keyring (default [https://packages.wolfi.dev/os/wolfi-signing.rsa.pub]) - --pipeline-dir string directory used to extend defined built-in pipelines + --pipeline-dir strings directory used to extend defined built-in pipelines -R, --recursive recurse through package dependencies -r, --repository-append strings path to extra repositories to include in the build environment (default [https://packages.wolfi.dev/os]) -D, --show-dependents show packages that depend on these packages, instead of these packages' dependencies diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wolfictl-0.39.4/docs/man/man1/wolfictl-dot.1 new/wolfictl-0.39.5/docs/man/man1/wolfictl-dot.1 --- old/wolfictl-0.39.4/docs/man/man1/wolfictl-dot.1 2026-03-02 19:41:59.000000000 +0100 +++ new/wolfictl-0.39.5/docs/man/man1/wolfictl-dot.1 2026-03-09 23:36:09.000000000 +0100 @@ -54,7 +54,7 @@ path to extra keys to include in the build environment keyring .PP -\fB\-\-pipeline\-dir\fP="" +\fB\-\-pipeline\-dir\fP=[] directory used to extend defined built\-in pipelines .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wolfictl-0.39.4/pkg/cli/dot.go new/wolfictl-0.39.5/pkg/cli/dot.go --- old/wolfictl-0.39.4/pkg/cli/dot.go 2026-03-02 19:41:59.000000000 +0100 +++ new/wolfictl-0.39.5/pkg/cli/dot.go 2026-03-09 23:36:09.000000000 +0100 @@ -21,7 +21,8 @@ ) func cmdSVG() *cobra.Command { //nolint:gocyclo - var dir, pipelineDir string + var dir string + var pipelineDirs []string var showDependents, recursive, span, web bool var extraKeys, extraRepos []string d := &cobra.Command{ @@ -47,11 +48,11 @@ `, RunE: func(cmd *cobra.Command, args []string) error { ctx := cmd.Context() - if pipelineDir == "" { - pipelineDir = filepath.Join(dir, "pipelines") + if len(pipelineDirs) == 0 { + pipelineDirs = []string{filepath.Join(dir, "pipelines")} } - pkgs, err := dag.NewPackages(ctx, os.DirFS(dir), dir, pipelineDir) + pkgs, err := dag.NewPackages(ctx, os.DirFS(dir), dir, pipelineDirs) if err != nil { return fmt.Errorf("NewPackages: %w", err) } @@ -298,7 +299,7 @@ }, } d.Flags().StringVarP(&dir, "dir", "d", ".", "directory to search for melange configs") - d.Flags().StringVar(&pipelineDir, "pipeline-dir", "", "directory used to extend defined built-in pipelines") + d.Flags().StringSliceVar(&pipelineDirs, "pipeline-dir", nil, "directory used to extend defined built-in pipelines") d.Flags().BoolVarP(&showDependents, "show-dependents", "D", false, "show packages that depend on these packages, instead of these packages' dependencies") d.Flags().BoolVarP(&recursive, "recursive", "R", false, "recurse through package dependencies") d.Flags().BoolVarP(&span, "spanning-tree", "S", false, "does something like a spanning tree to avoid a huge number of edges") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wolfictl-0.39.4/pkg/cli/text.go new/wolfictl-0.39.5/pkg/cli/text.go --- old/wolfictl-0.39.4/pkg/cli/text.go 2026-03-02 19:41:59.000000000 +0100 +++ new/wolfictl-0.39.5/pkg/cli/text.go 2026-03-09 23:36:09.000000000 +0100 @@ -13,7 +13,8 @@ ) func cmdText() *cobra.Command { - var dir, pipelineDir, arch, t string + var dir, arch, t string + var pipelineDirs []string var extraKeys, extraRepos []string text := &cobra.Command{ Use: "text", @@ -27,13 +28,13 @@ Hidden: true, RunE: func(cmd *cobra.Command, _ []string) error { ctx := cmd.Context() - if pipelineDir == "" { - pipelineDir = filepath.Join(dir, "pipelines") + if len(pipelineDirs) == 0 { + pipelineDirs = []string{filepath.Join(dir, "pipelines")} } arch := types.ParseArchitecture(arch).ToAPK() - pkgs, err := dag.NewPackages(ctx, os.DirFS(dir), dir, pipelineDir) + pkgs, err := dag.NewPackages(ctx, os.DirFS(dir), dir, pipelineDirs) if err != nil { return fmt.Errorf("constructing new package set from directory %q: %w", dir, err) } @@ -49,7 +50,7 @@ }, } text.Flags().StringVarP(&dir, "dir", "d", ".", "directory to search for melange configs") - text.Flags().StringVar(&pipelineDir, "pipeline-dir", "", "directory used to extend defined built-in pipelines") + text.Flags().StringSliceVar(&pipelineDirs, "pipeline-dir", nil, "directory used to extend defined built-in pipelines") text.Flags().StringVarP(&arch, "arch", "a", "x86_64", "architecture to build for") text.Flags().StringVarP(&t, "type", "t", string(typeTarget), fmt.Sprintf("What type of text to emit; values can be one of: %v", textTypes)) text.Flags().StringSliceVarP(&extraKeys, "keyring-append", "k", []string{"https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"}, "path to extra keys to include in the build environment keyring") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wolfictl-0.39.4/pkg/dag/graph_test.go new/wolfictl-0.39.5/pkg/dag/graph_test.go --- old/wolfictl-0.39.4/pkg/dag/graph_test.go 2026-03-02 19:41:59.000000000 +0100 +++ new/wolfictl-0.39.5/pkg/dag/graph_test.go 2026-03-09 23:36:09.000000000 +0100 @@ -23,7 +23,7 @@ testDir = "testdata/basic" ) t.Run("allowed dangling", func(t *testing.T) { - pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, "") + pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, nil) require.NoError(t, err) graph, err := NewGraph(ctx, pkgs, WithAllowUnresolved()) require.NoError(t, err) @@ -54,7 +54,7 @@ } }) t.Run("has expected tree", func(t *testing.T) { - pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, "") + pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, nil) require.NoError(t, err) graph, err := NewGraph(ctx, pkgs, WithRepos(packageRepo), WithKeys(key)) require.NoError(t, err) @@ -93,13 +93,13 @@ ctx := context.Background() var testDir = "testdata/multiple" t.Run("allowed dangling", func(t *testing.T) { - pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, "") + pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, nil) require.NoError(t, err) _, err = NewGraph(ctx, pkgs, WithAllowUnresolved()) require.NoError(t, err) }) t.Run("external dependencies only", func(t *testing.T) { - pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, "") + pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, nil) require.NoError(t, err) graph, err := NewGraph(ctx, pkgs, WithRepos(packageRepo), WithKeys(key)) require.NoError(t, err) @@ -134,7 +134,7 @@ } }) t.Run("internal and external dependencies", func(t *testing.T) { - pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, "") + pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, nil) require.NoError(t, err) graph, err := NewGraph(ctx, pkgs, WithRepos(packageRepo), WithKeys(key)) require.NoError(t, err) @@ -180,7 +180,7 @@ }) t.Run("internal dependencies numbered", func(t *testing.T) { - pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, "") + pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, nil) require.NoError(t, err) graph, err := NewGraph(ctx, pkgs, WithRepos(packageRepo), WithKeys(key)) require.NoError(t, err) @@ -242,7 +242,7 @@ "d": {"a:1.3.5-r1@local"}, } ) - pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, "") + pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, nil) require.NoError(t, err) graph, err := NewGraph(ctx, pkgs, WithRepos(cyclePackageRepo), WithKeys(cycleKey)) require.NoError(t, err) @@ -266,7 +266,7 @@ ctx := context.Background() testDir := "testdata/subpackages" - pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, "") + pkgs, err := NewPackages(ctx, os.DirFS(testDir), testDir, nil) require.NoError(t, err) graph, err := NewGraph(ctx, pkgs, WithAllowUnresolved()) require.NoError(t, err) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wolfictl-0.39.4/pkg/dag/packages.go new/wolfictl-0.39.5/pkg/dag/packages.go --- old/wolfictl-0.39.4/pkg/dag/packages.go 2026-03-02 19:41:59.000000000 +0100 +++ new/wolfictl-0.39.5/pkg/dag/packages.go 2026-03-09 23:36:09.000000000 +0100 @@ -144,11 +144,11 @@ // The input is any fs.FS filesystem implementation. Given a directory path, you // can call NewPackages like this: // -// NewPackages(ctx, os.DirFS("/path/to/dir"), "/path/to/dir", "./pipelines") +// NewPackages(ctx, os.DirFS("/path/to/dir"), "/path/to/dir", []string{"./pipelines"}) // // The repetition of the path is necessary because of how the upstream parser in // melange requires the full path to the directory to be passed in. -func NewPackages(ctx context.Context, fsys fs.FS, dirPath, pipelineDir string) (*Packages, error) { +func NewPackages(ctx context.Context, fsys fs.FS, dirPath string, pipelineDirs []string) (*Packages, error) { log := clog.FromContext(ctx) pkgs := &Packages{ @@ -240,7 +240,7 @@ // Resolve all `uses` used by the pipeline. This updates the set of // .environment.contents.packages so the next block can include those as build deps. build := &build.Build{ - PipelineDirs: []string{pipelineDir}, + PipelineDirs: pipelineDirs, Configuration: c.Configuration, } if err := build.Compile(ctx); err != nil { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wolfictl-0.39.4/pkg/dag/packages_test.go new/wolfictl-0.39.5/pkg/dag/packages_test.go --- old/wolfictl-0.39.4/pkg/dag/packages_test.go 2026-03-02 19:41:59.000000000 +0100 +++ new/wolfictl-0.39.5/pkg/dag/packages_test.go 2026-03-09 23:36:09.000000000 +0100 @@ -12,7 +12,7 @@ ctx := context.Background() testdir := "testdata/multiple" - pkgs, err := NewPackages(ctx, os.DirFS(testdir), testdir, "") + pkgs, err := NewPackages(ctx, os.DirFS(testdir), testdir, nil) require.NoError(t, err) t.Run("loads data correctly", func(t *testing.T) { @@ -31,7 +31,7 @@ t.Run("multiple configurations using the same package name", func(t *testing.T) { testdir = "testdata/duplicate" - pkgs, err = NewPackages(ctx, os.DirFS(testdir), testdir, "") + pkgs, err = NewPackages(ctx, os.DirFS(testdir), testdir, nil) if err == nil { t.Error("should yield an error but got nil") } ++++++ wolfictl.obsinfo ++++++ --- /var/tmp/diff_new_pack.r9u4dc/_old 2026-03-16 14:20:56.154272216 +0100 +++ /var/tmp/diff_new_pack.r9u4dc/_new 2026-03-16 14:20:56.162272548 +0100 @@ -1,5 +1,5 @@ name: wolfictl -version: 0.39.4 -mtime: 1772476919 -commit: 19b64c47614cd36b0c042c462d889a9858c504a9 +version: 0.39.5 +mtime: 1773095769 +commit: 8b8a869568643b43d2546e7d2cb3c26a38634bc1
