Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nova for openSUSE:Factory checked in 
at 2026-09-19 22:21:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nova (Old)
 and      /work/SRC/openSUSE:Factory/.nova.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nova"

Sat Sep 19 22:21:40 2026 rev:41 rq:1378959 version:3.12.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/nova/nova.changes        2026-04-30 
20:29:58.093757164 +0200
+++ /work/SRC/openSUSE:Factory/.nova.new.383539/nova.changes    2026-09-19 
22:22:50.373851286 +0200
@@ -1,0 +2,10 @@
+Sat Sep 19 07:43:51 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 3.12.1:
+  * INS-2928: Fix vulnerabilities for nova (#482)
+  * INS-2847: Prepare nova for unifying circleci (#478)
+  * Update CircleCI configuration to use GCP Docker login instead
+    of Quay.io (#459)
+  * fix env injection for nova release (#458)
+
+-------------------------------------------------------------------

Old:
----
  nova-3.12.0.obscpio

New:
----
  nova-3.12.1.obscpio

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

Other differences:
------------------
++++++ nova.spec ++++++
--- /var/tmp/diff_new_pack.a5ahXO/_old  2026-09-19 22:22:51.218886530 +0200
+++ /var/tmp/diff_new_pack.a5ahXO/_new  2026-09-19 22:22:51.222886696 +0200
@@ -17,14 +17,14 @@
 
 
 Name:           nova
-Version:        3.12.0
+Version:        3.12.1
 Release:        0
 Summary:        Find outdated or deprecated Helm charts running in your cluster
 License:        Apache-2.0
 URL:            https://github.com/FairwindsOps/nova
 Source:         nova-%{version}.tar.gz
 Source1:        vendor.tar.gz
-BuildRequires:  go1.26 >= 1.26.0
+BuildRequires:  go1.27 >= 1.27.1
 
 # found conflict of nova-3.4.0-1.1.x86_64 with 
python3-novaclient-17.6.0-1.2.noarch
 #   /usr/bin/nova

++++++ _service ++++++
--- /var/tmp/diff_new_pack.a5ahXO/_old  2026-09-19 22:22:51.251887906 +0200
+++ /var/tmp/diff_new_pack.a5ahXO/_new  2026-09-19 22:22:51.254888031 +0200
@@ -1,9 +1,9 @@
 <services>
   <service name="obs_scm" mode="manual">
-    <param name="url">https://github.com/FairwindsOps/nova</param>
+    <param name="url">https://github.com/FairwindsOps/nova.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v3.12.0</param>
+    <param name="revision">refs/tags/v3.12.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.a5ahXO/_old  2026-09-19 22:22:51.274888865 +0200
+++ /var/tmp/diff_new_pack.a5ahXO/_new  2026-09-19 22:22:51.276888949 +0200
@@ -1,6 +1,8 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/FairwindsOps/nova</param>
-              <param 
name="changesrevision">0803b0840d990bbf6518951899fcf8b948acc971</param></service></servicedata>
+              <param 
name="changesrevision">0803b0840d990bbf6518951899fcf8b948acc971</param></service><service
 name="tar_scm">
+                <param 
name="url">https://github.com/FairwindsOps/nova.git</param>
+              <param 
name="changesrevision">686e939f41cd8e72b3e888b989622b3aa5d0700d</param></service></servicedata>
 (No newline at EOF)
 

++++++ nova-3.12.0.obscpio -> nova-3.12.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/.circleci/config.yml 
new/nova-3.12.1/.circleci/config.yml
--- old/nova-3.12.0/.circleci/config.yml        2026-04-27 23:17:17.000000000 
+0200
+++ new/nova-3.12.1/.circleci/config.yml        2026-09-15 19:51:18.000000000 
+0200
@@ -1,7 +1,8 @@
+## DO NOT EDIT - Managed by Terraform
 version: 2.1
 
 orbs:
-  rok8s: fairwinds/rok8s-scripts@14
+  rok8s: fairwinds/[email protected]
   oss-docs: fairwinds/oss-docs@0
 
 references:
@@ -23,30 +24,29 @@
         sudo apt-get install -y qemu-user-static binfmt-support
         docker buildx create --use || true
         docker buildx inspect --bootstrap
+
 jobs:
   test:
     docker:
-      - image: cimg/go:1.26.2
+      - image: cimg/go:1.27.1
     steps:
       - checkout
       - run:
-          name: lint
+          name: Go Mod Download
+          command: go mod download && go mod verify
+      - run:
+          name: golangci-lint
           command: |
-            echo "installing golint"
-            go install golang.org/x/lint/golint@latest
-            echo "linting..."
-            golint -set_exit_status ./... | tee golint-report.out
-            echo "checking go fmt..."
-            if ! test -z $(go fmt ./...); then
-              echo "Please run go fmt ./... to format your code"
-              exit 1
-            fi
+            curl -fsSL -o golangci-lint.tar.gz 
https://github.com/golangci/golangci-lint/releases/download/v2.13.2/golangci-lint-2.13.2-linux-amd64.tar.gz
+            echo 
'2277d43b98ec0054280f2ac26b53268bae97682444678a59a657dd565da021d6  
golangci-lint.tar.gz' | sha256sum -c
+            tar -xzf golangci-lint.tar.gz
+            mv golangci-lint-2.13.2-linux-amd64/golangci-lint "$(go env 
GOPATH)/bin/golangci-lint"
+            golangci-lint run --timeout 5m
       - run:
           name: test
           command: |
-            go test -v --bench --benchmem -coverprofile=coverage.txt 
-covermode=atomic ./pkg/...
-            go vet 2> govet-report.out
-            go tool cover -html=coverage.txt -o cover-report.html
+            go test -v -coverprofile=coverage.txt -covermode=atomic ./pkg/...
+            go vet ./...
   snapshot:
     machine:
       image: ubuntu-2204:current
@@ -63,7 +63,7 @@
               -e CIRCLE_SHA1 \
               -e CIRCLE_BRANCH \
               -e CIRCLE_TAG \
-              goreleaser/goreleaser:v2.15.4 release --snapshot --skip=sign
+              goreleaser/goreleaser:v2.18.1 release --snapshot --skip=sign
       - store_artifacts:
           path: dist
           destination: snapshot
@@ -78,9 +78,9 @@
       - rok8s/get_vault_env:
           vault_path: repo/global/env
       - run:
-          name: docker login
+          name: docker login Google Artifact Registry
           command: |
-            docker login -u _json_key -p "$(echo 
$GCP_ARTIFACTREADWRITE_JSON_KEY | base64 -d)" us-docker.pkg.dev
+            echo "$GCP_ARTIFACTREADWRITE_JSON_KEY" | base64 -d | docker login 
-u _json_key --password-stdin us-docker.pkg.dev
       - *setup_qemu_binfmt
       - run:
           name: Run GoReleaser release
@@ -97,12 +97,16 @@
               -e GITHUB_TOKEN \
               -e VAULT_ADDR \
               -e VAULT_TOKEN \
-              goreleaser/goreleaser:v2.15.4 release
+              goreleaser/goreleaser:v2.18.1 release
+
 workflows:
   version: 2
   test_and_build:
     jobs:
-      - test
+      - test:
+          filters:
+            tags:
+              ignore: /.*/
       - snapshot:
           requires:
             - test
@@ -113,17 +117,27 @@
               ignore: /.*/
   release:
     jobs:
-      - oss-docs/publish-docs:
-          repository: nova
+      - test:
           filters:
             branches:
               ignore: /.*/
             tags:
-              only: /^.*/
+              only: /v.*/
       - release:
+          requires:
+            - test
           context: org-global
           filters:
             branches:
               ignore: /.*/
             tags:
-              only: /.*/
+              only: /v.*/
+      - oss-docs/publish-docs:
+          requires:
+            - release
+          repository: nova
+          filters:
+            branches:
+              ignore: /.*/
+            tags:
+              only: /v.*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/CODEOWNERS new/nova-3.12.1/CODEOWNERS
--- old/nova-3.12.0/CODEOWNERS  2026-04-27 23:17:17.000000000 +0200
+++ new/nova-3.12.1/CODEOWNERS  2026-09-15 19:51:18.000000000 +0200
@@ -1,2 +1,2 @@
 ## DO NOT EDIT - Managed by Terraform
-* @sudermanjr @transient1
+* @sudermanjr @transient1 @azahorscak
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/Dockerfile new/nova-3.12.1/Dockerfile
--- old/nova-3.12.0/Dockerfile  2026-04-27 23:17:17.000000000 +0200
+++ new/nova-3.12.1/Dockerfile  2026-09-15 19:51:18.000000000 +0200
@@ -1,4 +1,4 @@
-FROM alpine:3.23.4
+FROM alpine:3.24.1
 
 LABEL org.opencontainers.image.authors="FairwindsOps, Inc." \
       org.opencontainers.image.vendor="FairwindsOps, Inc." \
@@ -11,6 +11,7 @@
 
 # Install CA bundle for TLS.
 RUN apk --no-cache add ca-certificates
+RUN apk --no-cache add --upgrade libcrypto3 libssl3
 
 USER nobody
 COPY nova /
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/cmd/root.go new/nova-3.12.1/cmd/root.go
--- old/nova-3.12.0/cmd/root.go 2026-04-27 23:17:17.000000000 +0200
+++ new/nova-3.12.1/cmd/root.go 2026-09-15 19:51:18.000000000 +0200
@@ -177,7 +177,7 @@
                if err != nil {
                        klog.Exitf("failed to download config: %s", err.Error())
                }
-               defer os.Remove(cfgFile)
+               defer func() { _ = os.Remove(cfgFile) }()
        }
 
        // Read config
@@ -213,14 +213,17 @@
        if err != nil {
                return "", &errors.StatusError{}
        }
-       defer resp.Body.Close()
+       defer func() { _ = resp.Body.Close() }()
 
        size, err := io.Copy(file, resp.Body)
        if err != nil {
+               _ = file.Close()
                return "", err
        }
 
-       defer file.Close()
+       if err := file.Close(); err != nil {
+               return "", err
+       }
 
        tmpConfig := file.Name()
        klog.V(2).Infof("downloaded config file %s with size %d", tmpConfig, 
size)
@@ -257,7 +260,7 @@
                kubeConfigPath := viper.GetString("kubeconfig")
 
                format := viper.GetString("format")
-               if !(format == output.TableFormat || format == 
output.JSONFormat) {
+               if format != output.TableFormat && format != output.JSONFormat {
                        klog.Exitf("--format flag value is not valid. Run `nova 
find --help` to see flag options")
                }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/go.mod new/nova-3.12.1/go.mod
--- old/nova-3.12.0/go.mod      2026-04-27 23:17:17.000000000 +0200
+++ new/nova-3.12.1/go.mod      2026-09-15 19:51:18.000000000 +0200
@@ -1,6 +1,6 @@
 module github.com/fairwindsops/nova
 
-go 1.26.2
+go 1.27.1
 
 require (
        github.com/Masterminds/semver/v3 v3.4.0
@@ -80,12 +80,12 @@
        github.com/x448/float16 v0.8.4 // indirect
        go.yaml.in/yaml/v2 v2.4.4 // indirect
        go.yaml.in/yaml/v3 v3.0.4 // indirect
-       golang.org/x/net v0.51.0 // indirect
+       golang.org/x/net v0.58.0 // indirect
        golang.org/x/oauth2 v0.36.0 // indirect
-       golang.org/x/sync v0.20.0 // indirect
-       golang.org/x/sys v0.43.0 // indirect
-       golang.org/x/term v0.40.0 // indirect
-       golang.org/x/text v0.34.0 // indirect
+       golang.org/x/sync v0.22.0 // indirect
+       golang.org/x/sys v0.47.0 // indirect
+       golang.org/x/term v0.45.0 // indirect
+       golang.org/x/text v0.41.0 // indirect
        golang.org/x/time v0.15.0 // indirect
        google.golang.org/protobuf v1.36.11 // indirect
        gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/go.sum new/nova-3.12.1/go.sum
--- old/nova-3.12.0/go.sum      2026-04-27 23:17:17.000000000 +0200
+++ new/nova-3.12.1/go.sum      2026-09-15 19:51:18.000000000 +0200
@@ -207,24 +207,24 @@
 go.yaml.in/yaml/v2 v2.4.4/go.mod 
h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ=
 go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
 go.yaml.in/yaml/v3 v3.0.4/go.mod 
h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
-golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
-golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
-golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo=
-golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y=
+golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk=
+golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40=
+golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To=
+golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU=
 golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs=
 golang.org/x/oauth2 v0.36.0/go.mod 
h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q=
-golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
-golang.org/x/sync v0.20.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
-golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
-golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
-golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg=
-golang.org/x/term v0.40.0/go.mod 
h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM=
-golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=
-golang.org/x/text v0.34.0/go.mod 
h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA=
+golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek=
+golang.org/x/sync v0.22.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
+golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
+golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0=
+golang.org/x/term v0.45.0/go.mod 
h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w=
+golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8=
+golang.org/x/text v0.41.0/go.mod 
h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M=
 golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U=
 golang.org/x/time v0.15.0/go.mod 
h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno=
-golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
-golang.org/x/tools v0.44.0/go.mod 
h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
+golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE=
+golang.org/x/tools v0.48.0/go.mod 
h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk=
 google.golang.org/protobuf v1.36.11 
h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
 google.golang.org/protobuf v1.36.11/go.mod 
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/pkg/containers/images_test.go 
new/nova-3.12.1/pkg/containers/images_test.go
--- old/nova-3.12.0/pkg/containers/images_test.go       2026-04-27 
23:17:17.000000000 +0200
+++ new/nova-3.12.1/pkg/containers/images_test.go       2026-09-15 
19:51:18.000000000 +0200
@@ -15,7 +15,6 @@
 package containers
 
 import (
-       "context"
        "encoding/json"
        "reflect"
        "testing"
@@ -379,16 +378,3 @@
        }
 }
 
-func setupKubeObjects(t *testing.T, c *Client) {
-       _, err := 
c.Kube.Client.CoreV1().Pods(testNamespace).Create(context.TODO(), testPodSpec, 
metav1.CreateOptions{})
-       if err != nil {
-               t.Errorf("Error creating pod: %v", err)
-       }
-}
-
-func teardownKubeObjects(t *testing.T, c *Client) {
-       err := 
c.Kube.Client.CoreV1().Pods(testNamespace).Delete(context.TODO(), testPodName, 
metav1.DeleteOptions{})
-       if err != nil {
-               t.Errorf("Error deleting pod: %v", err)
-       }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/pkg/helm/artifacthub.go 
new/nova-3.12.1/pkg/helm/artifacthub.go
--- old/nova-3.12.0/pkg/helm/artifacthub.go     2026-04-27 23:17:17.000000000 
+0200
+++ new/nova-3.12.1/pkg/helm/artifacthub.go     2026-09-15 19:51:18.000000000 
+0200
@@ -181,9 +181,7 @@
        klog.V(5).Infof("found %d packages matching '%s'", totalCount, 
searchTerm)
 
        ret := make([]ArtifactHubPackageSearch, totalCount)
-       for i, p := range firstSet.Packages {
-               ret[i] = p
-       }
+       copy(ret, firstSet.Packages)
        if totalCount > maxArtifactHubRequestLimit {
                wg := sync.WaitGroup{}
                for i := maxArtifactHubRequestLimit; i < totalCount; i += 
maxArtifactHubRequestLimit {
@@ -287,7 +285,7 @@
                }
        }
        if resp.StatusCode == http.StatusOK {
-               defer resp.Body.Close()
+               defer func() { _ = resp.Body.Close() }()
                err := json.NewDecoder(resp.Body).Decode(&ret)
                if err != nil {
                        klog.V(3).Infof("error decoding search json with search 
term '%s': %s", searchTerm, err)
@@ -337,7 +335,7 @@
                }
        }
        if resp.StatusCode == http.StatusOK {
-               defer resp.Body.Close()
+               defer func() { _ = resp.Body.Close() }()
                err := json.NewDecoder(resp.Body).Decode(&ret.Package)
                if err != nil {
                        klog.V(3).Infof("error decoding response for path 
%s:\n%v", path, err)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/pkg/output/file_test.go 
new/nova-3.12.1/pkg/output/file_test.go
--- old/nova-3.12.0/pkg/output/file_test.go     2026-04-27 23:17:17.000000000 
+0200
+++ new/nova-3.12.1/pkg/output/file_test.go     2026-09-15 19:51:18.000000000 
+0200
@@ -60,14 +60,14 @@
        assert.Nil(t, existsErr)
 
        if existsErr == nil {
-               os.Remove(path)
+               _ = os.Remove(path)
        }
 
        _, existsCSVErr := os.Stat(pathcsv)
        assert.Nil(t, existsCSVErr)
 
        if existsErr == nil {
-               os.Remove(pathcsv)
+               _ = os.Remove(pathcsv)
        }
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/pkg/output/output.go 
new/nova-3.12.1/pkg/output/output.go
--- old/nova-3.12.0/pkg/output/output.go        2026-04-27 23:17:17.000000000 
+0200
+++ new/nova-3.12.1/pkg/output/output.go        2026-09-15 19:51:18.000000000 
+0200
@@ -139,12 +139,11 @@
                }
        case ".csv":
                file, err := os.Create(filename)
-               defer file.Close()
                if err != nil {
                        return err
                }
+               defer func() { _ = file.Close() }()
                w := csv.NewWriter(file)
-               defer w.Flush()
                header := []string{"Release Name", "Chart Name", "Namespace", 
"HelmVersion", "Installed", "Latest", "Old", "Deprecated"}
                var data [][]string
                data = append(data, header)
@@ -152,9 +151,11 @@
                        row := []string{rl.ReleaseName, rl.ChartName, 
rl.Namespace, rl.HelmVersion, rl.Installed.Version, rl.Latest.Version, 
strconv.FormatBool(rl.IsOld), strconv.FormatBool(rl.Deprecated)}
                        data = append(data, row)
                }
-               w.WriteAll(data)
+               if err := w.WriteAll(data); err != nil {
+                       return err
+               }
        default:
-               return errors.New("File format is not supported. The supported 
file format are json and csv only")
+               return errors.New("file format is not supported. The supported 
file format are json and csv only")
        }
        return nil
 }
@@ -168,7 +169,7 @@
        switch format {
        case JSONFormat:
                data, _ := marshalWithoutHTMLEscaping(output.HelmReleases)
-               fmt.Fprintln(os.Stdout, string(data))
+               _, _ = fmt.Fprintln(os.Stdout, string(data))
        case TableFormat:
                w := tabwriter.NewWriter(os.Stdout, 0, 4, 4, ' ', 0)
                header := "Release Name\t"
@@ -176,13 +177,13 @@
                        header += "Chart Name\tNamespace\tHelmVersion\t"
                }
                header += "Installed\tLatest\tOld\tDeprecated"
-               fmt.Fprintln(w, header)
+               _, _ = fmt.Fprintln(w, header)
                separator := "============\t"
                if wide {
                        separator += "==========\t=========\t===========\t"
                }
                separator += "=========\t======\t===\t=========="
-               fmt.Fprintln(w, separator)
+               _, _ = fmt.Fprintln(w, separator)
 
                for _, release := range output.HelmReleases {
                        if (!output.IncludeAll && release.Latest.Version == "") 
|| (showOld && !release.IsOld) {
@@ -198,9 +199,9 @@
                        line += release.Latest.Version + "\t"
                        line += fmt.Sprintf("%t", release.IsOld) + "\t"
                        line += fmt.Sprintf("%t", release.Deprecated) + "\t"
-                       fmt.Fprintln(w, line)
+                       _, _ = fmt.Fprintln(w, line)
                }
-               w.Flush()
+               _ = w.Flush()
        default:
                klog.Errorf("Output format is not supported. The supported 
formats are json and table only")
        }
@@ -285,14 +286,14 @@
        switch format {
        case JSONFormat:
                data, _ := marshalWithoutHTMLEscaping(output)
-               fmt.Fprintln(os.Stdout, string(data))
+               _, _ = fmt.Fprintln(os.Stdout, string(data))
        case TableFormat:
                w := tabwriter.NewWriter(os.Stdout, 0, 4, 4, ' ', 0)
                if len(output.ContainerImages) != 0 {
                        header := "Container Name\tCurrent 
Version\tOld\tLatest\tLatest Minor\tLatest Patch"
-                       fmt.Fprintln(w, header)
+                       _, _ = fmt.Fprintln(w, header)
                        separator := 
"==============\t===============\t===\t======\t=============\t============="
-                       fmt.Fprintln(w, separator)
+                       _, _ = fmt.Fprintln(w, separator)
 
                        for _, c := range output.ContainerImages {
                                if !output.IncludeAll && c.LatestVersion == 
c.CurrentVersion {
@@ -304,25 +305,25 @@
                                line += c.LatestVersion + "\t"
                                line += c.LatestMinorVersion + "\t"
                                line += c.LatestPatchVersion + "\t"
-                               fmt.Fprintln(w, line)
+                               _, _ = fmt.Fprintln(w, line)
                        }
                }
 
                if len(output.ErrImages) == 0 {
-                       w.Flush()
+                       _ = w.Flush()
                        return
                }
-               fmt.Fprintln(w, "\n\nErrors:")
+               _, _ = fmt.Fprintln(w, "\n\nErrors:")
                errHeader := "Container Name\tError"
-               fmt.Fprintln(w, errHeader)
+               _, _ = fmt.Fprintln(w, errHeader)
                errSeparator := "==============\t====="
-               fmt.Fprintln(w, errSeparator)
+               _, _ = fmt.Fprintln(w, errSeparator)
                for _, e := range output.ErrImages {
                        line := e.Image + "\t"
                        line += e.Err + "\t"
-                       fmt.Fprintln(w, line)
+                       _, _ = fmt.Fprintln(w, line)
                }
-               w.Flush()
+               _ = w.Flush()
                if output.LatestStringFound {
                        fmt.Printf("Found a container utilizing the 'latest' 
tag. This is bad practice and should be avoided.\n\n")
                }
@@ -372,7 +373,7 @@
                        IncludeAll: output.Helm.IncludeAll,
                }
                data, _ := marshalWithoutHTMLEscaping(outputFormat)
-               fmt.Fprintln(os.Stdout, string(data))
+               _, _ = fmt.Fprintln(os.Stdout, string(data))
        }
 }
 
@@ -404,7 +405,7 @@
                        klog.Errorf("Error writing to file %s: %v", filename, 
err)
                }
        default:
-               return errors.New("File format is not supported. The supported 
file format is json only")
+               return errors.New("file format is not supported. The supported 
file format is json only")
        }
        return nil
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nova-3.12.0/renovate.json 
new/nova-3.12.1/renovate.json
--- old/nova-3.12.0/renovate.json       1970-01-01 01:00:00.000000000 +0100
+++ new/nova-3.12.1/renovate.json       2026-09-15 19:51:18.000000000 +0200
@@ -0,0 +1,97 @@
+// DO NOT EDIT - Managed by Terraform
+{
+  "$schema": "https://docs.renovatebot.com/renovate-schema.json";,
+  "extends": [
+    "config:recommended",
+    ":dependencyDashboard"
+  ],
+  "labels": ["dependencies"],
+  "prConcurrentLimit": 10,
+  "branchConcurrentLimit": 10,
+  "minimumReleaseAge": "7 days",
+  "enabledManagers": [
+    "gomod",
+    "dockerfile",
+    "circleci",
+    "custom.regex"
+  ],
+  "postUpdateOptions": ["gomodTidy", "gomodUpdateImportPaths"],
+  "customManagers": [
+    {
+      "description": "HashiCorp Vault download URL in CircleCI",
+      "customType": "regex",
+      "managerFilePatterns": ["/(^|/)\\.circleci/config\\.yml$/"],
+      "matchStrings": [
+        
"https://releases\\.hashicorp\\.com/vault/(?<currentValue>[\\d.]+)/vault_[\\d.]+_linux_amd64\\.zip"
+      ],
+      "depNameTemplate": "hashicorp/vault",
+      "datasourceTemplate": "hashicorp-releases",
+      "autoReplaceStringTemplate": 
"https://releases.hashicorp.com/vault/{{{newValue}}}/vault_{{{newValue}}}_linux_amd64.zip";
+    },
+    {
+      "description": "HashiCorp Vault archive name in CircleCI (sha256 line 
must be updated manually)",
+      "customType": "regex",
+      "managerFilePatterns": ["/(^|/)\\.circleci/config\\.yml$/"],
+      "matchStrings": [
+        "vault_(?<currentValue>[\\d.]+)_linux_amd64\\.zip"
+      ],
+      "depNameTemplate": "hashicorp/vault",
+      "datasourceTemplate": "hashicorp-releases",
+      "autoReplaceStringTemplate": "vault_{{{newValue}}}_linux_amd64.zip"
+    },
+    {
+      "description": "golangci-lint install.sh pin in CircleCI",
+      "customType": "regex",
+      "managerFilePatterns": ["/(^|/)\\.circleci/config\\.yml$/"],
+      "matchStrings": [
+        "golangci/golangci-lint/HEAD/install.sh \\| sh -s -- -b /usr/local/bin 
v(?<currentValue>[0-9.]+)"
+      ],
+      "depNameTemplate": "golangci/golangci-lint",
+      "datasourceTemplate": "github-releases",
+      "extractVersionTemplate": "^v?(?<version>.*)$",
+      "autoReplaceStringTemplate": "golangci/golangci-lint/HEAD/install.sh | 
sh -s -- -b /usr/local/bin v{{{newValue}}}"
+    },
+    {
+      "description": "Kind node image for rok8s-scripts kubernetes_e2e_tests",
+      "customType": "regex",
+      "managerFilePatterns": ["/(^|/)\\.circleci/config\\.yml$/"],
+      "matchStrings": [
+        "kind_node_image:\\s*\"kindest/node:(?<currentValue>v[^\"\\s]+)\""
+      ],
+      "depNameTemplate": "kindest/node",
+      "datasourceTemplate": "docker",
+      "autoReplaceStringTemplate": "kind_node_image: 
\"kindest/node:{{{newValue}}}\""
+    }
+  ],
+  "packageRules": [
+    {
+      "description": "Group all non-major (minor + patch) updates into a 
single PR",
+      "matchUpdateTypes": ["minor", "patch", "digest", "lockFileMaintenance"],
+      "groupName": "all non-major dependencies",
+      "groupSlug": "all-non-major",
+      "minimumReleaseAge": "7 days"
+    },
+    {
+      "description": "Keep major updates separate and also enforce minimum 
age",
+      "matchUpdateTypes": ["major"],
+      "minimumReleaseAge": "7 days"
+    },
+    {
+      "description": "Disable replace updates",
+      "matchManagers": ["gomod"],
+      "matchDepTypes": ["replace"],
+      "enabled": false
+    },
+    {
+      "description": "Every upgrade: upstream release must be at least 7 days 
old",
+      "matchManagers": ["gomod", "dockerfile", "circleci", "custom.regex"],
+      "minimumReleaseAge": "7 days"
+    },
+    {
+      "description": "Group HashiCorp Vault version bumps (sha256 checksum 
still needs manual update)",
+      "groupName": "HashiCorp Vault",
+      "matchManagers": ["custom.regex"],
+      "matchDepNames": ["hashicorp/vault"]
+    }
+  ]
+}

++++++ nova.obsinfo ++++++
--- /var/tmp/diff_new_pack.a5ahXO/_old  2026-09-19 22:22:51.838912389 +0200
+++ /var/tmp/diff_new_pack.a5ahXO/_new  2026-09-19 22:22:51.841912514 +0200
@@ -1,5 +1,5 @@
 name: nova
-version: 3.12.0
-mtime: 1777324637
-commit: 0803b0840d990bbf6518951899fcf8b948acc971
+version: 3.12.1
+mtime: 1789494678
+commit: 686e939f41cd8e72b3e888b989622b3aa5d0700d
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/nova/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.nova.new.383539/vendor.tar.gz differ: char 130, 
line 2

Reply via email to