Skip to content

ci: scan and release on Go 1.26, the oldest release still patched - #6

Merged
Alex (Alexkuva) merged 1 commit into
mainfrom
ci/scan-and-release-on-go-1-26
Oct 12, 2026
Merged

Alex (Alexkuva) merged 1 commit into
mainfrom
ci/scan-and-release-on-go-1-26

Conversation

@Alexkuva

@Alexkuva Alex (Alexkuva) commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR change?

The lint job, which runs the vulnerability scan, and the goreleaser job set up Go 1.26.x with check-latest: true, instead of 1.25.x. The build and test jobs stay on 1.25.x, and go.mod is unchanged.

Why?

Go 1.25 left support when 1.27 shipped. Its final patch, 1.25.14, carries nine standard-library advisories that are fixed in 1.26.9 and later only: GO-2026-6603 to GO-2026-6617, in net/http, mime/multipart and crypto/tls.

  • The scan therefore fails on every run, whatever the change (first seen on fix: keep on update what the update does not change #5; main's last green run, 2026-10-08, predates the advisories).
  • More importantly, release.yml built the binary with 1.25.x, so a release would ship those advisories to every user: a binary carries the standard library it was built with.

check-latest, because without it setup-go settles for the newest patch the runner already caches. That bit kaitencloud/sdk-go#6, the same change for the SDK, which got 1.26.8.

Testing

  • govulncheck v1.1.4 locally: 9 standard-library vulnerabilities reached on Go 1.25.14, "No vulnerabilities found" on 1.26.9.
  • On 1.26.9: go mod tidy leaves go.mod/go.sum unchanged, and golangci-lint v2.12.2 reports 0 issues.
  • actionlint v1.7.7 on both workflows: clean.

Checklist

  • I have read CONTRIBUTING.md.
  • Every commit in this PR includes a valid DCO Signed-off-by line.
  • I have the right to submit all material in this PR.
  • I have not included secrets or confidential data.
  • I have updated tests where appropriate.
  • I have updated documentation where appropriate.
  • I have preserved required third-party licenses and attributions.

🤖 Generated with Claude Code · ✅ Tested and approved by Alex (@Alexkuva), maintainer

Go 1.25 left support when 1.27 shipped. Its final patch, 1.25.14, carries
nine standard-library advisories (GO-2026-6603 to GO-2026-6617, in
net/http, mime/multipart and crypto/tls) fixed in 1.26.9 and later only.
The vulnerability scan fails on it whatever the change, and the release
job built the binary with it, so a release would ship those advisories to
every user.

The lint job, which runs the scan, and the release job now set up the
newest 1.26 patch, with check-latest so setup-go does not settle for an
older one the runner caches. Build and test stay on 1.25.x, the version
go.mod declares, so the language floor is still proven.

Signed-off-by: Alexandre Bergere <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
@Alexkuva
Alex (Alexkuva) requested a review from a team as a code owner October 11, 2026 22:01
@Alexkuva
Alex (Alexkuva) merged commit 6ae345a into main Oct 12, 2026
7 checks passed
@Alexkuva
Alex (Alexkuva) deleted the ci/scan-and-release-on-go-1-26 branch October 12, 2026 21:11
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.

2 participants