Skip to content

fix(release): pin cosign to v2.x to keep classic signing#324

Merged
jongio merged 1 commit into
mainfrom
fix/release-pin-cosign-v2
Jul 18, 2026
Merged

fix(release): pin cosign to v2.x to keep classic signing#324
jongio merged 1 commit into
mainfrom
fix/release-pin-cosign-v2

Conversation

@jongio

@jongio jongio commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Problem

The v0.14.0 release kept failing at the cosign signing step. cosign-installer installs the latest cosign by default, which is now v3.x. cosign v3 auto-loads a signing config and forces the new single-file bundle format, producing a chain of failures:

  1. cannot specify service URLs and use signing config (from --oidc-issuer)
  2. create bundle file: open : no such file or directory
  3. must provide --new-bundle-format or --bundle ... with --signing-config

No GitHub Release was ever published.

Why not just adopt the bundle format

install.sh and install.ps1 verify releases with:

cosign verify-blob --signature <checksums>.sig --certificate <checksums>.pem ...

Switching to the single-file bundle would break signature verification for every end user who has cosign installed.

Fix

cosign maintains two lines in parallel: v3.x (new behavior) and v2.6.x (classic). Pin cosign-installer to v2.6.4 (current, released 2026-07-17) which keeps the classic detached .sig + .pem output, and restore the classic goreleaser signs args. Both files carry a comment explaining the pin. No install-script or user-facing verification change.

Follow-up

The v0.14.0 tag (re-created by the failed runs, no release attached) will be deleted and the Release workflow re-triggered after this merges.

cosign-installer was installing the latest cosign (v3.x), which auto-loads a signing config and forces the single-file bundle format. That broke the classic detached signing (sign-blob --output-signature/--output-certificate) with a chain of errors: first 'cannot specify service URLs and use signing config', then 'must provide --new-bundle-format or --bundle ... with --signing-config'. No release was ever published.

install.sh and install.ps1 verify releases with 'cosign verify-blob --signature <checksums>.sig --certificate <checksums>.pem', so switching to the bundle format would break signature verification for end users. Instead, pin cosign to the maintained v2.x line (v2.6.4, current) which keeps classic behavior, and restore the classic goreleaser signs args.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 524cf702-8922-4cfd-b23f-4069b734e09b
@jongio
jongio merged commit 8efef4c into main Jul 18, 2026
2 checks passed
@jongio
jongio deleted the fix/release-pin-cosign-v2 branch July 18, 2026 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant