Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package tfupdate for openSUSE:Factory checked in at 2026-05-06 19:18:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/tfupdate (Old) and /work/SRC/openSUSE:Factory/.tfupdate.new.30200 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tfupdate" Wed May 6 19:18:38 2026 rev:5 rq:1351111 version:0.9.4 Changes: -------- --- /work/SRC/openSUSE:Factory/tfupdate/tfupdate.changes 2025-11-24 14:07:01.939839187 +0100 +++ /work/SRC/openSUSE:Factory/.tfupdate.new.30200/tfupdate.changes 2026-05-06 19:20:53.076468942 +0200 @@ -1,0 +2,16 @@ +Wed May 06 06:14:08 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 0.9.4: + * d78272a Bump version to v0.9.4 + * 6e89eda Update docker/build-push-action to v7 + * 6ab30c9 Update goreleaser-action to v7 + * 36c56b3 Update create-github-app-token to v3 + * 56c93fd Update actions/checkout to v6 + * b3f8047 Fix lint issues + * 20220bf Update golangci-lint to v2 + * 13c0310 Update setup-go to v6 + * b762378 Update Go to v1.26 + * c6859ef Add support for Terraform v1.15 + * d9de859 Add support for OpenTofu v1.11 + +------------------------------------------------------------------- Old: ---- tfupdate-0.9.3.obscpio New: ---- tfupdate-0.9.4.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tfupdate.spec ++++++ --- /var/tmp/diff_new_pack.14Blby/_old 2026-05-06 19:20:53.696494479 +0200 +++ /var/tmp/diff_new_pack.14Blby/_new 2026-05-06 19:20:53.700494643 +0200 @@ -1,7 +1,7 @@ # # spec file for package tfupdate # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,14 +17,14 @@ Name: tfupdate -Version: 0.9.3 +Version: 0.9.4 Release: 0 Summary: Update version constraints in your Terraform configurations License: MPL-2.0 URL: https://github.com/minamijoyo/tfupdate Source: %{name}-%{version}.tar.gz Source1: vendor.tar.gz -BuildRequires: golang(API) >= 1.24 +BuildRequires: golang(API) >= 1.25 %description Features ++++++ _service ++++++ --- /var/tmp/diff_new_pack.14Blby/_old 2026-05-06 19:20:53.744496456 +0200 +++ /var/tmp/diff_new_pack.14Blby/_new 2026-05-06 19:20:53.748496620 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/minamijoyo/tfupdate</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.9.3</param> + <param name="revision">v0.9.4</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.14Blby/_old 2026-05-06 19:20:53.776497774 +0200 +++ /var/tmp/diff_new_pack.14Blby/_new 2026-05-06 19:20:53.780497938 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/minamijoyo/tfupdate</param> - <param name="changesrevision">39f24ebc7268a6cb2230bc1942ea861c75dee430</param></service></servicedata> + <param name="changesrevision">d78272a9f66b38bfc4d8b06140eba0076d722b1d</param></service></servicedata> (No newline at EOF) ++++++ tfupdate-0.9.3.obscpio -> tfupdate-0.9.4.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/.go-version new/tfupdate-0.9.4/.go-version --- old/tfupdate-0.9.3/.go-version 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/.go-version 2026-05-05 16:12:47.000000000 +0200 @@ -1 +1 @@ -1.24 +1.26.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/.golangci.yml new/tfupdate-0.9.4/.golangci.yml --- old/tfupdate-0.9.3/.golangci.yml 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/.golangci.yml 2026-05-05 16:12:47.000000000 +0200 @@ -1,12 +1,24 @@ -# https://golangci-lint.run/usage/configuration/ +# https://golangci-lint.run/docs/configuration/file/ +version: "2" linters: - disable-all: true + default: none enable: - errcheck - - goimports - gosec - - gosimple - govet - ineffassign + - misspell - revive - staticcheck + exclusions: + generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling +formatters: + enable: + - goimports + exclusions: + generated: lax diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/CHANGELOG.md new/tfupdate-0.9.4/CHANGELOG.md --- old/tfupdate-0.9.3/CHANGELOG.md 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/CHANGELOG.md 2026-05-05 16:12:47.000000000 +0200 @@ -1,5 +1,17 @@ ## master (Unreleased) +## 0.9.4 (2026/05/05) + +ENHANCEMENTS: + +* Add support for OpenTofu v1.11 ([#152](https://github.com/minamijoyo/tfupdate/pull/152)) +* Add support for Terraform v1.15 ([#153](https://github.com/minamijoyo/tfupdate/pull/153)) +* Update Go to v1.26 ([#154](https://github.com/minamijoyo/tfupdate/pull/154)) +* Update actions/checkout to v6 ([#155](https://github.com/minamijoyo/tfupdate/pull/155)) +* Update create-github-app-token to v3 ([#156](https://github.com/minamijoyo/tfupdate/pull/156)) +* Update goreleaser-action to v7 ([#157](https://github.com/minamijoyo/tfupdate/pull/157)) +* Update docker/build-push-action to v7 ([#158](https://github.com/minamijoyo/tfupdate/pull/158)) + ## 0.9.3 (2025/11/20) ENHANCEMENTS: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/Dockerfile new/tfupdate-0.9.4/Dockerfile --- old/tfupdate-0.9.3/Dockerfile 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/Dockerfile 2026-05-05 16:12:47.000000000 +0200 @@ -1,5 +1,5 @@ # tfupdate -FROM golang:1.24-alpine3.21 AS tfupdate +FROM golang:1.26-alpine3.23 AS tfupdate RUN apk --no-cache add make git WORKDIR /work @@ -13,7 +13,7 @@ # The linux binary for hub can not run on alpine. # So we need to build it from source. # https://github.com/github/hub/issues/1818 -FROM golang:1.24-alpine3.21 AS hub +FROM golang:1.26-alpine3.23 AS hub RUN apk add --no-cache bash git RUN git clone https://github.com/github/hub /work WORKDIR /work @@ -22,7 +22,7 @@ # runtime # Note: Required Tools for Primary Containers on CircleCI # https://circleci.com/docs/2.0/custom-images/#required-tools-for-primary-containers -FROM alpine:3.21 +FROM alpine:3.23 RUN apk --no-cache add bash git openssh-client tar gzip ca-certificates jq openssl curl COPY --from=tfupdate /work/bin/tfupdate /usr/local/bin/ COPY --from=hub /work/bin/hub /usr/local/bin/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/Dockerfile.dev new/tfupdate-0.9.4/Dockerfile.dev --- old/tfupdate-0.9.3/Dockerfile.dev 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/Dockerfile.dev 2026-05-05 16:12:47.000000000 +0200 @@ -1,7 +1,7 @@ ARG TERRAFORM_VERSION=latest FROM hashicorp/terraform:$TERRAFORM_VERSION AS terraform -FROM alpine:3.21 AS opentofu +FROM alpine:3.23 AS opentofu ARG OPENTOFU_VERSION=latest ADD https://get.opentofu.org/install-opentofu.sh /install-opentofu.sh RUN chmod +x /install-opentofu.sh @@ -9,14 +9,13 @@ RUN ./install-opentofu.sh --install-method standalone --opentofu-version $OPENTOFU_VERSION --install-path /usr/local/bin --symlink-path - # tfupdate -FROM golang:1.24-alpine3.21 AS tfupdate +FROM golang:1.26-alpine3.23 AS tfupdate RUN apk --no-cache add make git # A workaround for a permission issue of git. # Since UIDs are different between host and container, # the .git directory is untrusted by default. # We need to allow it explicitly. -# https://github.com/actions/checkout/issues/760 RUN git config --global --add safe.directory /work # for testing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/Makefile new/tfupdate-0.9.4/Makefile --- old/tfupdate-0.9.3/Makefile 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/Makefile 2026-05-05 16:12:47.000000000 +0200 @@ -8,7 +8,7 @@ .PHONY: build build: deps - go build -o bin/$(NAME) + go build -buildvcs=false -o bin/$(NAME) .PHONY: install install: deps diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/README.md new/tfupdate-0.9.4/README.md --- old/tfupdate-0.9.3/README.md 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/README.md 2026-05-05 16:12:47.000000000 +0200 @@ -47,7 +47,7 @@ ### Source -If you have Go 1.24+ development environment: +If you have Go 1.26+ development environment: ``` $ go install github.com/minamijoyo/tfupdate@latest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/go.mod new/tfupdate-0.9.4/go.mod --- old/tfupdate-0.9.3/go.mod 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/go.mod 2026-05-05 16:12:47.000000000 +0200 @@ -1,6 +1,6 @@ module github.com/minamijoyo/tfupdate -go 1.24.0 +go 1.25 require ( github.com/davecgh/go-spew v1.1.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/main.go new/tfupdate-0.9.4/main.go --- old/tfupdate-0.9.3/main.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/main.go 2026-05-05 16:12:47.000000000 +0200 @@ -14,7 +14,7 @@ ) // Version is a version number. -var version = "0.9.3" +var version = "0.9.4" // UI is a user interface which is a global variable for mocking. var UI cli.Ui @@ -27,6 +27,8 @@ func main() { log.SetOutput(logOutput()) + + // #nosec G706: Log injection via taint analysis log.Printf("[INFO] CLI args: %#v", os.Args) commands := initCommands() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/release/github_test.go new/tfupdate-0.9.4/release/github_test.go --- old/tfupdate-0.9.3/release/github_test.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/release/github_test.go 2026-05-05 16:12:47.000000000 +0200 @@ -141,7 +141,7 @@ t.Errorf("NewGitHubRelease() with source = %s, api = %#v sets api = %#v, but want %s", tc.source, tc.api, r.api, tc.api) } - if !(r.owner == tc.owner && r.repo == tc.repo) { + if r.owner != tc.owner || r.repo != tc.repo { t.Errorf("NewGitHubRelease() with source = %s, api = %#v returns (%s, %s), but want (%s, %s)", tc.source, tc.api, r.owner, r.repo, tc.owner, tc.repo) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/release/gitlab_test.go new/tfupdate-0.9.4/release/gitlab_test.go --- old/tfupdate-0.9.3/release/gitlab_test.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/release/gitlab_test.go 2026-05-05 16:12:47.000000000 +0200 @@ -134,7 +134,7 @@ t.Errorf("NewGitLabRelease() with source = %s, api = %#v sets api = %#v, but want %s", tc.source, tc.api, r.api, tc.api) } - if !(r.owner == tc.owner && r.project == tc.project) { + if r.owner != tc.owner || r.project != tc.project { t.Errorf("NewGitLabRelease() with source = %s, api = %#v returns (%s, %s), but want (%s, %s)", tc.source, tc.api, r.owner, r.project, tc.owner, tc.project) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/release/tfregistry_test.go new/tfupdate-0.9.4/release/tfregistry_test.go --- old/tfupdate-0.9.3/release/tfregistry_test.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/release/tfregistry_test.go 2026-05-05 16:12:47.000000000 +0200 @@ -70,7 +70,7 @@ if tc.ok { r := got.(*TFRegistryModuleRelease) - if !(r.namespace == tc.namespace && r.name == tc.name && r.provider == tc.provider) { + if r.namespace != tc.namespace || r.name != tc.name || r.provider != tc.provider { t.Errorf("NewTFRegistryModuleRelease() with source = %s returns (%s, %s, %s), but want (%s, %s, %s)", tc.source, r.namespace, r.name, r.provider, tc.namespace, tc.name, tc.provider) } } @@ -113,7 +113,7 @@ if tc.ok { r := got.(*TFRegistryProviderRelease) - if !(r.namespace == tc.namespace && r.providerType == tc.providerType) { + if r.namespace != tc.namespace || r.providerType != tc.providerType { t.Errorf("NewTFRegistryProviderRelease() with source = %s returns (%s, %s), but want (%s, %s)", tc.source, r.namespace, r.providerType, tc.namespace, tc.providerType) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/tfregistry/module_versions.go new/tfupdate-0.9.4/tfregistry/module_versions.go --- old/tfupdate-0.9.3/tfregistry/module_versions.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/tfregistry/module_versions.go 2026-05-05 16:12:47.000000000 +0200 @@ -38,13 +38,13 @@ // This works for both Terraform and OpenTofu registries. func (c *Client) ListModuleVersions(ctx context.Context, req *ListModuleVersionsRequest) (*ListModuleVersionsResponse, error) { if len(req.Namespace) == 0 { - return nil, fmt.Errorf("Invalid request. Namespace is required. req = %#v", req) + return nil, fmt.Errorf("invalid request. Namespace is required. req = %#v", req) } if len(req.Name) == 0 { - return nil, fmt.Errorf("Invalid request. Name is required. req = %#v", req) + return nil, fmt.Errorf("invalid request. Name is required. req = %#v", req) } if len(req.Provider) == 0 { - return nil, fmt.Errorf("Invalid request. Provider is required. req = %#v", req) + return nil, fmt.Errorf("invalid request. Provider is required. req = %#v", req) } subPath := fmt.Sprintf("%s%s/%s/%s/versions", moduleV1Service, req.Namespace, req.Name, req.Provider) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/tfregistry/provider_package_metadata.go new/tfupdate-0.9.4/tfregistry/provider_package_metadata.go --- old/tfupdate-0.9.3/tfregistry/provider_package_metadata.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/tfregistry/provider_package_metadata.go 2026-05-05 16:12:47.000000000 +0200 @@ -38,19 +38,19 @@ // https://developer.hashicorp.com/terraform/internals/provider-registry-protocol#find-a-provider-package func (c *Client) ProviderPackageMetadata(ctx context.Context, req *ProviderPackageMetadataRequest) (*ProviderPackageMetadataResponse, error) { if len(req.Namespace) == 0 { - return nil, fmt.Errorf("Invalid request. Namespace is required. req = %#v", req) + return nil, fmt.Errorf("invalid request. Namespace is required. req = %#v", req) } if len(req.Type) == 0 { - return nil, fmt.Errorf("Invalid request. Type is required. req = %#v", req) + return nil, fmt.Errorf("invalid request. Type is required. req = %#v", req) } if len(req.Version) == 0 { - return nil, fmt.Errorf("Invalid request. Version is required. req = %#v", req) + return nil, fmt.Errorf("invalid request. Version is required. req = %#v", req) } if len(req.OS) == 0 { - return nil, fmt.Errorf("Invalid request. OS is required. req = %#v", req) + return nil, fmt.Errorf("invalid request. OS is required. req = %#v", req) } if len(req.Arch) == 0 { - return nil, fmt.Errorf("Invalid request. Arch is required. req = %#v", req) + return nil, fmt.Errorf("invalid request. Arch is required. req = %#v", req) } subPath := fmt.Sprintf("%s%s/%s/%s/download/%s/%s", providerV1Service, req.Namespace, req.Type, req.Version, req.OS, req.Arch) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/tfregistry/provider_versions.go new/tfupdate-0.9.4/tfregistry/provider_versions.go --- old/tfupdate-0.9.3/tfregistry/provider_versions.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/tfregistry/provider_versions.go 2026-05-05 16:12:47.000000000 +0200 @@ -41,10 +41,10 @@ // This works for both Terraform and OpenTofu registries. func (c *Client) ListProviderVersions(ctx context.Context, req *ListProviderVersionsRequest) (*ListProviderVersionsResponse, error) { if len(req.Namespace) == 0 { - return nil, fmt.Errorf("Invalid request. Namespace is required. req = %#v", req) + return nil, fmt.Errorf("invalid request. Namespace is required. req = %#v", req) } if len(req.Type) == 0 { - return nil, fmt.Errorf("Invalid request. Type is required. req = %#v", req) + return nil, fmt.Errorf("invalid request. Type is required. req = %#v", req) } subPath := fmt.Sprintf("%s%s/%s/versions", providerV1Service, req.Namespace, req.Type) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/tfupdate/file.go new/tfupdate-0.9.4/tfupdate/file.go --- old/tfupdate-0.9.3/tfupdate/file.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/tfupdate/file.go 2026-05-05 16:12:47.000000000 +0200 @@ -92,6 +92,8 @@ } // if an entry is a file + // nolint:staticcheck // QF1001: could apply De Morgan's law + // Ignore it in favor of subjective readability. if !(filepath.Ext(entry.Name()) == ".tf" || filepath.Ext(entry.Name()) == ".tofu" || entry.Name() == ".terraform.lock.hcl") { // skip unsupported file type continue diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/tfupdate/lock_test.go new/tfupdate-0.9.4/tfupdate/lock_test.go --- old/tfupdate-0.9.3/tfupdate/lock_test.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/tfupdate/lock_test.go 2026-05-05 16:12:47.000000000 +0200 @@ -896,7 +896,7 @@ ok: true, }, { - desc: "ignore unsupported constaints", + desc: "ignore unsupported constraints", src: ` terraform { required_version = "1.5.0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/tfupdate/module_test.go new/tfupdate-0.9.4/tfupdate/module_test.go --- old/tfupdate-0.9.3/tfupdate/module_test.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/tfupdate/module_test.go 2026-05-05 16:12:47.000000000 +0200 @@ -335,7 +335,7 @@ } name, version := parseModuleSource(s) - if !(name == tc.name && version == tc.version) { + if name != tc.name || version != tc.version { t.Errorf("parseModuleSource() with src = %s returns (%s, %s), but want = (%s, %s)", tc.src, name, version, tc.name, tc.version) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tfupdate-0.9.3/tfupdate/provider.go new/tfupdate-0.9.4/tfupdate/provider.go --- old/tfupdate-0.9.3/tfupdate/provider.go 2025-11-20 10:49:03.000000000 +0100 +++ new/tfupdate-0.9.4/tfupdate/provider.go 2026-05-05 16:12:47.000000000 +0200 @@ -135,6 +135,8 @@ // variants because the left hand side of object key accepts an expression in // HCL. For accurate implementation, it should be implemented using the // original parser. + // nolint:staticcheck // QF1001: could apply De Morgan's law + // Ignore it in favor of subjective readability. for !((tokens[i].Type == hclsyntax.TokenIdent || tokens[i].Type == hclsyntax.TokenQuotedLit) && string(tokens[i].Bytes) == "version") { i++ @@ -146,6 +148,8 @@ } // find value of old version + // nolint:staticcheck // QF1001: could apply De Morgan's law + // Ignore it in favor of subjective readability. for !(tokens[i].Type == hclsyntax.TokenQuotedLit && string(tokens[i].Bytes) == oldVersion) { i++ } ++++++ tfupdate.obsinfo ++++++ --- /var/tmp/diff_new_pack.14Blby/_old 2026-05-06 19:20:54.020507823 +0200 +++ /var/tmp/diff_new_pack.14Blby/_new 2026-05-06 19:20:54.024507988 +0200 @@ -1,5 +1,5 @@ name: tfupdate -version: 0.9.3 -mtime: 1763632143 -commit: 39f24ebc7268a6cb2230bc1942ea861c75dee430 +version: 0.9.4 +mtime: 1777990367 +commit: d78272a9f66b38bfc4d8b06140eba0076d722b1d ++++++ vendor.tar.gz ++++++
