Skip to content

🧹 chore: require Go 1.25#3682

Merged
ReneWerner87 merged 1 commit intomainfrom
codex/2025-08-13-13-27-18
Aug 14, 2025
Merged

🧹 chore: require Go 1.25#3682
ReneWerner87 merged 1 commit intomainfrom
codex/2025-08-13-13-27-18

Conversation

@ReneWerner87
Copy link
Member

Summary

  • raise minimum Go version requirement to 1.25
  • update documentation to match Go 1.25 requirement
  • update CI workflows to run on Go 1.25

Testing

  • make audit (fails: storage_manager_msgp.go: EncodeMsg passes lock by value)
  • make generate
  • make betteralign (fails: package requires newer Go version go1.25 (application built with go1.24))
  • make modernize (fails: package requires newer Go version go1.25 (application built with go1.24))
  • make format
  • make test

https://chatgpt.com/codex/tasks/task_e_689bafd750548326add32c4e4266702c

Copilot AI review requested due to automatic review settings August 13, 2025 13:27
@ReneWerner87 ReneWerner87 requested a review from a team as a code owner August 13, 2025 13:27
@ReneWerner87 ReneWerner87 requested review from gaby and sixcolors August 13, 2025 13:27
@ReneWerner87 ReneWerner87 requested a review from efectn August 13, 2025 13:27
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 13, 2025

Walkthrough

Documentation updates to reflect the new minimum supported Go version: bumped from 1.24 to 1.25 in installation and “What’s New” pages. No code or API changes.

Changes

Cohort / File(s) Summary of changes
Docs: Go version bump
docs/intro.md, docs/whats_new.md
Updated references to minimum Go version from 1.24 to 1.25; no other content changes.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Suggested labels

🧹 Updates, v3, 📒 Documentation

Suggested reviewers

  • efectn
  • gaby
  • sixcolors

Poem

I thump with joy, a version hop,
From 1.24 to 1.25—quick stop!
Pages trimmed, numbers neat,
Docs now march in fresher feet.
Carrot commit, nibble of cheer—
Ship it clean, the path is clear! 🥕✨

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/2025-08-13-13-27-18

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
Contributor

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 updates the minimum Go version requirement from 1.24 to 1.25 across the entire project, ensuring consistency between code requirements, documentation, and CI workflows.

  • Updates go.mod to require Go 1.25.0
  • Updates documentation to reflect Go 1.25 requirement
  • Updates all GitHub Actions workflows to use Go 1.25.x

Reviewed Changes

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

Show a summary per file
File Description
go.mod Updates Go version requirement from 1.24.0 to 1.25.0
docs/whats_new.md Updates documentation to reflect Go 1.25 minimum requirement
docs/intro.md Updates installation documentation to specify Go 1.25 requirement
.github/workflows/test.yml Updates CI test workflow to use Go 1.25.x
.github/workflows/modernize.yml Updates modernize workflow to use Go 1.25.x
.github/workflows/linter.yml Updates linter workflow to use Go 1.25.x
.github/workflows/benchmark.yml Updates benchmark workflow to use Go 1.25.x

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Summary of Changes

Hello @ReneWerner87, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request updates the project's minimum Go version requirement to 1.25. This change involves modifying the go.mod file to reflect the new version and updating relevant documentation to inform users of the increased requirement. The CI workflows are also intended to be updated to align with Go 1.25.

Highlights

  • Go Version Update: The core change in this pull request is raising the minimum required Go version for the project from 1.24 to 1.25.
  • Documentation Updates: The project documentation, specifically docs/intro.md and docs/whats_new.md, has been updated to reflect the new Go 1.25 requirement for installation and support.
  • Module File Update: The go.mod file has been modified to declare go 1.25.0 as the new minimum Go version for the module.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates the project to require Go 1.25, which is reflected in the go.mod file and the documentation. The changes are straightforward and align with the goal of the PR.

However, I have some concerns based on the test results you've shared in the description:

  1. Failing Audit: The make audit command fails with a vet error: storage_manager_msgp.go: EncodeMsg passes lock by value. This indicates a potential concurrency bug where a struct containing a lock is passed by value. This is a high-severity issue that should be addressed before merging. It's possible that Go 1.25 has stricter checks that caught this existing issue.

  2. CI/Toolchain Version: The failures in make betteralign and make modernize suggest that the Go toolchain being used is older than the newly required Go 1.25. To ensure the project remains buildable and tests can run successfully, this PR should also include the necessary updates to the CI workflows to use Go 1.25.

I recommend addressing the audit failure and including the CI configuration changes in this PR to make it complete and ensure the project stays in a healthy state.

@gaby gaby changed the title chore: require Go 1.25 🧹 chore: require Go 1.25 Aug 13, 2025
@codecov
Copy link

codecov bot commented Aug 13, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.91%. Comparing base (87b6e53) to head (68487ed).
⚠️ Report is 52 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3682   +/-   ##
=======================================
  Coverage   91.91%   91.91%           
=======================================
  Files         113      113           
  Lines       11496    11496           
=======================================
  Hits        10566    10566           
  Misses        667      667           
  Partials      263      263           
Flag Coverage Δ
unittests 91.91% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@gaby gaby added this to v3 Aug 13, 2025
@gaby gaby added this to the v3 milestone Aug 13, 2025
@gaby gaby moved this to In Progress in v3 Aug 13, 2025
Copy link
Contributor

@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: 1

🧹 Nitpick comments (1)
docs/whats_new.md (1)

51-51: Upgrade minimum Go version to 1.25 across documentation and configs

Please tighten the wording in docs/whats_new.md and ensure all references to Go 1.24 are bumped to 1.25. We found:

  • docs/whats_new.md (line 51) should use:
    -Fiber `v3` drops support for Go versions below `1.25`. We recommend upgrading to Go `1.25` or higher to use Fiber `v3`.
    +Fiber `v3` requires Go `1.25+` (support for Go `< 1.25` has been dropped). Ensure your CI, Docker images, and module directives (`go.mod`/`toolchain`) are updated accordingly.
  • .github/README.md:
    • Line 42: “Fiber requires Go version 1.24 or higher” → update to 1.25 or higher.
    • Line 127: “tested with Go version 1.24 or higher” → update to 1.25 or higher.
  • CI workflows (if any) in .github/workflows: verify setup-go/go-version or matrix entries specify 1.25+.
  • go.mod/toolchain directive: bump go (or toolchain) to 1.25.

This will align your docs, CI, and module settings with Fiber v3’s new minimum Go requirement.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 87b6e53 and 68487ed.

⛔ Files ignored due to path filters (5)
  • .github/workflows/benchmark.yml is excluded by !**/*.yml
  • .github/workflows/linter.yml is excluded by !**/*.yml
  • .github/workflows/modernize.yml is excluded by !**/*.yml
  • .github/workflows/test.yml is excluded by !**/*.yml
  • go.mod is excluded by !**/*.mod
📒 Files selected for processing (2)
  • docs/intro.md (1 hunks)
  • docs/whats_new.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
docs/**

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

Review and update the contents of the docs folder if necessary when modifying code

Files:

  • docs/whats_new.md
  • docs/intro.md
🧠 Learnings (1)
📚 Learning: 2024-11-15T07:56:21.623Z
Learnt from: ReneWerner87
PR: gofiber/fiber#3161
File: app.go:923-932
Timestamp: 2024-11-15T07:56:21.623Z
Learning: In the Fiber framework, breaking changes are acceptable when moving from version 2 to version 3, including modifications to method signatures such as in the `Test` method in `app.go`.

Applied to files:

  • docs/whats_new.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: unit (1.25.x, windows-latest)
  • GitHub Check: repeated

Copy link
Contributor

@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: 1

🧹 Nitpick comments (1)
docs/whats_new.md (1)

51-51: Tighten wording and add a one-liner for upgrading/pinning the toolchain

Small clarity/nit: make the requirement explicit and offer an actionable tip for users pinning toolchains.

Apply:

-Fiber `v3` drops support for Go versions below `1.25`. We recommend upgrading to Go `1.25` or higher to use Fiber `v3`.
+Fiber `v3` requires Go `1.25+`. Set `go 1.25` in your `go.mod` (and optionally `toolchain go1.25`) to pin the minimum/toolchain; with Go 1.21+ `GOTOOLCHAIN=auto` will fetch the correct toolchain automatically.

Also run the verification script from the intro.md comment to ensure no lingering 1.24 references remain across docs and CI.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 87b6e53 and 68487ed.

⛔ Files ignored due to path filters (5)
  • .github/workflows/benchmark.yml is excluded by !**/*.yml
  • .github/workflows/linter.yml is excluded by !**/*.yml
  • .github/workflows/modernize.yml is excluded by !**/*.yml
  • .github/workflows/test.yml is excluded by !**/*.yml
  • go.mod is excluded by !**/*.mod
📒 Files selected for processing (2)
  • docs/intro.md (1 hunks)
  • docs/whats_new.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
docs/**

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

Review and update the contents of the docs folder if necessary when modifying code

Files:

  • docs/intro.md
  • docs/whats_new.md
🧠 Learnings (1)
📚 Learning: 2024-11-15T07:56:21.623Z
Learnt from: ReneWerner87
PR: gofiber/fiber#3161
File: app.go:923-932
Timestamp: 2024-11-15T07:56:21.623Z
Learning: In the Fiber framework, breaking changes are acceptable when moving from version 2 to version 3, including modifications to method signatures such as in the `Test` method in `app.go`.

Applied to files:

  • docs/whats_new.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: unit (1.25.x, macos-latest)
  • GitHub Check: unit (1.25.x, macos-13)
  • GitHub Check: unit (1.25.x, windows-latest)
  • GitHub Check: unit (1.25.x, ubuntu-latest)
  • GitHub Check: repeated
  • GitHub Check: lint

### Installation

First, [download](https://go.dev/dl/) and install Go. Version `1.24` or higher is required.
First, [download](https://go.dev/dl/) and install Go. Version `1.25` or higher is required.
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Ensure the 1.25 bump is consistent across docs, go.mod, and CI workflows

The line itself is correct. Please verify there are no lingering references to Go 1.24 and that go.mod and CI are aligned with 1.25.

Run this script from the repo root to validate consistency:


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "Searching for lingering 1.24 references..."
rg -n --hidden -S -E 'go1\.24|Go[[:space:]]*1\.24|`1\.24`|>=\s*1\.24' || true

echo
echo "Checking go.mod 'go' and optional 'toolchain' directives..."
fd -a go.mod | while read -r mod; do
  echo "==> $mod"
  sed -n '1,25p' "$mod" | sed 's/^/    /'
done

echo
echo "Checking GitHub Actions go-version usage (if any)..."
fd -a .github/workflows -t d -x rg -n -S -e 'go-version' -e 'go-version-file' . || true
fd -a .github/workflows -t d -x rg -n -S '1\.24' . || true

echo
echo "Scanning Dockerfiles and dev containers for pinned Golang 1.24 images..."
fd -H -a -e Dockerfile -x rg -n -S 'golang:.*1\.24' {} || true
fd -H -a -g '.devcontainer/**/devcontainer.json' -x rg -n -S '1\.24' {} || true

echo
echo "Scanning README and other docs for 1.24 mentions..."
fd -a README* docs -x rg -n -S '1\.24' {} || true

echo
echo "Done."

Length of output: 1516


Let's re-run a broader search to catch any stray 1.24 references and confirm go.mod, CI, Dockerfiles, and docs are all on 1.25:


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "1) Searching entire repo for '1.24'..."
rg -n --hidden -S '1\.24' || true

echo
echo "2) Inspecting go.mod for the Go toolchain version..."
if [[ -f go.mod ]]; then
  awk '/^go / {print "  " $0}' go.mod
else
  echo "  ⚠️ go.mod not found"
fi

echo
echo "3) Checking GitHub Actions workflows for Go version pins..."
rg -n 'go-version.*1\.24' .github/workflows || true
rg -n '1\.24' .github/workflows || true

echo
echo "4) Scanning Dockerfiles for Golang 1.24 images..."
rg -n 'golang:.*1\.24' -t Dockerfile || true

echo
echo "5) Looking through README* and docs/ for '1.24'..."
rg -n '1\.24' README* docs || true

echo
echo "✅ Verification complete."

Length of output: 1707


Update remaining Go 1.24 references to 1.25

The bump in docs/intro.md is correct, but there are two lingering “1.24” mentions in .github/README.md that should also be updated to “1.25”. No go.mod, CI workflows, or Dockerfiles pin Go 1.24, so only the docs need adjustment:

• .github/README.md (line 42)
• .github/README.md (line 127)

Suggested diff:

 .github/README.md
@@ -42,7 +42,7 @@
 Fiber requires **Go version `1.24` or higher** to run. If you need to install or upgrade Go, visit the [official Go download page](https://go.dev/dl/). To start setting up your project, create a new directory for your project and navigate into it. Then, initialize your project with Go modules by executing the following command in your terminal:

- Due to Fiber's usage of unsafe, the library may not always be compatible with the latest Go version. Fiber v3 has been tested with Go version 1.24 or higher.
+ Due to Fiber's usage of unsafe, the library may not always be compatible with the latest Go version. Fiber v3 has been tested with Go version 1.25 or higher.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
First, [download](https://go.dev/dl/) and install Go. Version `1.25` or higher is required.
Fiber requires **Go version `1.24` or higher** to run. If you need to install or upgrade Go, visit the [official Go download page](https://go.dev/dl/). To start setting up your project, create a new directory for your project and navigate into it. Then, initialize your project with Go modules by executing the following command in your terminal:
- Due to Fiber's usage of unsafe, the library may not always be compatible with the latest Go version. Fiber v3 has been tested with Go version 1.24 or higher.
+ Due to Fiber's usage of unsafe, the library may not always be compatible with the latest Go version. Fiber v3 has been tested with Go version 1.25 or higher.
🤖 Prompt for AI Agents
In .github/README.md around lines 42 and 127, update the remaining references to
Go version "1.24" to "1.25"; locate the two occurrences indicated in the review
and replace each "1.24" string with "1.25" so the documentation matches
docs/intro.md and the project-wide Go version requirement.

@ReneWerner87 ReneWerner87 merged commit de2ed84 into main Aug 14, 2025
14 checks passed
@ReneWerner87 ReneWerner87 deleted the codex/2025-08-13-13-27-18 branch August 14, 2025 06:15
@github-project-automation github-project-automation bot moved this from In Progress to Done in v3 Aug 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants