Skip to content
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

feat: Integrate grpc configuration into client.toml #19905

Merged
merged 7 commits into from
Apr 2, 2024

Conversation

lucaslopezf
Copy link
Contributor

@lucaslopezf lucaslopezf commented Mar 29, 2024

Description

Closes: #19120

Changes

  • Add grpc client config to client.toml

Author Checklist

All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.

I have...

  • included the correct type prefix in the PR title
  • confirmed ! in the type prefix if API or client breaking change
  • targeted the correct branch (see PR Targeting)
  • provided a link to the relevant issue or specification
  • reviewed "Files changed" and left comments if necessary
  • included the necessary unit and integration tests
  • added a changelog entry to CHANGELOG.md
  • updated the relevant documentation or specification, including comments for documenting Go code
  • confirmed all CI checks have passed

Reviewers Checklist

All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.

I have...

  • confirmed the correct type prefix in the PR title
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic, API design and naming, documentation is accurate, tests and test coverage

Summary by CodeRabbit

  • New Features
    • Added gRPC client configuration support.
    • Implemented new service routing functionality.
    • Introduced new data encoding and comparison methods for specific data types.
  • Refactor
    • Refactored client configuration setup for better integration of custom settings.
  • Tests
    • Added tests for new gRPC client configuration setup.

Copy link
Contributor

coderabbitai bot commented Mar 29, 2024

Walkthrough

Walkthrough

The recent updates encompass the addition of a gRPC client configuration to the client.toml file, enabling users to configure the gRPC client. This includes enhancements to client settings, a new codec for math.Uint in collections, a comparison method for types.Coin, and the implementation of a service router in runtime. These changes focus on improving customization, scalability, and overall system functionality.

Changes

File(s) Change Summary
client/config/config.go, client/config/toml.go Added gRPC client configuration to client.toml and introduced related structs and constants.
client/config/config_test.go Included tests for the new gRPC client configuration.
simapp/simd/cmd/config.go Refactored client configuration setup to enhance customization.
CHANGELOG.md Documented recent changes such as gRPC client config, ValueCodec addition, and IsGT method.

Assessment against linked issues

Objective Addressed Explanation
Add gRPC client config to client.toml (#19120)

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

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>.
    • Generate unit testing code for this file.
    • 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. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • 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 generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • 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/coderabbit-overrides.v2.json

CodeRabbit Discord Community

Join our Discord Community to get help, request features, and share feedback.

@github-actions github-actions bot added the C:CLI label Mar 29, 2024
@lucaslopezf lucaslopezf changed the title feat: Add grpc client config to client.toml feat: Integrate grpc configuration into client.toml and enhanced custom settings management Mar 30, 2024
@lucaslopezf
Copy link
Contributor Author

Some doubts:

  • I assume that the grpc flags should be continued, right?
  • Do I need to add anything in /tools/confix/data?
  • Do I need to update any documentation that I am missing?

@lucaslopezf lucaslopezf marked this pull request as ready for review March 30, 2024 03:30
@lucaslopezf lucaslopezf requested a review from a team as a code owner March 30, 2024 03:30
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: 0

Review Status

Configuration used: .coderabbit.yml

Commits Files that changed from the base of the PR and between cb5d34e and fde3134.
Files selected for processing (5)
  • CHANGELOG.md (2 hunks)
  • client/config/config.go (4 hunks)
  • client/config/config_test.go (2 hunks)
  • client/config/toml.go (2 hunks)
  • simapp/simd/cmd/config.go (1 hunks)
Additional Context Used
Path-based Instructions (5)
client/config/toml.go (1)

**/*.go:
Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

simapp/simd/cmd/config.go (1)

**/*.go:
Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

client/config/config_test.go (2)

**/*.go:
Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.


**/*_test.go:
Assess the unit test code assessing sufficient code coverage for the changes associated in the pull request

client/config/config.go (1)

**/*.go:
Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

CHANGELOG.md (1)

**/*.md:
Assess the documentation for misspellings, grammatical errors, missing documentation and correctness

Additional comments not posted (10)
client/config/toml.go (2)

12-12: The introduction of CustomConfigKey as a placeholder for custom configurations is a good practice for enhancing the flexibility and maintainability of configuration files.


33-52: The update to DefaultClientConfigTemplate to include placeholders for custom and gRPC configurations is well-implemented. This change enhances the clarity and scalability of the configuration file by ensuring that custom settings are correctly applied.

simapp/simd/cmd/config.go (1)

59-69: The refactoring in initClientConfig to introduce and integrate custom configuration settings into the default configuration template is well-executed. The use of structured configuration and the CustomizeConfigTemplate function enhances the maintainability and scalability of the configuration management.

client/config/config_test.go (2)

83-90: The update to use CustomizeConfigTemplate for generating the customClientConfigTemplate in tests is a good practice, ensuring that custom configurations are correctly integrated. This enhances the test's relevance and accuracy.


185-202: The addition of TestGRPCConfig is a valuable enhancement to the test suite, ensuring the correct setup of gRPC configurations within the client configuration. This test is well-structured and covers the necessary assertions to verify the functionality.

client/config/config.go (3)

48-51: The introduction of the GRPCConfig struct to encapsulate gRPC client settings is a significant enhancement. It aligns with the PR's objectives and follows best practices for configuration management.


176-195: The addition of the getGRPCClient function and its integration into the client configuration setup is well-implemented. It correctly handles the creation of gRPC clients based on the configuration, supporting both secure and insecure connections. This is a crucial enhancement for the gRPC client configuration feature.


4-12: The imports for grpc, grpc/credentials, and grpc/credentials/insecure are correctly added to support the new gRPC client configuration functionality. These imports are essential for establishing secure and insecure gRPC connections.

CHANGELOG.md (2)

45-45: The Features section accurately reflects significant additions to the Cosmos SDK. Ensure the PR links and descriptions are accurate and relevant to the changes made.


63-63: The Improvements section clearly outlines enhancements made to the Cosmos SDK. Verify the accuracy of the PR links and ensure the descriptions accurately reflect the changes.

CHANGELOG.md Outdated Show resolved Hide resolved
client/config/config.go Outdated Show resolved Hide resolved
@lucaslopezf lucaslopezf changed the title feat: Integrate grpc configuration into client.toml and enhanced custom settings management feat: Integrate grpc configuration into client.toml Mar 30, 2024
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: 0

Review Status

Configuration used: .coderabbit.yml

Commits Files that changed from the base of the PR and between fde3134 and 7da2294.
Files selected for processing (4)
  • CHANGELOG.md (1 hunks)
  • client/config/config.go (3 hunks)
  • client/config/config_test.go (2 hunks)
  • client/config/toml.go (2 hunks)
Files skipped from review as they are similar to previous changes (4)
  • CHANGELOG.md
  • client/config/config.go
  • client/config/config_test.go
  • client/config/toml.go
Additional Context Used

client/config/toml.go Outdated Show resolved Hide resolved
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: 0

Review Status

Configuration used: .coderabbit.yml

Commits Files that changed from the base of the PR and between 7da2294 and 9ee9cbd.
Files selected for processing (1)
  • client/config/toml.go (2 hunks)
Files skipped from review as they are similar to previous changes (1)
  • client/config/toml.go
Additional Context Used

Copy link
Member

@julienrbrt julienrbrt left a comment

Choose a reason for hiding this comment

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

utACK

@tac0turtle tac0turtle added this pull request to the merge queue Apr 2, 2024
Merged via the queue into main with commit 319e6e4 Apr 2, 2024
61 of 62 checks passed
@tac0turtle tac0turtle deleted the lucas/grpc-config-client branch April 2, 2024 14:28
alpe added a commit to alpe/cosmos-sdk that referenced this pull request Apr 8, 2024
* main: (45 commits)
  build(deps): Bump github.com/decred/dcrd/dcrec/secp256k1/v4 from 4.2.0 to 4.3.0 (cosmos#19913)
  build(deps): Bump google.golang.org/grpc from 1.62.1 to 1.63.0 (cosmos#19929)
  test(types/address): add additional unit tests for address.LengthPrefix and a… (cosmos#19964)
  refactor(x/bank)!: remove Address.String() (cosmos#19954)
  build(deps): Bump github.com/prometheus/common from 0.51.1 to 0.52.2 (cosmos#19930)
  fix(x/epochs): Fix init genesis (cosmos#19958)
  feat(core,runtime): transaction service (exec mode) (cosmos#19953)
  fix(x/authz): non utf-8 characters in logs (cosmos#19923)
  build(deps): Bump golang.org/x/crypto from 0.21.0 to 0.22.0 (cosmos#19960)
  chore: fix spelling errors (cosmos#19957)
  fix(x/tx): don't shadow Amino marshalling error messages (cosmos#19955)
  refactor(types): loosen module.AppModule interface (cosmos#19951)
  feat(core): add `TxValidator` interface (cosmos#19950)
  build(deps): Bump cosmossdk.io/store from 1.0.2 to 1.1.0 in /x/epochs (cosmos#19947)
  feat(x/epochs): upstream osmosis epoch module (cosmos#19697)
  build(deps): Bump bufbuild/buf-setup-action from 1.30.0 to 1.30.1 (cosmos#19928)
  refactor(x/genutil)!: remove Address.String() (cosmos#19926)
  docs(x/mint): Fix inconsistency in mint docs  (cosmos#19915)
  build(deps): Bump github.com/regen-network/gocuke from 1.1.0 to 1.1.1 in /orm (cosmos#19920)
  feat: Integrate grpc configuration into client.toml (cosmos#19905)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature]: add grpc client config to client.toml
5 participants