Skip to content

Update bbolt#10221

Merged
yyforyongyu merged 1 commit intolightningnetwork:masterfrom
ziggie1984:update-bbolt
Sep 17, 2025
Merged

Update bbolt#10221
yyforyongyu merged 1 commit intolightningnetwork:masterfrom
ziggie1984:update-bbolt

Conversation

@ziggie1984
Copy link
Collaborator

@ziggie1984 ziggie1984 commented Sep 15, 2025

This PR only updates bbolt, for the main go.mod module and the kvdb module where it is directly used.

Copy link

@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 @ziggie1984, 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 focuses on updating and modernizing the project's Go module dependencies. The primary goal is to ensure compatibility, enhance security, and potentially improve performance by leveraging the latest versions of critical libraries. These updates span core components like the database, RPC framework, and related infrastructure libraries.

Highlights

  • Dependency Updates: Updated core Go dependencies including bbolt, grpc, etcd, and k8s libraries to their latest versions.
  • Protobuf Regeneration: Upgraded the protoc-gen-go tool, leading to the regeneration of numerous protobuf files across various RPC sub-packages. This primarily involved changes to internal protobuf implementation details and metadata tags.
  • Improved Dependency Management: Several direct and indirect dependencies were updated or added, enhancing overall project stability and ensuring compatibility with newer Go versions and upstream changes.
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

@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 provides a comprehensive update to several key dependencies, including bbolt, grpc, etcd, and various Kubernetes libraries. The changes are primarily within the go.mod and go.sum files, reflecting the version bumps. Additionally, Protobuf-generated files have been updated, which is an expected consequence of the protoc-gen-go toolchain update. The dependency changes are consistent across the main module and the kvdb submodule. This is a solid maintenance update that keeps the project's dependencies current.

@ziggie1984
Copy link
Collaborator Author

should we go straight to 1.75 for the grpc package ? Quite new release but I think the source of the lib is super good.

@Roasbeef
Copy link
Member

All the itests look good other than the etcd itest. Is that a flake, or a persistent failure as a result of the new dep bump?

@Roasbeef
Copy link
Member

Did some digging, and these look to be the major updates between v1.59 and v1.73:

  • 1.59.0 – Default idle_timeout=30m; case-sensitive balancer names warning; grpc-status-details-bin handling aligned.
    GitHub

  • 1.60.0 – Remove WithServiceConfig & ClientConn.NewServiceConfig; TLS min 1.2 when unset; Server.Stop/GracefulStop block until resources released.
    GitHub

  • 1.62.0 – Switch to google.golang.org/protobuf; nil-message marshal behavior change.
    GitHub

  • 1.67.0 – ALPN required by default.
    GitHub

  • 1.68.0 – Min Go 1.22.7 (later relaxed to 1.22); TLS configs using GetConfigForClient now get ALPN/cipher suites auto-set.
    GitHub

  • 1.69.0 – Adds OpenTelemetry metrics API; known proxy incompatibility with NewClient (don’t pin to this).
    GitHub

  • 1.70.0 – Reject invalid retryPolicy; adds temporary “no-ALPN” experimental creds (do not rely on them).
    GitHub

  • 1.71.0 – Balancer interface adjustments/metrics recorder changes.
    GitHub

  • 1.72.0 – Min Go 1.23; new pick_first default (Happy Eyeballs).
    GitHub

  • 1.73.0 – Ring-hash exported; xDS least-request default; CallAuthority; health List; stricter grpc-timeout on server.
    GitHub

So nothign terribly ground breaking. The biggest change causing the diff is that they started to use google.golang.org/protobuf instead of github.golang/protobuf, and ofc the related proto buf version bump.

  • This change came with the following note:

    The above change in proto library usage introduces a minor behavior change within those libraries. The old github.com/golang/protobuf library would error if given a nil message to Marshal, while the new google.golang.org/protobuf library will successfully output zero bytes in this case. This means server method handlers that did return nil, nil will now return an empty message and no error, while it used to return an error. This also affects the client side, where clients sending nil messages used to fail without sending the RPC, and now they will send an empty message.

Version v1.4.3 has some important bugfixes. We bump both version
in the same go so we do not need to tag the kvdb package and the
latest version of will be used.
@ziggie1984 ziggie1984 changed the title Update bbolt + grpc dependencies Update bbolt Sep 16, 2025
@ziggie1984 ziggie1984 requested a review from Roasbeef September 16, 2025 21:12
@ziggie1984
Copy link
Collaborator Author

ziggie1984 commented Sep 16, 2025

just updating the bbolt version now in this PR because it has some important bugfixes.

See also: https://github.com/etcd-io/bbolt/blob/main/CHANGELOG/CHANGELOG-1.4.md#v1432025-08-19

@ziggie1984 ziggie1984 added this to the v0.20.0 milestone Sep 16, 2025
@saubyk saubyk moved this to In review in lnd v0.20 Sep 16, 2025
Copy link
Member

@Roasbeef Roasbeef left a comment

Choose a reason for hiding this comment

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

LGTM 🥦

@yyforyongyu yyforyongyu merged commit 1ee3b95 into lightningnetwork:master Sep 17, 2025
35 of 39 checks passed
@github-project-automation github-project-automation bot moved this from In review to Done in lnd v0.20 Sep 17, 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.

4 participants