-
Notifications
You must be signed in to change notification settings - Fork 1.3k
chore: update go-libp2p to v0.42.0 and golang to v1.23.10 #13190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+146
−167
Conversation
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
Updates go-libp2p from v0.39.1 to v0.42.0. This builds on the work to update to 0.41.1 in #13173 and validates the draft PR submitted in #13179. Key dependency updates: - go-yamux v4.0.2 → v5.0.1 (major version bump) - go-datastore v0.6.0 → v0.8.2 (API compatibility) - go-multiaddr v0.14.0 → v0.16.0 - go-ds-badger2 v0.1.3 → v0.1.5 (fixes API breaking change) - Multiple golang.org/x/* standard library updates All changes maintain API compatibility with existing lotus code. Local testing shows successful compilation and unit tests pass. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Updates the Go module configuration to use Go 1.23.8 with a Go 1.24 toolchain and bumps multiple dependencies—most notably go-libp2p to v0.42.0 and go-yamux to v5.0.1.
- Bump Go version and add
toolchain
directive - Upgrade direct modules: go-libp2p, go-datastore, go-ds-badger2, go-multiaddr, go-log, fx, x/* libraries
- Align indirect dependencies with new major versions (go-yamux/v5, pion libs, prometheus, etc.)
Comments suppressed due to low confidence (2)
go.mod:112
- With the major bump of go-libp2p to v0.42.0, consider adding or updating an integration test that verifies peer connectivity and protocol negotiation, as there may be API changes in the new version.
github.com/libp2p/go-libp2p v0.42.0
go.mod:5
- Since you added a
toolchain go1.24.0
directive, make sure the CI pipelines and any local development Docker images or scripts are updated to install Go 1.24, otherwise builds may break.
toolchain go1.24.0
- Update GO_VERSION_MIN to enforce 1.23.10 minimum - Update .go-version for version managers - Update README.md badge and documentation - Update installation example to use 1.23.10 This follows the lotus standard practice of updating all Go version files together for consistency across the codebase.
Updates the Docker base image from golang:1.23.7-bullseye to golang:1.23.10-bullseye to match the updated Go version requirements.
Removes checksums for modules that are no longer needed after the go-libp2p v0.42.0 update and Go 1.23.10 version bump.
The .go-version file is developer-specific and should not be tracked in version control. Developers can create their own local .go-version file for their preferred Go version manager (gvm, g, etc.).
BigLep
added a commit
that referenced
this pull request
Jun 30, 2025
Documents lotus's conservative Go version strategy: - Stay one minor version behind latest Go release - Gradual adoption with ~1 month transition period - Regular patch version updates for security/bug fixes Includes: - Philosophy and rationale behind version strategy - Timeline examples showing upgrade process - Step-by-step instructions for updating Go versions - File purposes and developer notes - Reference to PR #13190 as example implementation This formalizes the existing practices observed in recent Go version updates and provides clear guidance for future updates.
…irements The filecoin-ffi submodule now requires Rust 1.86.0 as specified in rust-toolchain.toml, but the Dockerfile was still using Rust 1.63.0, causing Docker builds to fail during the 'make clean deps' step when trying to update the Rust toolchain. Also add changelog entry for Go version update to 1.23.10. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
rjan90
approved these changes
Jun 30, 2025
4 tasks
BigLep
added a commit
that referenced
this pull request
Jul 1, 2025
* docs: add Go version management policy to CONTRIBUTING.md Documents lotus's conservative Go version strategy: - Stay one minor version behind latest Go release - Gradual adoption with ~1 month transition period - Regular patch version updates for security/bug fixes Includes: - Philosophy and rationale behind version strategy - Timeline examples showing upgrade process - Step-by-step instructions for updating Go versions - File purposes and developer notes - Reference to PR #13190 as example implementation This formalizes the existing practices observed in recent Go version updates and provides clear guidance for future updates. * Update CONTRIBUTING.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Condensed Go version notes --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
8 tasks
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.
Summary
Key Changes
Testing
CGO_LDFLAGS="-L/opt/homebrew/lib"
Test plan
🤖 Generated with Claude Code