Skip to content

[TT-16342] fix: align plugin compiler Go version with gateway (1.25)#8040

Merged
buger merged 2 commits intorelease-5.12.1from
fix/plugin-compiler-go125-5.12.1
Apr 16, 2026
Merged

[TT-16342] fix: align plugin compiler Go version with gateway (1.25)#8040
buger merged 2 commits intorelease-5.12.1from
fix/plugin-compiler-go125-5.12.1

Conversation

@buger
Copy link
Copy Markdown
Member

@buger buger commented Apr 16, 2026

Summary

  • The gateway goreleaser uses golang-cross:1.25-bullseye but the plugin compiler was still on 1.24-bullseye
  • This causes plugin.Open failures due to Go version mismatch (internal/goarch)
  • Updated both plugin-compiler-build.yml and the plugin compiler Dockerfile to use 1.25-bullseye

Test plan

  • Verify plugin compiler CI builds successfully with the new Go version
  • Build a test plugin and confirm plugin.Open works against a gateway built with 1.25

🤖 Generated with Claude Code

The gateway goreleaser uses golang-cross:1.25-bullseye but the plugin
compiler was still on 1.24-bullseye, causing plugin.Open failures
due to Go version mismatch (internal/goarch).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@buger buger requested a review from a team as a code owner April 16, 2026 14:54
@probelabs
Copy link
Copy Markdown
Contributor

probelabs Bot commented Apr 16, 2026

This pull request synchronizes the Go version used for the plugin compiler with the version used for the main gateway, resolving a runtime incompatibility that prevents plugins from loading.

Files Changed Analysis

The change is minimal and highly targeted, affecting only two configuration files:

  • .github/workflows/plugin-compiler-build.yml: The GitHub Actions workflow for building the plugin compiler now sets the GOLANG_CROSS environment variable to 1.25-bullseye, up from 1.24-bullseye.
  • ci/images/plugin-compiler/Dockerfile: The base image for the plugin compiler's Docker environment is updated to tykio/golang-cross:1.25-bullseye.

Both modifications directly address the version mismatch by updating the Go toolchain.

Architecture & Impact Assessment

  • What this PR accomplishes: It fixes a critical bug where the Tyk Gateway, built with Go 1.25, would fail to load Go plugins (plugin.Open) because they were compiled with an older toolchain (Go 1.24). This alignment ensures compatibility and restores the functionality of custom Go plugins.

  • Key technical changes introduced: The Go version in the plugin compiler's build environment (both CI and Docker) is upgraded from 1.24 to 1.25.

  • Affected system components:

    • Plugin Compiler CI Pipeline: The GitHub workflow responsible for building and publishing the plugin compiler tool.
    • Plugin Development Environment: The Docker image provided to developers for building their custom plugins.
    • Tyk Gateway Runtime: The gateway's ability to load and execute Go plugins is directly impacted, as this change resolves version-mismatch panics.
graph TD
    subgraph "Build Environments"
        A[Gateway Build] -- uses --> B(Go 1.25)
        C[Plugin Compiler Build] -- uses --> D("Go 1.24 ➡️ 1.25")
    end

    subgraph "Runtime Interaction"
        E[Tyk Gateway] -- built with --> B
        F[Custom Go Plugin] -- built with --> D
        E --|plugin.Open() fails due to mismatch|---x F
    end

    style D fill:#9f9,stroke:#333,stroke-width:2px
Loading

The diagram shows how this PR aligns the plugin compiler's Go version (D) with the gateway's (B), fixing the runtime loading failure.

Scope Discovery & Context Expansion

The scope of this change is confined to the build tooling for Go plugins. However, its impact is significant for the entire plugin ecosystem and any developer creating custom plugins. Without this fix, the plugin development workflow is broken for recent versions of the gateway.

The underlying cause, as stated in the PR description, is that the main gateway build process was upgraded to Go 1.25 while the plugin tooling was left behind. This change brings the satellite tooling in line with the core product's toolchain, which is a necessary maintenance step to ensure system coherence.

Metadata
  • Review Effort: 1 / 5
  • Primary Label: bug

Powered by Visor from Probelabs

Last updated: 2026-04-16T19:16:34.319Z | Triggered by: pr_updated | Commit: 8e6f07d

💡 TIP: You can chat with Visor using /visor ask <your question>

@probelabs
Copy link
Copy Markdown
Contributor

probelabs Bot commented Apr 16, 2026

✅ Security Check Passed

No security issues found – changes LGTM.

✅ Performance Check Passed

No performance issues found – changes LGTM.

✅ Quality Check Passed

No quality issues found – changes LGTM.


Powered by Visor from Probelabs

Last updated: 2026-04-16T19:16:28.084Z | Triggered by: pr_updated | Commit: 8e6f07d

💡 TIP: You can chat with Visor using /visor ask <your question>

@github-actions
Copy link
Copy Markdown
Contributor

API Changes

no api changes detected

@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarQube Cloud

@buger buger merged commit 9102f21 into release-5.12.1 Apr 16, 2026
13 of 14 checks passed
@buger buger deleted the fix/plugin-compiler-go125-5.12.1 branch April 16, 2026 19:22
@buger buger changed the title fix: align plugin compiler Go version with gateway (1.25) [TT-16342] fix: align plugin compiler Go version with gateway (1.25) Apr 21, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🚨 Jira Linter Failed

Commit: 8e6f07d
Failed at: 2026-04-21 10:12:11 UTC

The Jira linter failed to validate your PR. Please check the error details below:

🔍 Click to view error details
failed to get Jira issue: failed to fetch Jira issue TT-16342: Issue does not exist or you do not have permission to see it.: request failed. Please analyze the request body for more details. Status code: 404

Next Steps

  • Ensure your branch name contains a valid Jira ticket ID (e.g., ABC-123)
  • Verify your PR title matches the branch's Jira ticket ID
  • Check that the Jira ticket exists and is accessible

This comment will be automatically deleted once the linter passes.

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