Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package werf for openSUSE:Factory checked in at 2025-05-20 09:35:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/werf (Old) and /work/SRC/openSUSE:Factory/.werf.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "werf" Tue May 20 09:35:02 2025 rev:51 rq:1278020 version:2.36.0 Changes: -------- --- /work/SRC/openSUSE:Factory/werf/werf.changes 2025-05-07 19:21:47.088504533 +0200 +++ /work/SRC/openSUSE:Factory/.werf.new.30101/werf.changes 2025-05-20 09:37:14.923148354 +0200 @@ -1,0 +2,17 @@ +Fri May 16 10:16:43 UTC 2025 - Johannes Kastl <opensuse_buildserv...@ojkastl.de> + +- Update to version 2.36.0: + * Features + - deploy: --no-install-crds option for converge, plan, bundle + apply (8fd1a04) + - deploy: --release-label option for converge/bundle apply + (222d031) + - logging: show image index and total to indicate build + progress (b7652b3) + * Bug Fixes + - avoid checksum errors in service worktree when + core.untrackedCache is enabled (0952e34) + - logging: use yellow color for warnings to distinguish them + from errors (c52f375) + +------------------------------------------------------------------- Old: ---- werf-2.35.10.obscpio New: ---- werf-2.36.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ werf.spec ++++++ --- /var/tmp/diff_new_pack.sIPZLk/_old 2025-05-20 09:37:15.919191824 +0200 +++ /var/tmp/diff_new_pack.sIPZLk/_new 2025-05-20 09:37:15.919191824 +0200 @@ -17,7 +17,7 @@ Name: werf -Version: 2.35.10 +Version: 2.36.0 Release: 0 Summary: CLI for the Werf CI/CD system License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.sIPZLk/_old 2025-05-20 09:37:15.951193220 +0200 +++ /var/tmp/diff_new_pack.sIPZLk/_new 2025-05-20 09:37:15.955193395 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/werf/werf</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v2.35.10</param> + <param name="revision">v2.36.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.sIPZLk/_old 2025-05-20 09:37:15.975194268 +0200 +++ /var/tmp/diff_new_pack.sIPZLk/_new 2025-05-20 09:37:15.979194442 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/werf/werf</param> - <param name="changesrevision">921d27891ceac165f6ee26273eb2505d218242cf</param></service></servicedata> + <param name="changesrevision">426238e66c9d60fb6e5a3a9e64761202e356c647</param></service></servicedata> (No newline at EOF) ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/werf/vendor.tar.gz /work/SRC/openSUSE:Factory/.werf.new.30101/vendor.tar.gz differ: char 31, line 1 ++++++ werf-2.35.10.obscpio -> werf-2.36.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/CHANGELOG.md new/werf-2.36.0/CHANGELOG.md --- old/werf-2.35.10/CHANGELOG.md 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/CHANGELOG.md 2025-05-16 11:12:53.000000000 +0200 @@ -1,5 +1,20 @@ # Changelog +## [2.36.0](https://www.github.com/werf/werf/compare/v2.35.10...v2.36.0) (2025-05-15) + + +### Features + +* **deploy:** `--no-install-crds` option for `converge`, `plan`, `bundle apply` ([8fd1a04](https://www.github.com/werf/werf/commit/8fd1a041c15e29fc4b738ec05226a0ddd94f9f58)) +* **deploy:** `--release-label` option for `converge`/`bundle apply` ([222d031](https://www.github.com/werf/werf/commit/222d031da30e7169b4e502c998352673d4cc98a2)) +* **logging:** show image index and total to indicate build progress ([b7652b3](https://www.github.com/werf/werf/commit/b7652b3eec15d56292f0f91034b3bcbf69d5c22b)) + + +### Bug Fixes + +* avoid checksum errors in service worktree when core.untrackedCache is enabled ([0952e34](https://www.github.com/werf/werf/commit/0952e34c0a1434e9269e798f595ff5724af1bab2)) +* **logging:** use yellow color for warnings to distinguish them from errors ([c52f375](https://www.github.com/werf/werf/commit/c52f375882658254025e7da3016164f2bdcfb074)) + ### [2.35.10](https://www.github.com/werf/werf/compare/v2.35.9...v2.35.10) (2025-05-07) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/cmd/werf/bundle/apply/apply.go new/werf-2.36.0/cmd/werf/bundle/apply/apply.go --- old/werf-2.35.10/cmd/werf/bundle/apply/apply.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/cmd/werf/bundle/apply/apply.go 2025-05-16 11:12:53.000000000 +0200 @@ -119,6 +119,8 @@ common.SetupRollbackGraphPath(&commonCmdData, cmd) common.SetupRenderSubchartNotes(&commonCmdData, cmd) + common.SetupNoInstallCRDs(&commonCmdData, cmd) + common.SetupReleaseLabel(&commonCmdData, cmd) defaultTag := os.Getenv("WERF_TAG") if defaultTag == "" { @@ -207,6 +209,11 @@ return fmt.Errorf("get annotations and labels: %w", err) } + releaseLabels, err := common.GetReleaseLabels(&commonCmdData) + if err != nil { + return fmt.Errorf("get release labels: %w", err) + } + chart.CurrentChartType = chart.ChartTypeBundle ctx = action.SetupLogging(ctx, cmp.Or(common.GetNelmLogLevel(&commonCmdData), action.DefaultReleaseInstallLogLevel), action.SetupLoggingOptions{ @@ -238,11 +245,13 @@ KubeToken: *commonCmdData.KubeToken, LogRegistryStreamOut: os.Stdout, NetworkParallelism: common.GetNetworkParallelism(&commonCmdData), + NoInstallCRDs: *commonCmdData.NoInstallCRDs, NoProgressTablePrint: *commonCmdData.StatusProgressPeriodSeconds == -1, ProgressTablePrintInterval: time.Duration(*commonCmdData.StatusProgressPeriodSeconds) * time.Second, RegistryCredentialsPath: registryCredentialsPath, ReleaseHistoryLimit: *commonCmdData.ReleasesHistoryMax, ReleaseInfoAnnotations: serviceAnnotations, + ReleaseLabels: releaseLabels, ReleaseStorageDriver: os.Getenv("HELM_DRIVER"), RollbackGraphPath: common.GetRollbackGraphPath(&commonCmdData), SecretKeyIgnore: *commonCmdData.IgnoreSecretKey, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/cmd/werf/bundle/render/render.go new/werf-2.36.0/cmd/werf/bundle/render/render.go --- old/werf-2.35.10/cmd/werf/bundle/render/render.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/cmd/werf/bundle/render/render.go 2025-05-16 11:12:53.000000000 +0200 @@ -220,7 +220,7 @@ LogIsParseable: true, }) - if err := action.ChartRender(ctx, action.ChartRenderOptions{ + if _, err := action.ChartRender(ctx, action.ChartRenderOptions{ ChartDirPath: bundlePath, ChartRepositoryInsecure: *commonCmdData.InsecureHelmDependencies, ChartRepositorySkipTLSVerify: *commonCmdData.SkipTlsVerifyHelmDependencies, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/cmd/werf/common/cmd_data.go new/werf-2.36.0/cmd/werf/common/cmd_data.go --- old/werf-2.35.10/cmd/werf/common/cmd_data.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/cmd/werf/common/cmd_data.go 2025-05-16 11:12:53.000000000 +0200 @@ -116,6 +116,8 @@ RollbackGraphPath *string RenderSubchartNotes *bool + NoInstallCRDs *bool + ReleaseLabels *[]string VirtualMerge *bool diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/cmd/werf/common/common.go new/werf-2.36.0/cmd/werf/common/common.go --- old/werf-2.35.10/cmd/werf/common/common.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/cmd/werf/common/common.go 2025-05-16 11:12:53.000000000 +0200 @@ -298,6 +298,19 @@ ) } +func SetupNoInstallCRDs(cmdData *CmdData, cmd *cobra.Command) { + cmdData.NoInstallCRDs = new(bool) + + cmd.Flags().BoolVarP(cmdData.NoInstallCRDs, "no-install-crds", "", util.GetBoolEnvironmentDefaultFalse("WERF_NO_INSTALL_CRDS"), `Do not install CRDs from "crds/" directories of installed charts (default $WERF_NO_INSTALL_CRDS)`) +} + +func SetupReleaseLabel(cmdData *CmdData, cmd *cobra.Command) { + cmdData.ReleaseLabels = new([]string) + cmd.Flags().StringArrayVarP(cmdData.ReleaseLabels, "release-label", "", []string{}, `Add Helm release labels (can specify multiple). Kind of labels depends or release storage driver. +Format: labelName=labelValue. +Also, can be specified with $WERF_RELEASE_LABEL_* (e.g. $WERF_RELEASE_LABEL_1=labelName1=labelValue1, $WERF_RELEASE_LABEL_2=labelName2=labelValue2)`) +} + func GetNetworkParallelism(cmdData *CmdData) int { if *cmdData.NetworkParallelism < 1 { panic(fmt.Sprintf("bad network parallelism value: %d (should be >= 1)", *cmdData.NetworkParallelism)) @@ -1327,6 +1340,10 @@ return append(util.PredefinedValuesByEnvNamePrefix("WERF_ADD_ANNOTATION_"), *cmdData.AddAnnotations...) } +func GetReleaseLabel(cmdData *CmdData) []string { + return append(util.PredefinedValuesByEnvNamePrefix("WERF_RELEASE_LABEL_"), *cmdData.ReleaseLabels...) +} + func GetCacheStagesStorage(cmdData *CmdData) []string { return append(util.PredefinedValuesByEnvNamePrefix("WERF_CACHE_REPO_"), *cmdData.CacheStagesStorage...) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/cmd/werf/common/deploy_params.go new/werf-2.36.0/cmd/werf/common/deploy_params.go --- old/werf-2.35.10/cmd/werf/common/deploy_params.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/cmd/werf/common/deploy_params.go 2025-05-16 11:12:53.000000000 +0200 @@ -30,6 +30,15 @@ return result, nil } +func GetReleaseLabels(cmdData *CmdData) (map[string]string, error) { + result, err := keyValueArrayToMap(GetReleaseLabel(cmdData), DefaultKeyValueSeparator) + if err != nil { + return nil, fmt.Errorf("invalid --release-label value: %w", err) + } + + return result, nil +} + // InputArrayToKeyValueMap converts an array of strings in the form of key1=value1[,key2=value2] to a map. func InputArrayToKeyValueMap(input []string, pairSep, keyValueSep string) (map[string]string, error) { result := map[string]string{} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/cmd/werf/converge/converge.go new/werf-2.36.0/cmd/werf/converge/converge.go --- old/werf-2.35.10/cmd/werf/converge/converge.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/cmd/werf/converge/converge.go 2025-05-16 11:12:53.000000000 +0200 @@ -184,6 +184,8 @@ common.SetupRollbackGraphPath(&commonCmdData, cmd) common.SetupRenderSubchartNotes(&commonCmdData, cmd) + common.SetupNoInstallCRDs(&commonCmdData, cmd) + common.SetupReleaseLabel(&commonCmdData, cmd) defaultTimeout, err := util.GetIntEnvVar("WERF_TIMEOUT") if err != nil || defaultTimeout == nil { @@ -430,6 +432,11 @@ return fmt.Errorf("get service values: %w", err) } + releaseLabels, err := common.GetReleaseLabels(&commonCmdData) + if err != nil { + return fmt.Errorf("get release labels: %w", err) + } + loader.ChartFileReader = giterminismManager.FileReader() ctx = action.SetupLogging(ctx, cmp.Or(common.GetNelmLogLevel(&commonCmdData), action.DefaultReleaseInstallLogLevel), action.SetupLoggingOptions{ @@ -465,11 +472,13 @@ KubeToken: *commonCmdData.KubeToken, LogRegistryStreamOut: os.Stdout, NetworkParallelism: common.GetNetworkParallelism(&commonCmdData), + NoInstallCRDs: *commonCmdData.NoInstallCRDs, NoProgressTablePrint: *commonCmdData.StatusProgressPeriodSeconds == -1, ProgressTablePrintInterval: time.Duration(*commonCmdData.StatusProgressPeriodSeconds) * time.Second, RegistryCredentialsPath: registryCredentialsPath, ReleaseHistoryLimit: *commonCmdData.ReleasesHistoryMax, ReleaseInfoAnnotations: serviceAnnotations, + ReleaseLabels: releaseLabels, ReleaseStorageDriver: os.Getenv("HELM_DRIVER"), RollbackGraphPath: common.GetRollbackGraphPath(&commonCmdData), SecretKeyIgnore: *commonCmdData.IgnoreSecretKey, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/cmd/werf/plan/plan.go new/werf-2.36.0/cmd/werf/plan/plan.go --- old/werf-2.35.10/cmd/werf/plan/plan.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/cmd/werf/plan/plan.go 2025-05-16 11:12:53.000000000 +0200 @@ -179,6 +179,7 @@ common.SetupNetworkParallelism(&commonCmdData, cmd) common.SetupKubeQpsLimit(&commonCmdData, cmd) common.SetupKubeBurstLimit(&commonCmdData, cmd) + common.SetupNoInstallCRDs(&commonCmdData, cmd) defaultTimeout, err := util.GetIntEnvVar("WERF_TIMEOUT") if err != nil || defaultTimeout == nil { @@ -464,6 +465,7 @@ KubeToken: *commonCmdData.KubeToken, LogRegistryStreamOut: os.Stdout, NetworkParallelism: common.GetNetworkParallelism(&commonCmdData), + NoInstallCRDs: *commonCmdData.NoInstallCRDs, RegistryCredentialsPath: registryCredentialsPath, ReleaseStorageDriver: os.Getenv("HELM_DRIVER"), SecretKeyIgnore: *commonCmdData.IgnoreSecretKey, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/cmd/werf/render/render.go new/werf-2.36.0/cmd/werf/render/render.go --- old/werf-2.35.10/cmd/werf/render/render.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/cmd/werf/render/render.go 2025-05-16 11:12:53.000000000 +0200 @@ -399,7 +399,7 @@ LogIsParseable: true, }) - if err := action.ChartRender(ctx, action.ChartRenderOptions{ + if _, err := action.ChartRender(ctx, action.ChartRenderOptions{ ChartAppVersion: common.GetHelmChartConfigAppVersion(werfConfig), ChartDirPath: chartPath, ChartRepositoryInsecure: *commonCmdData.InsecureHelmDependencies, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/docs/_includes/reference/cli/werf_bundle_apply.md new/werf-2.36.0/docs/_includes/reference/cli/werf_bundle_apply.md --- old/werf-2.35.10/docs/_includes/reference/cli/werf_bundle_apply.md 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/docs/_includes/reference/cli/werf_bundle_apply.md 2025-05-16 11:12:53.000000000 +0200 @@ -118,8 +118,18 @@ Use specified Kubernetes namespace (default $WERF_NAMESPACE) --network-parallelism=30 Parallelize some network operations (default $WERF_NETWORK_PARALLELISM or 30) + --no-install-crds=false + Do not install CRDs from "crds/" directories of installed charts (default + $WERF_NO_INSTALL_CRDS) --release="" Use specified Helm release name (default $WERF_RELEASE) + --release-label=[] + Add Helm release labels (can specify multiple). Kind of labels depends or release + storage driver. + Format: labelName=labelValue. + Also, can be specified with $WERF_RELEASE_LABEL_* (e.g. + $WERF_RELEASE_LABEL_1=labelName1=labelValue1, + $WERF_RELEASE_LABEL_2=labelName2=labelValue2) --releases-history-max=5 Max releases to keep in release storage ($WERF_RELEASES_HISTORY_MAX or 5 by default) --render-subchart-notes=false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/docs/_includes/reference/cli/werf_converge.md new/werf-2.36.0/docs/_includes/reference/cli/werf_converge.md --- old/werf-2.35.10/docs/_includes/reference/cli/werf_converge.md 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/docs/_includes/reference/cli/werf_converge.md 2025-05-16 11:12:53.000000000 +0200 @@ -264,6 +264,9 @@ deploy.namespace custom template from werf.yaml or $WERF_NAMESPACE) --network-parallelism=30 Parallelize some network operations (default $WERF_NETWORK_PARALLELISM or 30) + --no-install-crds=false + Do not install CRDs from "crds/" directories of installed charts (default + $WERF_NO_INSTALL_CRDS) -p, --parallel=true Run in parallel (default $WERF_PARALLEL or true) --parallel-tasks-limit=5 @@ -275,6 +278,13 @@ --release="" Use specified Helm release name (default [[ project ]]-[[ env ]] template or deploy.helmRelease custom template from werf.yaml or $WERF_RELEASE) + --release-label=[] + Add Helm release labels (can specify multiple). Kind of labels depends or release + storage driver. + Format: labelName=labelValue. + Also, can be specified with $WERF_RELEASE_LABEL_* (e.g. + $WERF_RELEASE_LABEL_1=labelName1=labelValue1, + $WERF_RELEASE_LABEL_2=labelName2=labelValue2) --releases-history-max=5 Max releases to keep in release storage ($WERF_RELEASES_HISTORY_MAX or 5 by default) --render-subchart-notes=false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/docs/_includes/reference/cli/werf_plan.md new/werf-2.36.0/docs/_includes/reference/cli/werf_plan.md --- old/werf-2.35.10/docs/_includes/reference/cli/werf_plan.md 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/docs/_includes/reference/cli/werf_plan.md 2025-05-16 11:12:53.000000000 +0200 @@ -252,6 +252,9 @@ deploy.namespace custom template from werf.yaml or $WERF_NAMESPACE) --network-parallelism=30 Parallelize some network operations (default $WERF_NETWORK_PARALLELISM or 30) + --no-install-crds=false + Do not install CRDs from "crds/" directories of installed charts (default + $WERF_NO_INSTALL_CRDS) -p, --parallel=true Run in parallel (default $WERF_PARALLEL or true) --parallel-tasks-limit=5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/go.mod new/werf-2.36.0/go.mod --- old/werf-2.35.10/go.mod 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/go.mod 2025-05-16 11:12:53.000000000 +0200 @@ -58,7 +58,7 @@ github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 - github.com/werf/3p-helm v0.0.0-20250423070931-cbf97ffb83ad + github.com/werf/3p-helm v0.0.0-20250513175502-6861d09b2363 github.com/werf/3p-helm-for-werf-helm v0.0.0-20241217155820-089f92cd5c9d github.com/werf/common-go v0.0.0-20250417171011-97dbede6f27c github.com/werf/copy-recurse v0.2.7 @@ -66,7 +66,7 @@ github.com/werf/kubedog-for-werf-helm v0.0.0-20241217155728-9d45c48b82b6 github.com/werf/lockgate v0.1.1 github.com/werf/logboek v0.6.1 - github.com/werf/nelm v1.2.3-0.20250430144753-b81646bac089 + github.com/werf/nelm v1.3.1-0.20250514090232-c96056e7f789 github.com/werf/nelm-for-werf-helm v0.0.0-20241217155925-b0e6734d1dbf go.opentelemetry.io/otel v1.24.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/go.sum new/werf-2.36.0/go.sum --- old/werf-2.35.10/go.sum 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/go.sum 2025-05-16 11:12:53.000000000 +0200 @@ -1388,8 +1388,8 @@ github.com/werf/3p-buildah v1.35.2-0.20241120093816-5b80b7b735de/go.mod h1:vVSVUlTu8+99H5j43gBJscpkb/quZvdJg78+6X1HeTM= github.com/werf/3p-docker-buildx v0.13.0-rc2.0.20241111114615-d77c2e1444ad h1:FBDNACfjjpDBwXhALF5LgvEiu08HpUurb/2G323SVsQ= github.com/werf/3p-docker-buildx v0.13.0-rc2.0.20241111114615-d77c2e1444ad/go.mod h1:Q3gtkv8D3sdaa5LJXbzMooYR/A5vBiEB2yQ56wywohM= -github.com/werf/3p-helm v0.0.0-20250423070931-cbf97ffb83ad h1:UNOFSDUUCBNX0HSQPzVPySs7BP7KoqofdgszTOFIrrA= -github.com/werf/3p-helm v0.0.0-20250423070931-cbf97ffb83ad/go.mod h1:bwpkc66otpnI2/K8fteIF/IkrHrq6jrAFW5ETHPNa00= +github.com/werf/3p-helm v0.0.0-20250513175502-6861d09b2363 h1:71f/6hHWMGpm4+nKCKGbpkVMOd2ePzY//qgSBkEQXsY= +github.com/werf/3p-helm v0.0.0-20250513175502-6861d09b2363/go.mod h1:bwpkc66otpnI2/K8fteIF/IkrHrq6jrAFW5ETHPNa00= github.com/werf/3p-helm-for-werf-helm v0.0.0-20241217155820-089f92cd5c9d h1:HN9jmAG2Gyhf8hJca9yoAO2xawNZQ/6OYDomxkKr5Sw= github.com/werf/3p-helm-for-werf-helm v0.0.0-20241217155820-089f92cd5c9d/go.mod h1:fozJ+C/Llp1e+jHxrJOZUu+D4QEw+laQK6W6RFqvTsg= github.com/werf/3p-oras v0.9.1-0.20240115121544-03962ecbd40a h1:PsU9szHZlIH+CjcuIuPXRLc5dsdoaFldvYjS6YHI7YQ= @@ -1406,8 +1406,8 @@ github.com/werf/lockgate v0.1.1/go.mod h1:0yIFSLq9ausy6ejNxF5uUBf/Ib6daMAfXuCaTMZJzIE= github.com/werf/logboek v0.6.1 h1:oEe6FkmlKg0z0n80oZjLplj6sXcBeLleCkjfOOZEL2g= github.com/werf/logboek v0.6.1/go.mod h1:Gez5J4bxekyr6MxTmIJyId1F61rpO+0/V4vjCIEIZmk= -github.com/werf/nelm v1.2.3-0.20250430144753-b81646bac089 h1:qTNuFn/4h9XImxo34MbBXLPUBtXhCuwc69qQzzK4bGA= -github.com/werf/nelm v1.2.3-0.20250430144753-b81646bac089/go.mod h1:9SR2Rfi0uE06z5bbnFRqfZTePNGnbyw9RLOVyYuV+cg= +github.com/werf/nelm v1.3.1-0.20250514090232-c96056e7f789 h1:Lq9A/LFGmIxh0MRs+9PgD6C9GK3ofDoP7i6ijb5pI84= +github.com/werf/nelm v1.3.1-0.20250514090232-c96056e7f789/go.mod h1:xEkU7QBPkPqecrymb9mKTjTlibU9cawc8VbDFQbvUJ0= github.com/werf/nelm-for-werf-helm v0.0.0-20241217155925-b0e6734d1dbf h1:K51qz209c1yJgKzPw8AeS72T21F/ACp0VI3RJvT4THA= github.com/werf/nelm-for-werf-helm v0.0.0-20241217155925-b0e6734d1dbf/go.mod h1:7RJXSGPKKPEvfPqrTwNA8jT7y52O0ebwhSbSn29ESMA= github.com/xanzy/go-gitlab v0.31.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/pkg/build/build_phase.go new/werf-2.36.0/pkg/build/build_phase.go --- old/werf-2.35.10/pkg/build/build_phase.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/pkg/build/build_phase.go 2025-05-16 11:12:53.000000000 +0200 @@ -265,12 +265,12 @@ } } } else { - img := image.NewMultiplatformImage(name, images) + img := image.NewMultiplatformImage(name, images, taskId, len(images)) phase.Conveyor.imagesTree.SetMultiplatformImage(img) // TODO: Separate LocalStagesStorage and RepoStagesStorage interfaces, local should not include metadata publishing methods at all if _, isLocal := phase.Conveyor.StorageManager.GetStagesStorage().(*storage.LocalStagesStorage); !isLocal { - if err := logboek.Context(ctx).LogProcess(logging.ImageLogProcessName(name, img.IsFinal, "")). + if err := logboek.Context(ctx).LogProcess(img.LogDetailedName()). Options(func(options types.LogProcessOptionsInterface) { options.Style(logging.ImageMetadataStyle()) }). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/pkg/build/image/image.go new/werf-2.36.0/pkg/build/image/image.go --- old/werf-2.35.10/pkg/build/image/image.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/pkg/build/image/image.go 2025-05-16 11:12:53.000000000 +0200 @@ -115,6 +115,9 @@ baseStageImage *stage.StageImage stageAsBaseImage stage.Interface + + logImageIndex int + logTotalImages int } func (i *Image) LogName() string { @@ -130,7 +133,7 @@ if i.ShouldLogPlatform() { targetPlatformForLog = i.TargetPlatform } - return logging.ImageLogProcessName(i.Name, i.IsFinal, targetPlatformForLog) + return logging.ImageLogProcessName(i.Name, i.IsFinal, targetPlatformForLog, logging.WithProgress(i.logImageIndex+1, i.logTotalImages)) } func (i *Image) LogProcessStyle() color.Style { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/pkg/build/image/image_tree.go new/werf-2.36.0/pkg/build/image/image_tree.go --- old/werf-2.35.10/pkg/build/image/image_tree.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/pkg/build/image/image_tree.go 2025-05-16 11:12:53.000000000 +0200 @@ -126,6 +126,11 @@ tree.imagesSets = builder.GetImagesSets() tree.images = builder.GetImages() + for ind, img := range tree.images { + img.logImageIndex = ind + img.logTotalImages = len(tree.images) + } + return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/pkg/build/image/multiplatform_image.go new/werf-2.36.0/pkg/build/image/multiplatform_image.go --- old/werf-2.35.10/pkg/build/image/multiplatform_image.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/pkg/build/image/multiplatform_image.go 2025-05-16 11:12:53.000000000 +0200 @@ -4,6 +4,7 @@ "github.com/werf/common-go/pkg/util" "github.com/werf/werf/v2/pkg/image" common_image "github.com/werf/werf/v2/pkg/image" + "github.com/werf/werf/v2/pkg/logging" ) type MultiplatformImage struct { @@ -15,17 +16,22 @@ stageID common_image.StageID stageDesc *common_image.StageDesc finalStageDesc *common_image.StageDesc + + logImageIndex int + logImageTotal int } -func NewMultiplatformImage(name string, images []*Image) *MultiplatformImage { +func NewMultiplatformImage(name string, images []*Image, logImageIndex, logImageTotal int) *MultiplatformImage { if len(images) == 0 { panic("expected at least one image") } img := &MultiplatformImage{ - Name: name, - IsFinal: images[0].IsFinal, - Images: images, + Name: name, + IsFinal: images[0].IsFinal, + Images: images, + logImageIndex: logImageIndex, + logImageTotal: logImageTotal, } metaStageDeps := util.MapFuncToSlice(images, func(img *Image) string { @@ -72,3 +78,7 @@ func (img *MultiplatformImage) SetStageDesc(stageDesc *common_image.StageDesc) { img.stageDesc = stageDesc } + +func (img *MultiplatformImage) LogDetailedName() string { + return logging.ImageLogProcessName(img.Name, img.IsFinal, "", logging.WithProgress(img.logImageIndex+1, img.logImageTotal)) +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/pkg/cleaning/cleanup.go new/werf-2.36.0/pkg/cleaning/cleanup.go --- old/werf-2.35.10/pkg/cleaning/cleanup.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/pkg/cleaning/cleanup.go 2025-05-16 11:12:53.000000000 +0200 @@ -396,7 +396,9 @@ var reachedStageIDs []string var hitStageIDCommitList map[string][]string // TODO(multiarch): iterate target platforms - if err := logboek.Context(ctx).LogProcess(logging.ImageLogProcessName(imageName, false, "")).DoError(func() error { + + header := logging.ImageLogProcessName(imageName, false, "", logging.WithProgress(taskId+1, len(imagePairs))) + if err := logboek.Context(ctx).LogProcess(header).DoError(func() error { if logboek.Context(ctx).Streams().Width() > 120 { m.printStageIDCommitListTable(ctx, imageName) m.printStageIDCustomTagListTable(ctx) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/pkg/logging/image.go new/werf-2.36.0/pkg/logging/image.go --- old/werf-2.35.10/pkg/logging/image.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/pkg/logging/image.go 2025-05-16 11:12:53.000000000 +0200 @@ -7,8 +7,8 @@ ) var ( - finalImageNameFormat = "🛳️ image %s" - intermediateImageNameFormat = "🏗️️ image %s" + finalImagePrettyPrefix = "🛳️ " + intermediateImagePrettyPrefix = "🏗️️ " ) func ImageLogName(name string) string { @@ -18,26 +18,51 @@ return name } -func ImageLogProcessName(name string, isFinal bool, targetPlatform string) string { - appendPlatformFunc := func(name string) string { - if targetPlatform == "" { - return name - } - return fmt.Sprintf("%s [%s]", name, targetPlatform) +func WithProgress(index, total int) Option { + return func(o *Options) { + o.withProgress = true + o.index = index + o.total = total + } +} + +type Options struct { + withProgress bool + index int + total int +} + +type Option func(*Options) + +func ImageLogProcessName(name string, isFinal bool, targetPlatform string, opts ...Option) string { + options := &Options{} + for _, opt := range opts { + opt(options) } - logName := ImageLogName(name) + var res string + res += "image" + " " + ImageLogName(name) + + if targetPlatform != "" { + res += " [" + targetPlatform + "]" + } + + if options.withProgress { + res = fmt.Sprintf("(%d/%d)", options.index, options.total) + " " + res + } if isFinal { - return appendPlatformFunc(fmt.Sprintf(finalImageNameFormat, logName)) + res = finalImagePrettyPrefix + res } else { - return appendPlatformFunc(fmt.Sprintf(intermediateImageNameFormat, logName)) + res = intermediateImagePrettyPrefix + res } + + return res } func DisablePrettyLog() { - finalImageNameFormat = "image %s" - intermediateImageNameFormat = "image %s" + finalImagePrettyPrefix = "" + intermediateImagePrettyPrefix = "" } func ImageDefaultStyle(isFinal bool) color.Style { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/pkg/logging/logger.go new/werf-2.36.0/pkg/logging/logger.go --- old/werf-2.35.10/pkg/logging/logger.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/pkg/logging/logger.go 2025-05-16 11:12:53.000000000 +0200 @@ -5,6 +5,7 @@ "io" "log" + "github.com/gookit/color" "github.com/sirupsen/logrus" "github.com/werf/logboek" @@ -19,6 +20,7 @@ // NewLogger returns new logger for any (foreground or background) mode. func NewLogger() types.LoggerInterface { logger := logboek.DefaultLogger() + logger.Warn().SetStyle(color.New(color.Yellow)) captureOutputFromAnotherLoggers(logger.OutStream()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/pkg/true_git/common.go new/werf-2.36.0/pkg/true_git/common.go --- old/werf-2.35.10/pkg/true_git/common.go 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/pkg/true_git/common.go 2025-05-16 11:12:53.000000000 +0200 @@ -5,7 +5,7 @@ ) func getCommonGitOptions() []string { - return []string{"-c", "core.autocrlf=false", "-c", "gc.auto=0", "-c", "commit.gpgsign=false"} + return []string{"-c", "core.autocrlf=false", "-c", "gc.auto=0", "-c", "commit.gpgsign=false", "-c", "core.untrackedCache=false", "-c", "core.splitIndex=false"} } func debug() bool { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/werf-2.35.10/trdl_channels.yaml new/werf-2.36.0/trdl_channels.yaml --- old/werf-2.35.10/trdl_channels.yaml 2025-05-07 12:17:30.000000000 +0200 +++ new/werf-2.36.0/trdl_channels.yaml 2025-05-16 11:12:53.000000000 +0200 @@ -38,11 +38,11 @@ - name: "2" channels: - name: alpha - version: 2.35.9 + version: 2.35.10 - name: beta - version: 2.35.1 + version: 2.35.10 - name: ea - version: 2.35.1 + version: 2.35.10 - name: stable version: 2.31.1 - name: rock-solid ++++++ werf.obsinfo ++++++ --- /var/tmp/diff_new_pack.sIPZLk/_old 2025-05-20 09:37:17.099243323 +0200 +++ /var/tmp/diff_new_pack.sIPZLk/_new 2025-05-20 09:37:17.103243498 +0200 @@ -1,5 +1,5 @@ name: werf -version: 2.35.10 -mtime: 1746613050 -commit: 921d27891ceac165f6ee26273eb2505d218242cf +version: 2.36.0 +mtime: 1747386773 +commit: 426238e66c9d60fb6e5a3a9e64761202e356c647