Skip to content

adding support for go 1.25#19

Merged
ankurs merged 1 commit intomasterfrom
feat/go-1.25
Oct 20, 2025
Merged

adding support for go 1.25#19
ankurs merged 1 commit intomasterfrom
feat/go-1.25

Conversation

@ankurs
Copy link
Copy Markdown
Member

@ankurs ankurs commented Aug 15, 2025

Summary by CodeRabbit

  • Chores

    • Updated Docker build image versions to include the latest supported release, improving build compatibility.
    • Upgraded a wide range of dependencies (telemetry, networking, gRPC, Prometheus, and Go ecosystem libraries) for improved stability, performance, and security.
    • Introduced updated backoff utilities to enhance reliability under transient failures.
  • Bug Fixes

    • Indirect improvements from dependency upgrades that address known issues and edge cases.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Aug 15, 2025

Walkthrough

Updated docker_build_image_version in cookiecutter.json. Upgraded template go.mod dependencies across gRPC, Protobuf, OpenTelemetry, Prometheus, golang.org/x, and internal packages; added new indirect dependencies (backoff/v5, yaml v3). No source code or public API changes.

Changes

Cohort / File(s) Summary of Changes
Build image versions
cookiecutter.json
docker_build_image_version list changed from ["1.24","1.23"] to ["1.25","1.24"]; no other fields modified.
Go module dependency updates
{{cookiecutter.app_name}}/go.mod
Broad dependency bumps (grpc, protobuf, grpc-gateway, OTEL suite to v1.37.0, Prometheus stack), golang.org/x updates, internal libs bumped; added indirect deps (github.com/cenkalti/backoff/v5, gopkg.in/yaml.v3); refreshed genproto versions.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~15–20 minutes

Poem

I nudge the versions, hop-hop, neat,
New grapes on the vine, dependencies sweet.
Dockers drift to one-two-five,
Modules bloom—our burrow thrives.
With whiskers twitching, I stamp “all set!”
Carrot commits made—no code upset. 🥕✨

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.2.2)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/product/migration-guide for migration instructions

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/go-1.25

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for Go 1.25 by updating the project template to use Go 1.25 as the default version and updating various Go dependencies to their latest compatible versions.

  • Updated default Go version from 1.24 to 1.25 in the cookiecutter template
  • Updated multiple Go dependencies including gRPC, Protocol Buffers, OpenTelemetry, and Prometheus libraries
  • Added new indirect dependencies to support updated packages

Reviewed Changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated no comments.

File Description
cookiecutter.json Updated default Go version array to include 1.25 as the primary option
{{cookiecutter.app_name}}/go.mod Updated numerous direct and indirect dependencies to latest versions compatible with Go 1.25

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
cookiecutter.json (1)

8-8: Nit: avoid using alpine:latest for reproducible builds.

Pin the base image to a specific Alpine release (e.g., major.minor) to prevent surprise changes when “latest” moves. Optional but recommended for stability.

{{cookiecutter.app_name}}/go.mod (1)

3-3: Templating the Go version is fine; consider decoupling naming and adding toolchain (optional).

Using docker_build_image_version for the go directive works because Cookiecutter selects a single value. To improve clarity, consider a separate go_version variable, and optionally add a toolchain directive for consistent compiler resolution.

Apply this minimal change (keep existing variable if you prefer):

-go {{cookiecutter.docker_build_image_version}}
+go {{cookiecutter.docker_build_image_version}}
+toolchain go{{cookiecutter.docker_build_image_version}}.0

Optionally, if you want to decouple variables (requires updating cookiecutter.json too):

-go {{cookiecutter.docker_build_image_version}}
+go {{cookiecutter.go_version}}

And in cookiecutter.json (additional change outside this hunk), define a distinct go_version:

{
  "go_version": ["1.25", "1.24"],
  "docker_build_image_version": ["1.25", "1.24"]
}
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 4c29bc4 and aa5978b.

⛔ Files ignored due to path filters (1)
  • {{cookiecutter.app_name}}/go.sum is excluded by !**/*.sum
📒 Files selected for processing (2)
  • cookiecutter.json (1 hunks)
  • {{cookiecutter.app_name}}/go.mod (8 hunks)
🔇 Additional comments (5)
cookiecutter.json (1)

10-10: Approve — Go 1.25 added and templates look aligned

Quick verification performed across the repo:

  • cookiecutter.json contains the updated matrix:
    "docker_build_image_version": ["1.25", "1.24"]
  • Templates use the cookiecutter variable (so the default/first choice "1.25" will be applied):
    • {{cookiecutter.app_name}}/Dockerfile: FROM {{cookiecutter.docker_build_image}}:{{cookiecutter.docker_build_image_version}}
    • {{cookiecutter.app_name}}/go.mod: go {{cookiecutter.docker_build_image_version}}
  • No .github/workflows directory or hard-coded FROM golang:* images were found by the repo-wide scan.

Action: No changes required in this template repo. If you maintain downstream CI pipelines or external repos generated from this template, update their setup (actions/setup-go, Dockerfiles, or other CI configs) to use Go 1.25 as needed.

{{cookiecutter.app_name}}/go.mod (4)

288-295: Large OpenTelemetry upgrades; verify any sample/instrumentation code remains compatible.

The OTEL modules jumped to v1.37.0. If the template includes sample traces/metrics or generated code, double-check usage and configuration flags remain valid. No blocker if the template has no such code.


224-227: Prometheus bumps; watch for minor API/semantic changes.

client_golang v1.23.0 and friends can introduce small changes (e.g., histograms, collectors). If the template exports any metrics helpers, sanity-check registration and collectors. Otherwise safe to proceed.


70-72: Both backoff/v4 and backoff/v5 are indirect — no direct imports found

rg search returned matches only in go.mod and go.sum; no .go source files import github.com/cenkalti/backoff/v4 or /v5.

  • Checked locations:
    • {{cookiecutter.app_name}}/go.mod — lines 70–71: backoff/v4 v4.3.0 // indirect and backoff/v5 v5.0.3 // indirect
    • {{cookiecutter.app_name}}/go.sum — entries referencing both v4 and v5 (grep hits around lines 1489–1493)

Action: none required — coexistence is transitive and safe as-is.


312-313: Deprecated x/tools entries are indirect only — no direct usage found.

Quick check (rg) shows these modules only appear as indirect entries in go.mod/go.sum; there are no direct imports in the template.

Files to note:

  • {{cookiecutter.app_name}}/go.mod (lines 312–313)
	golang.org/x/tools/go/expect v0.1.1-deprecated // indirect
	golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated // indirect
  • {{cookiecutter.app_name}}/go.sum (entries referencing those modules at lines ~3328–3331)

Recommendation (optional): leave as-is since they’re indirect, or run go mod tidy / update the toolchain dependency (golang.org/x/tools v0.36.0 is present indirectly) to prune/update these if you want to remove deprecated artifacts. Not a blocker.

@ankurs ankurs merged commit 810f09a into master Oct 20, 2025
4 checks passed
@ankurs ankurs deleted the feat/go-1.25 branch October 20, 2025 11:34
@coderabbitai coderabbitai Bot mentioned this pull request Mar 23, 2026
3 tasks
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