Skip to content

Conversation

BigLep
Copy link
Member

@BigLep BigLep commented Jun 30, 2025

Summary

Key Changes

  • 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

Testing

  • ✅ Local compilation successful with CGO_LDFLAGS="-L/opt/homebrew/lib"
  • ✅ Unit tests pass for core modules (node/*, eth, gasutils)
  • ✅ All changes maintain API compatibility with existing lotus code
  • ✅ Dependency updates validated as legitimate and necessary

Test plan

  • CI passes

🤖 Generated with Claude Code

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>
@Copilot Copilot AI review requested due to automatic review settings June 30, 2025 18:28
@github-project-automation github-project-automation bot moved this to 📌 Triage in FilOz Jun 30, 2025
Copy link
Contributor

@Copilot 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

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

BigLep added 4 commits June 30, 2025 11:30
- 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.
@BigLep BigLep changed the title chore: update go-libp2p to v0.42.0 chore: update go-libp2p to v0.42.0 and golang to v1.23.10 Jun 30, 2025
BigLep added 2 commits June 30, 2025 11:44
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 BigLep self-assigned this Jun 30, 2025
@BigLep BigLep moved this from 📌 Triage to 🔎 Awaiting Review in FilOz Jun 30, 2025
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>
@BigLep BigLep requested a review from rjan90 June 30, 2025 20:12
@github-project-automation github-project-automation bot moved this from 🔎 Awaiting Review to ✔️ Approved by reviewer in FilOz Jun 30, 2025
@BigLep BigLep merged commit 7dcccff into master Jun 30, 2025
177 of 178 checks passed
@BigLep BigLep deleted the biglep/update-go-libp2p-v0.42.0 branch June 30, 2025 22:04
@github-project-automation github-project-automation bot moved this from ✔️ Approved by reviewer to 🎉 Done in FilOz Jun 30, 2025
@BigLep BigLep mentioned this pull request Jun 30, 2025
43 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🎉 Done
Development

Successfully merging this pull request may close these issues.

2 participants