Skip to content

Update Go to 1.27 and gateway dependencies - #4332

Merged
alexellis merged 2 commits into
openfaas:masterfrom
welteki:update-tooling-dependencies-20261022
Oct 23, 2026
Merged

alexellis merged 2 commits into
openfaas:masterfrom
welteki:update-tooling-dependencies-20261022

Conversation

@welteki

@welteki welteki commented Oct 22, 2026

Copy link
Copy Markdown
Member

Description

Update the gateway Docker builder to Go 1.27 and refresh GitHub Actions to current released versions. Update gateway dependencies and vendored sources, including faas-provider, Prometheus, NATS and Go libraries. The updated dependencies require a Go 1.26 module minimum.

Construct expected Prometheus descriptors with NewDesc so the existing assertions retain coverage of metric names, help and labels while accommodating the library's updated diagnostic formatting.

Motivation and Context

Keep gateway builds and dependencies current.

  • I have raised an issue to propose this change
  • My issue has received approval from the maintainers or lead with the design/approved label

How Has This Been Tested?

On Linux amd64 with Go 1.27.3:

  • In gateway: go test ./..., go test -race ./..., go vet ./... and go mod verify passed.
  • Root module: go mod verify passed; it has no packages or dependencies, so there are no root unit tests.
  • No make dist target exists. Ran the Docker distribution build with docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --output type=oci,dest=/tmp/faas-validation/gateway.oci.tar gateway using an isolated builder. All three platforms passed, including the Dockerfile's license, formatting and native unit-test checks. This covers both workflow platforms and the additional ARMv7 platform in the gateway Makefile.
  • Inspected the local OCI manifests and image configs for all three platforms, extracted each gateway binary, and confirmed the matching statically linked ELF architecture with file.
  • ARM binaries were cross-compiled; unit tests ran on amd64. No running gateway/provider/NATS integration or target-architecture runtime tests were performed. Docker reports the existing redundant TARGETPLATFORM warning.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I've read the CONTRIBUTION guide
  • I have signed-off my commits with git commit -s
  • I have added tests to cover my changes.
  • All new and existing tests passed.

Signed-off-by: Han Verstraete (OpenFaaS Ltd) <han@openfaas.com>
Refresh gateway dependencies and vendored sources, raising the module minimum to Go 1.26 as required by the updated libraries.

Build expected Prometheus descriptors with NewDesc so assertions continue checking metric names, help and labels when diagnostic formatting changes.

Signed-off-by: Han Verstraete (OpenFaaS Ltd) <han@openfaas.com>
@reviewfn

reviewfn Bot commented Oct 22, 2026

Copy link
Copy Markdown

AI Pull Request Overview

Disclaimer: This review was generated by automated AI and may contain errors. Do not trust its outputs without human verification.

Summary

  • Updates the gateway builder from Go 1.24 to Go 1.27 and raises the gateway module minimum to Go 1.26.
  • Refreshes gateway dependencies and synchronizes checksums and vendored module metadata.
  • Updates the build and publish workflows to newer major versions of their GitHub Actions.
  • Reworks Prometheus descriptor assertions to remain stable across diagnostic string-format changes while preserving explicit metric expectations.
  • Both new commits were inspected and contain no prohibited AI authorship or attribution indicators.
  • No blocking correctness, compatibility, security, or workflow issues were identified in the scoped changes.

Approval rating (1-10)

9/10. The toolchain, dependency metadata, workflows, and adjusted assertions are internally consistent, with no concrete merge-blocking issue found.

Summary per file

Summary per file
File path Summary
.github/workflows/build.yml Updates checkout, QEMU, Buildx, and image-build actions to newer major versions.
.github/workflows/publish.yml Updates checkout and Docker setup, login, and publishing actions to newer major versions.
gateway/Dockerfile Moves the gateway build stage from Go 1.24 to Go 1.27.
gateway/go.mod Raises the Go minimum to 1.26 and updates direct and indirect dependencies.
gateway/go.sum Synchronizes dependency checksums with the updated module graph.
gateway/metrics/exporter_test.go Constructs expected Prometheus descriptors through the library API instead of hard-coding diagnostic strings.

Overall Assessment

The final state is coherent: dependencies requiring Go 1.26 are reflected in the module directive, the Docker builder uses Go 1.27, and module checksums and vendoring metadata track the selected versions. The workflow updates preserve the existing build and publish configuration. The Prometheus test change avoids coupling assertions to an internal diagnostic representation without removing the explicit metric names, help text, or variable-label checks. No actionable defect was found.

Detailed Review

Detailed Review

No findings.

The dependency and toolchain changes are aligned across gateway/go.mod, gateway/go.sum, vendoring metadata, and gateway/Dockerfile. The GitHub Actions updates do not alter workflow inputs, permissions, platforms, or publication behavior. The revised metric descriptor assertions still compare independently specified descriptor fields against the descriptors emitted by the exporter.

AI agent details.

Agent processing time: 50.669s
Environment preparation time: 3.806s
Total time from webhook: 1m2.249s

@welteki
welteki marked this pull request as ready for review October 22, 2026 17:23
@alexellis
alexellis merged commit eb29c06 into openfaas:master Oct 23, 2026
2 checks passed
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