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

chore: fix and execute mod tidy #2138

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

dezzeus
Copy link
Contributor

@dezzeus dezzeus commented Nov 8, 2024

make tidy was broken on the following sub-modules:

  • examples/berad
  • node-core
  • state-transition
  • storage

This commit fixes the executability of go mod tidy and provides the updated files.

Please, make at least a review of whether the dependency versions are fine as I saw multiple issues (e.g. http://github.com/cosmos/cosmos-sdk with a non-existent v0.53.0 version; although replaced with an old beta release).

Summary by CodeRabbit

  • New Features

    • Updated dependencies across multiple modules to ensure compatibility with the latest versions of libraries, enhancing overall functionality.
    • Added several new dependencies to support additional features, including cosmossdk.io/core/testing and github.com/berachain/beacon-kit/mod/observability.
  • Bug Fixes

    • Resolved issues by updating existing dependencies to their latest versions, improving stability and performance.
  • Documentation

    • Enhanced the structure of the go.mod files for better clarity and management of dependencies.

Copy link
Contributor

coderabbitai bot commented Nov 8, 2024

Walkthrough

The pull request includes updates to multiple go.mod files across various modules within the beacon-kit project. These updates primarily focus on dependency management, with several dependencies being added or updated to specific versions. The changes ensure compatibility with the latest features of the cosmos-sdk and related libraries. The overall structure of the go.mod files has been maintained while reflecting these updates.

Changes

File Path Change Summary
beacond/go.mod Updated multiple dependencies related to github.com/berachain/beacon-kit/mod/cli, consensus, node-api, and config to new versions. Added indirect requirement for observability.
examples/berad/go.mod Updated cosmossdk.io/core from v1.0.0 to v1.0.0-alpha.3. Added dependencies for primitives and storage. Updated cosmos-sdk to v0.53.0.
mod/cli/go.mod Updated dependencies for config, consensus, and node-api to new versions. Updated replace directives for cosmossdk.io packages.
mod/consensus/go.mod Updated github.com/berachain/cosmos-sdk to v0.46.0-beta2.0.20240808182639-7bdbf06a94f2. Updated cli dependency to a recent version.
mod/node-api/engines/go.mod Added new direct dependency on primitives. Removed indirect dependency on primitives.
mod/node-core/go.mod Updated dependencies for cli, config, consensus, node-api, and observability to new versions. Added indirect dependency for cosmossdk.io/core/testing.
mod/primitives/go.mod Added new direct dependency on cometbft. Updated golang.org/x/crypto and other indirect dependencies to newer versions.
mod/state-transition/go.mod Added new replace directives for various cosmossdk.io packages. Updated require section with new dependencies and versions.
mod/storage/go.mod Added multiple new dependencies including node-core, observability, and others. Updated golang.org/x/crypto and golang.org/x/net to newer versions.

Possibly related issues

  • Observability module import tree broken #2133: The changes in this PR address the issue of the observability module import tree being broken, as they resolve the versioning problem with github.com/berachain/beacon-kit/mod/observability.

Possibly related PRs

Suggested labels

Ready for Review, Merge me daddy

Suggested reviewers

  • itsdevbear
  • ocnc
  • abi87

Poem

🐇 In the meadow where code does play,
Dependencies dance in a bright array.
With each update, our modules sing,
Compatibility blooms, oh what joy you bring!
So hop along, let’s merge with glee,
For a brighter future, just wait and see! 🌼


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.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • 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/schema.v2.json

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.

Copy link

codecov bot commented Nov 8, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 40.42%. Comparing base (7905e3d) to head (99ac435).

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##             main    #2138       +/-   ##
===========================================
+ Coverage   26.24%   40.42%   +14.17%     
===========================================
  Files         360        4      -356     
  Lines       16241       47    -16194     
  Branches       12       12               
===========================================
- Hits         4263       19     -4244     
+ Misses      11709       28    -11681     
+ Partials      269        0      -269     

see 356 files with indirect coverage changes

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: 8

🧹 Outside diff range comments (5)
mod/node-api/engines/go.mod (1)

Line range hint 3-3: Fix invalid Go version specification

The Go version 1.23.0 is invalid. Go versions should only use two numbers (e.g., 1.23). This will cause build issues.

Apply this fix:

-go 1.23.0
+go 1.23
mod/primitives/go.mod (1)

Line range hint 3-3: Invalid Go version specified

The Go version 1.23.0 does not exist. The latest stable version of Go is 1.22.0.

Apply this diff to fix the version:

-go 1.23.0
+go 1.22.0
examples/berad/go.mod (1)

Line range hint 11-20: Consider using semantic versioning for beacon-kit modules

Currently, all beacon-kit module dependencies are pinned to specific commit hashes:

  • mod/chain-spec: 20240801155659-1e73a37dd428
  • mod/consensus-types: 20240808171039-610759181f0a
  • mod/engine-primitives: 20240808171039-610759181f0a

Consider adopting semantic versioning for better dependency management and upgrade path clarity.

mod/node-core/go.mod (1)

Line range hint 19-19: Remove duplicate replace directive with typo

There's a duplicate replace directive for the cli module with a typo in the module path (ithub.com instead of github.com). This should be removed as it's redundant and incorrect.

Apply this diff to fix the issue:

-	ithub.com/berachain/beacon-kit/mod/cli => ../cli
mod/storage/go.mod (1)

Line range hint 1-3: Fix invalid Go version

The specified Go version 1.23.0 is invalid. Go versions only use two components (e.g., 1.22) and version 1.23 doesn't exist yet. The latest stable version as of April 2024 is 1.22.

Apply this diff to fix the version:

-go 1.23.0
+go 1.22
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE

📥 Commits

Reviewing files that changed from the base of the PR and between 7905e3d and 99ac435.

⛔ Files ignored due to path filters (4)
  • mod/node-api/engines/go.sum is excluded by !**/*.sum
  • mod/primitives/go.sum is excluded by !**/*.sum
  • mod/state-transition/go.sum is excluded by !**/*.sum
  • mod/storage/go.sum is excluded by !**/*.sum
📒 Files selected for processing (9)
  • beacond/go.mod (2 hunks)
  • examples/berad/go.mod (1 hunks)
  • mod/cli/go.mod (2 hunks)
  • mod/consensus/go.mod (1 hunks)
  • mod/node-api/engines/go.mod (1 hunks)
  • mod/node-core/go.mod (2 hunks)
  • mod/primitives/go.mod (1 hunks)
  • mod/state-transition/go.mod (2 hunks)
  • mod/storage/go.mod (4 hunks)
🧰 Additional context used
📓 Learnings (1)
mod/storage/go.mod (1)
Learnt from: abi87
PR: berachain/beacon-kit#2065
File: mod/state-transition/go.mod:5-8
Timestamp: 2024-10-16T07:46:45.425Z
Learning: In the `beacon-kit` project, the storage module exists at `../storage`, and the `go.mod` file intentionally includes a local path replacement to `../storage`.
🔇 Additional comments (14)
mod/primitives/go.mod (1)

24-44: LGTM: Indirect dependency updates look appropriate

The indirect dependency updates appear to be the result of running go mod tidy and include standard packages with reasonable version constraints. The changes align with the PR objectives.

examples/berad/go.mod (3)

Line range hint 82-87: Fix incorrect cosmos-sdk version

According to the PR objectives, version v0.53.0 of cosmos-sdk was identified as non-existent. This needs to be corrected to use a valid version.

#!/bin/bash
# Verify the existence of cosmos-sdk v0.53.0 and list available versions

echo "Checking if cosmos-sdk v0.53.0 exists:"
gh api repos/cosmos/cosmos-sdk/git/refs/tags/v0.53.0 2>/dev/null || echo "Version does not exist"

echo -e "\nLatest available cosmos-sdk versions:"
gh api repos/cosmos/cosmos-sdk/tags --paginate | jq -r '.[].name' | head -n 5

Line range hint 22-80: Verify compatibility between indirect dependencies

There's a mix of stable and pre-release versions in indirect dependencies. Some notable examples:

  • ethereum/go-ethereum v1.14.7
  • cometbft v1.0.0-rc1
  • Several dependencies using commit hashes

Please ensure all these versions are compatible with each other.

#!/bin/bash
# Check for any reported compatibility issues in go.sum

echo "Checking for any compatibility warnings in go.sum:"
go mod verify 2>&1 || true

Also applies to: 89-156


Line range hint 5-9: Verify the stability of replaced dependencies

The replace directives are using pre-release versions:

  • cosmos-sdk is replaced with a beta version (v0.46.0-beta2)
  • cosmossdk.io/core is using a specific commit hash

While this aligns with the PR objectives, please ensure these versions are stable enough for production use.

✅ Verification successful

Dependency versions are consistent across the codebase

The verification shows that:

  • All modules consistently use the same berachain/cosmos-sdk version v0.46.0-beta2.0.20240808182639-7bdbf06a94f2
  • All modules use the same cosmossdk.io/core commit version v0.0.0-20240806152830-8fb47b368cd4
  • The replace directives are consistently applied across all go.mod files in the project

The pre-release versions are intentionally used and synchronized across all modules, indicating a coordinated update rather than an isolated change.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify if the replaced versions are the latest available and if there are any newer stable releases

# Check cosmos-sdk fork's latest tags
echo "Checking berachain/cosmos-sdk latest tags:"
gh api repos/berachain/cosmos-sdk/tags --paginate | jq -r '.[].name' | head -n 5

# Check cosmossdk.io/core latest tags
echo -e "\nChecking cosmossdk.io/core latest tags:"
gh api repos/cosmos/cosmos-sdk/tags --paginate | jq -r '.[].name' | grep "core" | head -n 5

Length of output: 642


Script:

#!/bin/bash
# Let's try a different approach to verify the dependency versions

# Check if the specific commit exists in berachain/cosmos-sdk
echo "Checking berachain/cosmos-sdk commit:"
gh api repos/berachain/cosmos-sdk/commits/7bdbf06a94f2 --silent || echo "Commit not found"

# Check if the specific commit exists in cosmos/cosmos-sdk for core
echo -e "\nChecking cosmossdk.io/core commit:"
gh api repos/cosmos/cosmos-sdk/commits/8fb47b368cd4 --silent || echo "Commit not found"

# Look for any go.mod files that might have similar dependencies
echo -e "\nChecking other go.mod files with similar dependencies:"
fd -e mod -x grep -l "github.com/berachain/cosmos-sdk" {}

Length of output: 638


Script:

#!/bin/bash
# Let's check the cosmos-sdk dependency versions in other go.mod files to verify consistency

echo "Checking cosmos-sdk versions across go.mod files:"
for file in ./mod/node-core/go.mod ./mod/consensus/go.mod ./mod/storage/go.mod ./mod/state-transition/go.mod ./beacond/go.mod ./mod/cli/go.mod; do
    echo -e "\n=== $file ==="
    grep -A 2 "github.com/berachain/cosmos-sdk" "$file" || echo "No direct reference found"
    grep -A 2 "replace.*cosmos-sdk" "$file" || echo "No replace directive found"
done

# Also check for cosmossdk.io/core versions
echo -e "\nChecking cosmossdk.io/core versions:"
for file in ./mod/node-core/go.mod ./mod/consensus/go.mod ./mod/storage/go.mod ./mod/state-transition/go.mod ./beacond/go.mod ./mod/cli/go.mod; do
    echo -e "\n=== $file ==="
    grep -A 2 "cosmossdk.io/core" "$file" || echo "No reference found"
done

Length of output: 8030

mod/consensus/go.mod (2)

21-21: LGTM: Version update for mod/cli dependency

The update to github.com/berachain/beacon-kit/mod/cli v0.0.0-20241107170417-7905e3d59a1d aligns with the PR objectives to fix go mod tidy issues.


Line range hint 31-31: Verify cosmos-sdk version compatibility

The PR objectives mention an issue with a non-existent version v0.53.0 of cosmos-sdk. While this version is listed as an indirect dependency, it's being overridden by the replace directive to use github.com/berachain/cosmos-sdk v0.46.0-beta2.0.20240808182639-7bdbf06a94f2. Please verify this is the intended version.

mod/node-core/go.mod (2)

Line range hint 45-45: LGTM: cosmos-sdk version issue properly addressed

The non-existent cosmos-sdk v0.53.0 is correctly overridden by the replace directive pointing to a specific beta version v0.46.0-beta2.0.20240808182639-7bdbf06a94f2.

Also applies to: 16-16


36-36: Verify unpublished version of observability module

The observability module is using an unpublished version (v0.0.0-unpublished) while other beacon-kit modules are using specific commits. This could lead to reproducibility issues.

Let's check if this is consistent across other modules:

mod/storage/go.mod (3)

5-11: LGTM! Replace directives are properly configured

The replace directives correctly:

  • Point to specific cosmos-sdk versions, addressing the version issues mentioned in PR objectives
  • Use local paths for internal modules, which is the intended setup as per project standards

224-228: Verify security-related package versions

The security-related packages have been updated, which is good practice. However, please verify these are the latest stable versions to ensure all security patches are included:

  • golang.org/x/crypto v0.28.0
  • golang.org/x/net v0.30.0
  • golang.org/x/sys v0.26.0
  • golang.org/x/text v0.19.0

Let's check for the latest versions:

#!/bin/bash
# Description: Check latest versions of security-related packages
# Test: Compare current versions with latest tags
for pkg in "golang.org/x/crypto" "golang.org/x/net" "golang.org/x/sys" "golang.org/x/text"; do
  echo "Checking $pkg..."
  gh api repos/${pkg#golang.org/}/tags --jq '.[0].name'
done

24-24: ⚠️ Potential issue

Update cosmos-sdk version

The PR objectives mention that v0.53.0 of cosmos-sdk is a non-existent version that needs to be replaced with a beta release. This version is still present in the require section.

Let's verify if this version is actually being used or if it's overridden by the replace directive:

✅ Verification successful

This will help us see if there are any replace directives that might be overriding the cosmos-sdk version and check all go.mod files in the repository.


Looking at the go.mod files, I can see that while github.com/cosmos/cosmos-sdk v0.53.0 appears in the require section of some modules, there are replace directives in several modules that override this with a beta version:

replace github.com/cosmos/cosmos-sdk => github.com/berachain/cosmos-sdk v0.46.0-beta2.0.20240808182639-7bdbf06a94f2

This means that even though v0.53.0 is listed as a requirement, it's actually being replaced with a beta version from berachain's fork. Let me verify this by checking if this replace directive is consistently applied across the codebase.


The cosmos-sdk v0.53.0 requirement is properly overridden

The v0.53.0 version appears in several go.mod files, but in all cases it is properly overridden by a replace directive that points to the correct beta version:

replace github.com/cosmos/cosmos-sdk => github.com/berachain/cosmos-sdk v0.46.0-beta2.0.20240808182639-7bdbf06a94f2

This replace directive ensures that the non-existent v0.53.0 version is never actually used, and instead the beta version from berachain's fork is used consistently across all modules. This is the intended behavior mentioned in the PR objectives.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if cosmos-sdk v0.53.0 is effectively replaced
# Test: Look for the actual version being used
rg -l "github.com/cosmos/cosmos-sdk.*v0\.53\.0" 

Length of output: 1411


Script:

#!/bin/bash
# Check both require and replace directives in go.mod files
find . -name "go.mod" -exec sh -c 'echo "=== {} ==="; cat {}' \;

Length of output: 165857


Script:

#!/bin/bash
# Check for any go.mod files that require cosmos-sdk but don't have the replace directive
find . -name "go.mod" -exec sh -c '
  echo "=== {} ==="
  if grep -q "github.com/cosmos/cosmos-sdk v0.53.0" "{}"; then
    if ! grep -q "replace.*github.com/cosmos/cosmos-sdk.*berachain/cosmos-sdk" "{}"; then
      echo "MISSING REPLACE DIRECTIVE"
      cat "{}"
    else
      echo "Has replace directive"
    fi
  else
    echo "Does not require cosmos-sdk v0.53.0"
  fi
' \;

Length of output: 89100

mod/state-transition/go.mod (2)

5-13: LGTM: Replace directives are properly configured

The replace directives correctly:

  • Address the cosmos-sdk versioning issue mentioned in PR objectives
  • Use relative paths for local module replacements

35-162: LGTM: Indirect dependencies are well-defined

The indirect dependencies are properly specified with pinned versions, which is good practice for reproducible builds.

Also applies to: 163-234

mod/cli/go.mod (1)

26-27: LGTM! Consistent version updates across dependencies.

The dependencies have been updated to use the same version, maintaining consistency across the module.

@@ -6,13 +6,13 @@ require (
github.com/berachain/beacon-kit/mod/errors v0.0.0-20240705193247-d464364483df
github.com/berachain/beacon-kit/mod/log v0.0.0-20240705193247-d464364483df
github.com/berachain/beacon-kit/mod/node-api v0.0.0-20240806160829-cde2d1347e7e
github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240911165923-82f71ec86570
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 primitives module version in mod/beacon/go.mod

The version check reveals an inconsistency - all modules except mod/beacon/go.mod are using version v0.0.0-20240911165923-82f71ec86570, while mod/beacon/go.mod is using an older version v0.0.0-20240820191615-398849c34954. This should be updated for consistency.

🔗 Analysis chain

Dependency change looks good, verify version compatibility

The transition of github.com/berachain/beacon-kit/mod/primitives from indirect to direct dependency is appropriate. However, let's verify the pseudo-version is the latest available.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the primitives module version across the repository
# Expected: Consistent version usage or newer versions available

# Check for any other usage of the primitives module
rg -g 'go.mod' "github.com/berachain/beacon-kit/mod/primitives" 

# Check git history for the specific commit
gh api repos/berachain/beacon-kit/commits/82f71ec86570 --jq '.commit.message'

Length of output: 2272

@@ -5,35 +5,43 @@ go 1.23.0
require (
github.com/berachain/beacon-kit/mod/chain-spec v0.0.0-20240703145037-b5612ab256db
github.com/berachain/beacon-kit/mod/errors v0.0.0-20240610210054-bfdc14c4013c
github.com/cometbft/cometbft v0.38.15
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

Based on the search results, I can now generate the final response since I have enough information about CometBFT usage across the codebase:

Version mismatch detected in CometBFT dependencies

There is an inconsistency in CometBFT versions across modules:

  • mod/primitives: v0.38.15
  • Other modules (storage, state-transition, node-core, consensus, etc.): v1.0.0-rc1.0.20240806094948-2c4293ef36c4

This version discrepancy could lead to compatibility issues. The primitives module should align with the version used in other modules to ensure consistent behavior across the codebase.

🔗 Analysis chain

Verify CometBFT version compatibility

The addition of CometBFT v0.38.15 as a direct dependency is a significant change. Please ensure this version is compatible with other Cosmos ecosystem dependencies in the project.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for potential version conflicts with CometBFT in other modules
# and verify if this version is used consistently across the project

# Search for CometBFT usage in other go.mod files
fd -e mod -x grep -l "github.com/cometbft/cometbft"

# Search for version constraints or references
rg "github.com/cometbft/cometbft" -A 3

Length of output: 28443

@@ -50,6 +50,7 @@ require (

require (
cosmossdk.io/api v0.7.5 // indirect
cosmossdk.io/core/testing v0.0.0-unpublished // indirect
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Consider using a specific version for core/testing dependency

The indirect dependency cosmossdk.io/core/testing is using an unpublished version. While this is handled by the replace directive, using a specific version would improve reproducibility.

@@ -2,23 +2,171 @@ module github.com/berachain/beacon-kit/mod/state-transition

go 1.23.0
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Invalid Go version specified

The Go version 1.23.0 does not exist. The latest stable version is 1.22.0. This will prevent the module from being built.

-go 1.23.0
+go 1.22.0
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
go 1.23.0
go 1.22.0

github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240911165923-82f71ec86570
github.com/berachain/beacon-kit/mod/storage v0.0.0-20240822205119-6d7f90fac7d7
github.com/cosmos/cosmos-db v1.0.2
github.com/cosmos/cosmos-sdk v0.53.0
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Update cosmos-sdk version for clarity

While the replace directive correctly overrides this, the version should be updated to match the replaced version for better clarity and to avoid confusion.

-	github.com/cosmos/cosmos-sdk v0.53.0
+	github.com/cosmos/cosmos-sdk v0.46.0-beta2
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
github.com/cosmos/cosmos-sdk v0.53.0
github.com/cosmos/cosmos-sdk v0.46.0-beta2

github.com/berachain/beacon-kit/mod/node-api/engines v0.0.0-20240806160829-cde2d1347e7e // indirect
github.com/berachain/beacon-kit/mod/observability v0.0.0-00010101000000-000000000000 // indirect
github.com/berachain/beacon-kit/mod/observability v0.0.0-unpublished // 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

🛠️ Refactor suggestion

Multiple modules are using unpublished dependencies

The verification reveals a systematic pattern where the observability module is referenced as v0.0.0-unpublished across multiple modules:

  • mod/state-transition/go.mod
  • mod/node-core/go.mod
  • mod/storage/go.mod
  • mod/cli/go.mod
  • beacond/go.mod

Additionally, cosmossdk.io/core/testing is also using an unpublished version in node-core/go.mod.

This confirms that proper versioning is needed not just for the CLI module but across the entire project to ensure reproducible builds.

🔗 Analysis chain

Consider publishing a proper version for the observability module.

The dependency is currently marked as v0.0.0-unpublished. While this is better than the previous invalid version, consider properly versioning and publishing this module to ensure reproducible builds.

Let's check if other modules also use unpublished versions:

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for other unpublished versions in go.mod files
# Expected: No other unpublished versions should be found

# Search for unpublished versions in go.mod files
fd --type f --glob 'go.mod' --exec rg -l 'unpublished'

Length of output: 160


Script:

#!/bin/bash
# Let's check the actual unpublished versions in these go.mod files
for file in ./mod/state-transition/go.mod ./mod/node-core/go.mod ./mod/storage/go.mod ./mod/cli/go.mod ./beacond/go.mod; do
    echo "=== $file ==="
    rg "unpublished" "$file" -A 1 -B 1
done

Length of output: 2641

github.com/berachain/beacon-kit/mod/errors v0.0.0-20240806211103-d1105603bfc0 // indirect
github.com/berachain/beacon-kit/mod/geth-primitives v0.0.0-20240806160829-cde2d1347e7e // indirect
github.com/berachain/beacon-kit/mod/observability v0.0.0-unpublished // indirect
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix the invalid version for observability module.

The version v0.0.0-unpublished is not a valid Go module version. This will cause issues with go mod tidy and dependency resolution.

Please update to a proper version that matches other beacon-kit modules:

-	github.com/berachain/beacon-kit/mod/observability v0.0.0-unpublished // indirect
+	github.com/berachain/beacon-kit/mod/observability v0.0.0-20241107170417-7905e3d59a1d // indirect
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
github.com/berachain/beacon-kit/mod/observability v0.0.0-unpublished // indirect
github.com/berachain/beacon-kit/mod/observability v0.0.0-20241107170417-7905e3d59a1d // indirect

Comment on lines +30 to +31
github.com/berachain/beacon-kit/mod/cli v0.0.0-20241107170417-7905e3d59a1d
github.com/berachain/beacon-kit/mod/consensus v0.0.0-20241107170417-7905e3d59a1d
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 beacon-kit module versions detected

Several beacon-kit modules are using different versions:

  • v0.0.0-20241107170417-7905e3d59a1d (cli, config, consensus, node-api)
  • v0.0.0-20240911165923-82f71ec86570 (primitives)
  • v0.0.0-20240904192942-99aeabe6bb1f (consensus-types)
  • v0.0.0-20240821213929-f32b8e2dc5c8 (async)
  • v0.0.0-20240821052951-c15422305b4e (beacon)
  • v0.0.0-20240820191615-398849c34954 (da, execution)
  • v0.0.0-20240809202957-3e3f169ad720 (engine-primitives)
  • v0.0.0-20240806160829-cde2d1347e7e (geth-primitives, node-api/engines)
  • v0.0.0-20240705193247-d464364483df (chain-spec, payload)

Please update all beacon-kit modules to use consistent versions to avoid potential compatibility issues.

🔗 Analysis chain

Verify version consistency across beacon-kit modules.

Several beacon-kit modules are being updated to v0.0.0-20241107170417-7905e3d59a1d. Let's verify that all beacon-kit module versions are consistent.

Also applies to: 37-37, 76-76

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for inconsistent versions of beacon-kit modules
# Expected: All beacon-kit modules should use the same version

echo "Checking beacon-kit module versions..."
rg "github.com/berachain/beacon-kit/mod/.+ v\d+\.\d+\.\d+-\d+" | sort -u

Length of output: 72115

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant