Repository navigation
Update Go to 1.27 and refresh dependencies - #385
Merged
Merged
Conversation
Use Go 1.27 for builds and refresh checkout, setup, and release actions. Print dynamic errors without treating them as format strings. Signed-off-by: Han Verstraete (OpenFaaS Ltd) <han@openfaas.com>
Refresh modules and vendored dependencies. Adapt Compose loading to retain architecture interpolation, dependency ordering, bind mounts and port ranges. Retain runtime-spec v1.2.1 because v1.3 changes LinuxPids.Limit to a pointer that containerd 1.7 cannot compile against. Keep cgroups/v3 v3.1.0 and hcsshim v0.14.1 because newer releases require runtime-spec v1.3. Retain containerd/api v1.11.1 because v1.12 adds UpdateSandbox to an interface that containerd 1.7 does not implement. Signed-off-by: Han Verstraete (OpenFaaS Ltd) <han@openfaas.com>
AI Pull Request OverviewDisclaimer: This review was generated by automated AI and may contain errors. Do not trust its outputs without human verification. Summary
Approval rating (1-10)9/10. The migration is coherent, compatibility constraints are documented, and focused regression coverage addresses the changed Compose behavior. Summary per fileSummary per file
Overall AssessmentThe final state is internally consistent and preserves the faasd-specific behavior affected by the Compose dependency upgrade. No concrete correctness, security, compatibility, or maintainability issue was identified in the scoped non-vendored changes. Detailed ReviewDetailed ReviewNo actionable findings. AI agent details. |
welteki
marked this pull request as ready for review
October 22, 2026 17:07
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Update CI to Go 1.27 and current released GitHub Actions, refresh Go dependencies and vendoring, and adapt Compose loading to preserve architecture suffix interpolation, service dependency ordering, bind mounts, and published port ranges. Dynamic errors are printed without interpreting them as format strings, as required by the newer Go vet checks.
Keep these dependencies at compatible versions for the containerd 1.7 integration:
github.com/opencontainers/runtime-spec v1.2.1: v1.3 changesLinuxPids.Limitto a pointer, which containerd 1.7 cannot compile against.github.com/containerd/cgroups/v3 v3.1.0andgithub.com/Microsoft/hcsshim v0.14.1: newer releases require runtime-spec v1.3.github.com/containerd/containerd/api v1.11.1: v1.12 addsUpdateSandboxto an interface that containerd 1.7 does not implement.Motivation and Context
Bring build tooling and dependencies up to date while preserving the existing containerd and Compose integration.
How Has This Been Tested?
On Linux amd64 with Go 1.27.3 (
GOTOOLCHAIN=go1.27.3,GOMAXPROCS=2,GOFLAGS=-p=1):make test: passed all unit tests, including Compose interpolation, dependency/port mappings, published ranges, and invalid port regression checks.go mod verify: passed.make dist hashgen: passed for the complete release matrix, Linux amd64 and arm64.fileconfirmed statically linked x86-64 and AArch64 ELF executables;sha256sum -cverified both binary checksums.bin/faasd versionandbin/faasd --help: passed. Arm64 was cross-compiled, not executed.go test -race ./...: detects a proxy race involvinghttp.DefaultClientinTest_Proxy_ToPrivateServer(pkg/proxy.go:46,pkg/proxy_test.go:57). The same race reproduces on upstream13f03f3withgo test -vet=off -race ./pkg -run Test_Proxy_ToPrivateServer -count=1.go vet ./...: reports IPv6-unsafe address formatting in unchangedpkg/proxy.go:62. The same command reports the identical finding on upstream13f03f3.No Dockerfile or Docker release matrix exists. Live containerd/CNI integration and
make prepare-test/make test-e2ewere not run because they install and start services and deploy a function. Registry image verification was not run.Types of changes
Checklist:
Commits:
git commit -sfor the Developer Certificate of Origin (DCO)Code:
Docs: