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

build(deps): upgrade ledger-cosmos-go package #23007

Merged
merged 3 commits into from
Dec 19, 2024

Conversation

emmanuelm41
Copy link
Contributor

@emmanuelm41 emmanuelm41 commented Dec 19, 2024

ledger-cosmos-go dependencies have been upgraded. In particular, ledger-go package. The new version fixes a known issue wth nano s plus devices after the latest firmware upgrade.

Summary by CodeRabbit

  • New Features

    • Updated the github.com/cosmos/ledger-cosmos-go dependency to version v0.14.0, potentially enhancing functionality and addressing previous issues.
    • Added new indirect dependencies for improved protocol buffer support in the x/bank module.
  • Bug Fixes

    • Maintained a list of retracted versions to caution users against using unreliable versions.

@emmanuelm41 emmanuelm41 requested a review from a team as a code owner December 19, 2024 12:52
Copy link
Contributor

coderabbitai bot commented Dec 19, 2024

📝 Walkthrough
📝 Walkthrough

Walkthrough

The pull request focuses on updating the go.mod files across multiple modules, specifically upgrading the github.com/cosmos/ledger-cosmos-go dependency from version v0.13.3 to v0.14.0. This change involves a minor version increment of the package. The modifications maintain the existing structure of the go.mod files, preserving the require, replace, and retract sections while making targeted dependency updates.

Changes

File Change Summary
go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0
client/v2/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
server/v2/cometbft/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
simapp/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
simapp/v2/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
tests/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
tools/benchmark/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/accounts/defaults/base/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/accounts/defaults/lockup/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/accounts/defaults/multisig/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/accounts/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/authz/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/bank/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0
x/circuit/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/consensus/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/distribution/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/epochs/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/evidence/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/feegrant/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/gov/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/group/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/mint/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/nft/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/params/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/protocolpool/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/slashing/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/staking/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)
x/upgrade/go.mod Updated github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 (indirect)

Possibly related PRs

Suggested reviewers

  • julienrbrt
  • hieuvubk
  • tac0turtle
  • aaronc

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>, please review it.
    • 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 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 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.
    • @coderabbitai help me debug CodeRabbit configuration file.

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 using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

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.

Documentation and Community

  • 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.

@julienrbrt julienrbrt changed the title upgrade ledger-cosmos-go package build(deps): upgrade ledger-cosmos-go package Dec 19, 2024
@julienrbrt julienrbrt added backport/v0.52.x PR scheduled for inclusion in the v0.52's next stable release and removed backport v0.52.1 labels Dec 19, 2024
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. You need to run run the go mod tidy all script

@emmanuelm41
Copy link
Contributor Author

@julienrbrt thanks. I am already on it!

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)
x/consensus/go.mod (1)

60-60: LGTM: Consistent version upgrade across modules

The upgrade to ledger-cosmos-go v0.14.0 is consistently applied across all modules, which is crucial for maintaining compatibility and addressing the nano S Plus device issues.

Consider documenting the minimum supported firmware versions for different Ledger devices in the project's documentation to help users understand compatibility requirements.

📜 Review details

Configuration used: .coderabbit.yml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c14a82d and 53e77a1.

⛔ Files ignored due to path filters (27)
  • client/v2/go.sum is excluded by !**/*.sum
  • server/v2/cometbft/go.sum is excluded by !**/*.sum
  • simapp/go.sum is excluded by !**/*.sum
  • simapp/v2/go.sum is excluded by !**/*.sum
  • tests/go.sum is excluded by !**/*.sum
  • tools/benchmark/go.sum is excluded by !**/*.sum
  • x/accounts/defaults/base/go.sum is excluded by !**/*.sum
  • x/accounts/defaults/lockup/go.sum is excluded by !**/*.sum
  • x/accounts/defaults/multisig/go.sum is excluded by !**/*.sum
  • x/accounts/go.sum is excluded by !**/*.sum
  • x/authz/go.sum is excluded by !**/*.sum
  • x/bank/go.sum is excluded by !**/*.sum
  • x/circuit/go.sum is excluded by !**/*.sum
  • x/consensus/go.sum is excluded by !**/*.sum
  • x/distribution/go.sum is excluded by !**/*.sum
  • x/epochs/go.sum is excluded by !**/*.sum
  • x/evidence/go.sum is excluded by !**/*.sum
  • x/feegrant/go.sum is excluded by !**/*.sum
  • x/gov/go.sum is excluded by !**/*.sum
  • x/group/go.sum is excluded by !**/*.sum
  • x/mint/go.sum is excluded by !**/*.sum
  • x/nft/go.sum is excluded by !**/*.sum
  • x/params/go.sum is excluded by !**/*.sum
  • x/protocolpool/go.sum is excluded by !**/*.sum
  • x/slashing/go.sum is excluded by !**/*.sum
  • x/staking/go.sum is excluded by !**/*.sum
  • x/upgrade/go.sum is excluded by !**/*.sum
📒 Files selected for processing (27)
  • client/v2/go.mod (1 hunks)
  • server/v2/cometbft/go.mod (1 hunks)
  • simapp/go.mod (1 hunks)
  • simapp/v2/go.mod (1 hunks)
  • tests/go.mod (1 hunks)
  • tools/benchmark/go.mod (1 hunks)
  • x/accounts/defaults/base/go.mod (1 hunks)
  • x/accounts/defaults/lockup/go.mod (1 hunks)
  • x/accounts/defaults/multisig/go.mod (1 hunks)
  • x/accounts/go.mod (1 hunks)
  • x/authz/go.mod (1 hunks)
  • x/bank/go.mod (1 hunks)
  • x/circuit/go.mod (1 hunks)
  • x/consensus/go.mod (1 hunks)
  • x/distribution/go.mod (1 hunks)
  • x/epochs/go.mod (1 hunks)
  • x/evidence/go.mod (1 hunks)
  • x/feegrant/go.mod (1 hunks)
  • x/gov/go.mod (1 hunks)
  • x/group/go.mod (1 hunks)
  • x/mint/go.mod (1 hunks)
  • x/nft/go.mod (1 hunks)
  • x/params/go.mod (1 hunks)
  • x/protocolpool/go.mod (1 hunks)
  • x/slashing/go.mod (1 hunks)
  • x/staking/go.mod (1 hunks)
  • x/upgrade/go.mod (1 hunks)
✅ Files skipped from review due to trivial changes (17)
  • x/authz/go.mod
  • x/circuit/go.mod
  • x/mint/go.mod
  • x/accounts/defaults/lockup/go.mod
  • tests/go.mod
  • x/gov/go.mod
  • x/upgrade/go.mod
  • x/slashing/go.mod
  • x/evidence/go.mod
  • x/params/go.mod
  • x/staking/go.mod
  • x/epochs/go.mod
  • x/accounts/go.mod
  • x/protocolpool/go.mod
  • x/distribution/go.mod
  • simapp/v2/go.mod
  • simapp/go.mod
🔇 Additional comments (8)
tools/benchmark/go.mod (1)

56-56: Verify ledger package compatibility

The upgrade of ledger-cosmos-go to v0.14.0 aligns with the PR objective to fix nano S Plus device issues. Let's verify compatibility with related packages.

✅ Verification successful

Ledger package versions are compatible

The upgrade of ledger-cosmos-go to v0.14.0 is compatible with the current ledger-go v0.14.3 dependency. The release notes confirm that ledger-cosmos-go v0.14.0 specifically upgraded its ledger-go dependency, and both packages are consistently using the v0.14.x series across the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if ledger-cosmos-go v0.14.0 is compatible with current ledger-go version
rg -A 1 "github.com/zondax/ledger-go" | grep "v0.14"

# Check changelog or release notes for compatibility information
gh api repos/cosmos/ledger-cosmos-go/releases/tags/v0.14.0 --jq .body

Length of output: 9750

x/bank/go.mod (1)

56-56: LGTM: Version upgrade is consistent

The upgrade to ledger-cosmos-go v0.14.0 is consistent with other modules and maintains dependency coherence.

x/nft/go.mod (1)

61-61: LGTM: Dependency upgrade for ledger-cosmos-go

The upgrade from v0.13.3 to v0.14.0 aligns with the PR objective to address nano S Plus device compatibility issues.

Let's verify the changelog for this version:

client/v2/go.mod (1)

70-70: LGTM: Consistent dependency upgrade

The ledger-cosmos-go upgrade matches the changes in other modules, maintaining consistency across the codebase.

x/accounts/defaults/base/go.mod (1)

59-59: LGTM: Aligned dependency upgrade

The ledger-cosmos-go upgrade is consistent with other modules and addresses the reported nano S Plus device compatibility issue.

x/accounts/defaults/multisig/go.mod (1)

58-58: Verify compatibility with zondax/ledger-go dependency

The upgrade of ledger-cosmos-go to v0.14.0 looks good. Let's verify its compatibility with the related ledger-go package.

✅ Verification successful

Ledger-cosmos-go v0.14.0 is compatible with ledger-go v0.14.3

The verification shows that ledger-cosmos-go v0.14.0 uses ledger-go v0.14.3, which is the same version currently used throughout the codebase. This confirms version compatibility between these dependencies.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check compatibility between ledger-cosmos-go and ledger-go versions
# Verify that ledger-cosmos-go v0.14.0 is compatible with the current ledger-go version

# Get the current ledger-go version requirement
rg -A 1 "github.com/zondax/ledger-go" 

# Get the go.mod from ledger-cosmos-go v0.14.0 to check its ledger-go requirement
curl -s https://raw.githubusercontent.com/cosmos/ledger-cosmos-go/v0.14.0/go.mod | rg "github.com/zondax/ledger-go"

Length of output: 17160

x/group/go.mod (1)

68-68: LGTM - Consistent with other modules

The upgrade of ledger-cosmos-go to v0.14.0 is consistent with the changes in other modules.

x/feegrant/go.mod (1)

72-72: LGTM - Completes the consistent upgrade pattern

The upgrade of ledger-cosmos-go to v0.14.0 is consistent across all modules, addressing the nano S Plus firmware compatibility issue mentioned in the PR description.

@@ -74,7 +74,7 @@ require (
github.com/cosmos/gogogateway v1.2.0 // indirect
github.com/cosmos/iavl v1.3.4 // indirect
github.com/cosmos/ics23/go v0.11.0 // indirect
github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect
github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Codebase verification

Update required: ledger-cosmos-go version inconsistency

The following files still use the older v0.13.3 version and need to be updated to v0.14.0:

  • tools/hubl/go.mod
  • tests/systemtests/go.mod
  • tools/cosmovisor/go.mod
  • tools/confix/go.mod
  • systemtests/go.mod

The v0.14.0 release notes indicate no breaking changes, with only repository structure cleanup and dependency updates. All other go.mod files in the codebase are already using v0.14.0.

🔗 Analysis chain

Verify the ledger-cosmos-go upgrade impact

The upgrade from v0.13.3 to v0.14.0 aligns with the PR objective to address nano S Plus device issues. As this is a minor version bump, it should maintain backward compatibility.

Let's verify the comprehensive update across the codebase:


Inconsistent ledger-cosmos-go versions detected across go.mod files

The verification reveals that some go.mod files still reference v0.13.3 while others have been updated to v0.14.0. Let's identify the specific files that need updating:

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify ledger-cosmos-go version consistency across all go.mod files
# and check for any breaking changes in the upgrade

# Check all go.mod files for ledger-cosmos-go version
echo "Checking ledger-cosmos-go version across all go.mod files..."
fd --type f --glob 'go.mod' --exec rg 'github.com/cosmos/ledger-cosmos-go'

# Check git history for breaking changes
echo "Checking for breaking changes between v0.13.3 and v0.14.0..."
gh api repos/cosmos/ledger-cosmos-go/releases | jq -r '.[] | select(.tag_name=="v0.14.0") | .body'

Length of output: 2626


Script:

#!/bin/bash
# Get file paths along with the versions
fd --type f --glob 'go.mod' --exec sh -c 'echo "=== $1 ==="; rg "github.com/cosmos/ledger-cosmos-go" "$1"' sh {}

Length of output: 3489

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

📜 Review details

Configuration used: .coderabbit.yml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c14a82d and 53e77a1.

⛔ Files ignored due to path filters (27)
  • client/v2/go.sum is excluded by !**/*.sum
  • server/v2/cometbft/go.sum is excluded by !**/*.sum
  • simapp/go.sum is excluded by !**/*.sum
  • simapp/v2/go.sum is excluded by !**/*.sum
  • tests/go.sum is excluded by !**/*.sum
  • tools/benchmark/go.sum is excluded by !**/*.sum
  • x/accounts/defaults/base/go.sum is excluded by !**/*.sum
  • x/accounts/defaults/lockup/go.sum is excluded by !**/*.sum
  • x/accounts/defaults/multisig/go.sum is excluded by !**/*.sum
  • x/accounts/go.sum is excluded by !**/*.sum
  • x/authz/go.sum is excluded by !**/*.sum
  • x/bank/go.sum is excluded by !**/*.sum
  • x/circuit/go.sum is excluded by !**/*.sum
  • x/consensus/go.sum is excluded by !**/*.sum
  • x/distribution/go.sum is excluded by !**/*.sum
  • x/epochs/go.sum is excluded by !**/*.sum
  • x/evidence/go.sum is excluded by !**/*.sum
  • x/feegrant/go.sum is excluded by !**/*.sum
  • x/gov/go.sum is excluded by !**/*.sum
  • x/group/go.sum is excluded by !**/*.sum
  • x/mint/go.sum is excluded by !**/*.sum
  • x/nft/go.sum is excluded by !**/*.sum
  • x/params/go.sum is excluded by !**/*.sum
  • x/protocolpool/go.sum is excluded by !**/*.sum
  • x/slashing/go.sum is excluded by !**/*.sum
  • x/staking/go.sum is excluded by !**/*.sum
  • x/upgrade/go.sum is excluded by !**/*.sum
📒 Files selected for processing (27)
  • client/v2/go.mod (1 hunks)
  • server/v2/cometbft/go.mod (1 hunks)
  • simapp/go.mod (1 hunks)
  • simapp/v2/go.mod (1 hunks)
  • tests/go.mod (1 hunks)
  • tools/benchmark/go.mod (1 hunks)
  • x/accounts/defaults/base/go.mod (1 hunks)
  • x/accounts/defaults/lockup/go.mod (1 hunks)
  • x/accounts/defaults/multisig/go.mod (1 hunks)
  • x/accounts/go.mod (1 hunks)
  • x/authz/go.mod (1 hunks)
  • x/bank/go.mod (1 hunks)
  • x/circuit/go.mod (1 hunks)
  • x/consensus/go.mod (1 hunks)
  • x/distribution/go.mod (1 hunks)
  • x/epochs/go.mod (1 hunks)
  • x/evidence/go.mod (1 hunks)
  • x/feegrant/go.mod (1 hunks)
  • x/gov/go.mod (1 hunks)
  • x/group/go.mod (1 hunks)
  • x/mint/go.mod (1 hunks)
  • x/nft/go.mod (1 hunks)
  • x/params/go.mod (1 hunks)
  • x/protocolpool/go.mod (1 hunks)
  • x/slashing/go.mod (1 hunks)
  • x/staking/go.mod (1 hunks)
  • x/upgrade/go.mod (1 hunks)
✅ Files skipped from review due to trivial changes (13)
  • x/accounts/go.mod
  • x/accounts/defaults/base/go.mod
  • x/params/go.mod
  • x/evidence/go.mod
  • tools/benchmark/go.mod
  • x/authz/go.mod
  • x/slashing/go.mod
  • x/circuit/go.mod
  • x/accounts/defaults/multisig/go.mod
  • simapp/go.mod
  • x/distribution/go.mod
  • x/feegrant/go.mod
  • x/nft/go.mod
🧰 Additional context used
📓 Path-based instructions (1)
tests/go.mod (1)

Pattern tests/**/*: "Assess the integration and e2e test code assessing sufficient code coverage for the changes associated in the pull request"

🔇 Additional comments (14)
x/mint/go.mod (1)

56-56: LGTM: Dependency upgrade aligns with PR objectives

The upgrade of github.com/cosmos/ledger-cosmos-go from v0.13.3 to v0.14.0 addresses the nano S Plus device firmware compatibility issue.

Let's verify the compatibility fix:

x/accounts/defaults/lockup/go.mod (1)

60-60: LGTM: Dependency upgrade is consistent with PR objective

The upgrade of github.com/cosmos/ledger-cosmos-go to v0.14.0 aligns with the PR's goal to fix nano S Plus device issues.

Let's verify the compatibility of this version:

✅ Verification successful

Dependency upgrade to ledger-cosmos-go v0.14.0 is safe to proceed

The upgrade is safe because:

  • Changes in v0.14.0 are mostly internal improvements (repo structure cleanup) and dependency updates
  • No breaking changes in the public API that would affect our usage
  • Our codebase uses the library only for device discovery through FindLedgerCosmosUserApp(), which remains unchanged
  • The upgrade is properly marked as indirect dependency
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the ledger-cosmos-go v0.14.0 release notes and changes
gh api repos/cosmos/ledger-cosmos-go/releases/tags/v0.14.0 --jq '.body'

Length of output: 426


Script:

#!/bin/bash
# Check the actual changes in the ledger-go dependency upgrade
gh api repos/cosmos/ledger-cosmos-go/compare/v0.13.3...v0.14.0 --jq '.files[].filename'

# Check if there are any breaking changes in the code
rg -l "ledger-cosmos-go" --type go

Length of output: 410


Script:

#!/bin/bash
# Check the actual usage of ledger-cosmos-go in the codebase
ast-grep --pattern 'import "$_github.com/cosmos/ledger-cosmos-go$_"' -f crypto/ledger/ledger_real.go

# Check the content of the file to understand the dependency usage
cat crypto/ledger/ledger_real.go

Length of output: 889

x/bank/go.mod (1)

56-56: LGTM: Consistent dependency upgrade

The upgrade of github.com/cosmos/ledger-cosmos-go to v0.14.0 matches the changes in other modules.

x/staking/go.mod (2)

56-56: LGTM: Dependency upgrade matches other modules

The upgrade of github.com/cosmos/ledger-cosmos-go to v0.14.0 is consistent across all modules.


56-56: Verify the upgrade impact across the codebase

Let's ensure there are no breaking changes or compatibility issues with this upgrade.

✅ Verification successful

Consistent upgrade of ledger-cosmos-go verified across the codebase

The verification shows:

  • All modules have been consistently upgraded to v0.14.0
  • The dependency is properly marked as indirect in all go.mod files
  • Only one direct usage found in crypto/ledger/ledger_real.go which is the expected integration point
  • System test modules still use v0.13.3 but they are test-only dependencies
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any potential breaking changes or compatibility issues

# Check all go.mod files for consistency in the upgrade
echo "Checking consistency of ledger-cosmos-go version across all go.mod files..."
rg -l "github.com/cosmos/ledger-cosmos-go" | xargs rg "github.com/cosmos/ledger-cosmos-go v0.14.0"

# Check for any direct usage of ledger-cosmos-go that might be affected
echo "Checking for direct usage of ledger-cosmos-go..."
rg -A 5 "ledger-cosmos-go"

Length of output: 50175

x/consensus/go.mod (1)

60-60: Verify ledger-cosmos-go v0.14.0 compatibility

The upgrade from v0.13.3 to v0.14.0 aligns with the PR objective to address nano S Plus device issues. Let's verify the version compatibility and changelog.

✅ Verification successful

Ledger dependency update is compatible

The upgrade from v0.13.3 to v0.14.0 of ledger-cosmos-go appears safe based on:

  1. The changelog shows only non-breaking changes (repo structure cleanup and dependency updates)
  2. The library is used only in crypto/ledger/ledger_real.go with a simple interface for device discovery
  3. The update aligns with the PR's goal to address Nano S Plus device issues
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check the changelog and compatibility of ledger-cosmos-go v0.14.0

# Get the changelog or release notes
gh api repos/cosmos/ledger-cosmos-go/releases/tags/v0.14.0 --jq .body

# Check if there are any breaking changes by examining commit messages
gh api repos/cosmos/ledger-cosmos-go/commits --query ref=v0.14.0 --jq '.[].commit.message'

Length of output: 1885


Script:

#!/bin/bash
# Let's try a different approach to check for breaking changes and compatibility

# Check go.mod files for any other dependencies on ledger-cosmos-go
rg "github.com/cosmos/ledger-cosmos-go" --type go-mod -A 1 -B 1

# Check for any direct usage of ledger-cosmos-go in the codebase
rg "github.com/cosmos/ledger-cosmos-go" --type go -A 2 -B 2

# Check if there are any other Ledger-related dependencies that might need coordination
rg "ledger" --type go-mod

Length of output: 414


Script:

#!/bin/bash
# Let's examine the actual usage and check the go.mod files directly

# Check the content of go.mod files
fd -e mod -x cat {}

# Check the actual Ledger implementation to understand the usage
cat crypto/ledger/ledger_real.go

Length of output: 96833


Script:

#!/bin/bash
# Let's check the actual Ledger implementation file content
cat crypto/ledger/ledger_real.go

# And check for any direct dependencies on ledger-cosmos-go
rg -l "github.com/cosmos/ledger-cosmos-go"

Length of output: 1934

x/epochs/go.mod (1)

56-56: LGTM: Consistent dependency update

The update to ledger-cosmos-go v0.14.0 is consistent with the changes in other modules.

x/protocolpool/go.mod (1)

62-62: Verify ledger-go dependency compatibility

The update to ledger-cosmos-go v0.14.0 is consistent. Let's verify the compatibility with the related ledger-go dependency.

✅ Verification successful

Ledger dependency update is compatible

The update of ledger-cosmos-go to v0.14.0 is compatible with the current ecosystem as all modules consistently use:

  • github.com/cosmos/ledger-cosmos-go v0.14.0
  • github.com/zondax/ledger-go v0.14.3
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check the compatibility between ledger-cosmos-go and ledger-go

# Get the go.mod content of ledger-cosmos-go v0.14.0 to check ledger-go version
gh api repos/cosmos/ledger-cosmos-go/contents/go.mod --ref v0.14.0 | jq -r '.content' | base64 -d | grep "github.com/zondax/ledger-go"

Length of output: 1593


Script:

#!/bin/bash
# Let's try a different approach to check dependencies
# First, let's check our current go.mod files for ledger-go dependencies
rg "github.com/zondax/ledger-go" --type go

# Also check for any ledger-related dependencies in our go.mod files
rg "ledger" --type mod

Length of output: 93


Script:

#!/bin/bash
# Let's find all go.mod files and check their content for ledger dependencies
fd 'go.mod$' --exec cat {} \; | grep -A 1 -B 1 "ledger"

Length of output: 10930

client/v2/go.mod (1)

70-70: Verify compatibility with related Ledger dependencies

The upgrade of ledger-cosmos-go to v0.14.0 looks good and aligns with the PR objective to fix nano S Plus device issues. Let's verify compatibility with other Ledger-related dependencies.

✅ Verification successful

Based on the search results, I can see that:

  1. The ledger-cosmos-go v0.14.0 is consistently used across all main modules in the codebase
  2. It's paired with zondax/ledger-go v0.14.3 in all modules where it's used
  3. Only some test and tool modules (hubl, systemtests, confix, cosmovisor) are using an older version v0.13.3 of ledger-cosmos-go, but these are not part of the main application dependencies

Ledger dependencies are properly aligned

The upgrade of ledger-cosmos-go to v0.14.0 in client/v2/go.mod is compatible with the rest of the codebase as the same version is used consistently across all main application modules. The companion dependency zondax/ledger-go v0.14.3 is also consistently used throughout the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check compatibility with other Ledger-related dependencies
# Verify the versions of related Ledger packages to ensure compatibility

# Search for all Ledger-related dependencies and their versions
rg "github.com/(cosmos/ledger-cosmos-go|zondax/ledger-go)" -A 1

Length of output: 33485

x/gov/go.mod (1)

64-64: LGTM: Consistent with module-wide upgrade

The upgrade to ledger-cosmos-go v0.14.0 is consistent with the changes in other modules.

server/v2/cometbft/go.mod (1)

77-77: LGTM: Version upgrade is consistent with PR objectives

The upgrade of github.com/cosmos/ledger-cosmos-go to v0.14.0 aligns with the PR's goal to address nano S Plus device issues.

Let's verify the version consistency across related dependencies:

✅ Verification successful

Based on the analysis of the go.mod files, I can verify that:

  1. The ledger-cosmos-go v0.14.0 is consistently declared across multiple modules
  2. The ledger-go v0.14.3 is consistently declared as an indirect dependency
  3. These versions are compatible with each other

Version upgrade is consistent and compatible

The upgrade of ledger-cosmos-go to v0.14.0 is consistently reflected across the codebase, and it's properly paired with the compatible ledger-go v0.14.3 dependency. This version combination is maintained across all relevant modules.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check version consistency of ledger-related packages
# Look for any potential version mismatches or conflicts

rg "github.com/cosmos/ledger-cosmos-go v0\.14\.0" --type go
rg "github.com/zondax/ledger-go v0\.14\." --type go

Length of output: 115


Script:

#!/bin/bash
# Let's try a different approach to check the go.mod files
# First, find all go.mod files
fd "go.mod$" --type f --exec cat {}

Length of output: 89054

x/upgrade/go.mod (1)

79-79: LGTM: Version upgrade is consistent

The upgrade to github.com/cosmos/ledger-cosmos-go v0.14.0 is consistent with other modules.

tests/go.mod (1)

111-111: LGTM: Version upgrade is consistent and test environment is properly configured

The upgrade to github.com/cosmos/ledger-cosmos-go v0.14.0 is consistent with other modules, and the test environment's replace directives are properly maintained.

Let's verify the test coverage for ledger-related functionality:

✅ Verification successful

LGTM: Ledger package upgrade is well covered by tests

The codebase has comprehensive test coverage for ledger functionality:

  • Multiple ledger-specific test files in crypto/ledger/ and crypto/keyring/
  • Dedicated test cases for ledger operations in client/keys/
  • Both mock and real device testing configurations are available

The version upgrade to ledger-cosmos-go v0.14.0 is safe to proceed with, as any compatibility issues would be caught by the existing test suite.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for ledger-related tests
# Look for test files that might need verification with the new version

rg -t go "func.*Test.*Ledger" tests/

Length of output: 38


Script:

#!/bin/bash
# Let's try a broader search for ledger-related tests across the repository
rg -g '*.go' -i "ledger.*test|test.*ledger" .

# Also search for ledger imports in test files
rg -g '*_test.go' "ledger-cosmos-go"

# Check if there are any test files that import the ledger package
rg --type go "github.com/cosmos/ledger-cosmos-go" .

Length of output: 1987

simapp/v2/go.mod (1)

107-107: LGTM! Verify ledger dependency compatibility.

The upgrade of ledger-cosmos-go to v0.14.0 addresses the nano S Plus device firmware issue.

Let's verify compatibility with other ledger-related dependencies:

✅ Verification successful

Based on the search results, I can now generate the final response since I have sufficient information about the ledger-related dependencies across the codebase:

Verified: Ledger dependencies are consistently updated

The upgrade of ledger-cosmos-go to v0.14.0 is consistently applied across all modules in the codebase, with only a few tool-specific modules (confix, cosmovisor, hubl, systemtests) still using v0.13.3, which is acceptable since they are development tools not affecting runtime behavior.

Key observations:

  • All runtime modules use ledger-cosmos-go v0.14.0
  • Compatible with zondax/ledger-go v0.14.3 and zondax/hid v0.9.2 across all modules
  • Tool-specific modules using older version don't impact the nano S Plus device fix
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check versions of related ledger dependencies
# Expected: Ensure all ledger-related dependencies are compatible

# Search for all ledger-related dependencies and their versions
echo "Checking ledger-related dependencies..."
rg "github.com/(cosmos|zondax)/(ledger|hid)" -A 1

Length of output: 42342

@@ -65,7 +65,7 @@ require (
github.com/cosmos/gogogateway v1.2.0 // indirect
github.com/cosmos/iavl v1.3.4 // indirect
github.com/cosmos/ics23/go v0.11.0 // indirect
github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect
github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Codebase verification

Inconsistent ledger-cosmos-go versions detected across modules

Several tools and test modules are still using v0.13.3 while others have been upgraded to v0.14.0. Found old version in:

  • tools/cosmovisor/go.mod
  • tools/hubl/go.mod
  • tools/confix/go.mod
  • systemtests/go.mod
  • tests/systemtests/go.mod

This inconsistency could lead to compatibility issues when using Ledger devices across different parts of the codebase.

🔗 Analysis chain

LGTM: Consistent upgrade pattern

The upgrade to ledger-cosmos-go v0.14.0 maintains consistency across all modules. Since this is a significant dependency upgrade affecting Ledger device support, it would be good to verify the changes in a test environment.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the consistency of ledger-cosmos-go version across all modules
# This helps ensure no module was missed in the upgrade

# Search for any remaining old versions of ledger-cosmos-go
rg "github.com/cosmos/ledger-cosmos-go v0.13.3"

# List all occurrences of ledger-cosmos-go to verify consistent versioning
rg "github.com/cosmos/ledger-cosmos-go v0.14.0"

Length of output: 10053

@julienrbrt julienrbrt added this pull request to the merge queue Dec 19, 2024
Merged via the queue into cosmos:main with commit 448b33d Dec 19, 2024
72 of 76 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants