Skip to content

build(deps): use tagged versions #180

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

Merged
merged 12 commits into from
Jul 10, 2025
Merged

Conversation

julienrbrt
Copy link
Member

@julienrbrt julienrbrt commented Jul 8, 2025

Overview

Summary by CodeRabbit

  • Chores
    • Upgraded core and indirect dependencies to newer versions, including a beta release for Rollkit modules.
    • Removed unused dependencies and added new supporting libraries for improved stability and maintenance.
    • Updated CI workflows to use fixed Rollkit and Ignite CLI versions, installing local DA binaries directly for more stable and efficient testing.
  • Refactor
    • Cleaned up internal code by removing an obsolete method to streamline execution handling.
  • Tests
    • Updated test suites to use standardized external mock implementations for improved consistency and maintainability.

@julienrbrt julienrbrt requested a review from a team as a code owner July 8, 2025 20:29
Copy link
Contributor

coderabbitai bot commented Jul 8, 2025

Walkthrough

This change updates the go.mod file to upgrade the github.com/rollkit/rollkit module and its submodules from a commit-specific pseudo-version to the formal beta release v1.0.0-beta.1. It also refreshes multiple indirect dependencies, removes unused ones, and adds a new indirect dependency. Additionally, it removes the GetExecutionMode method from the Adapter type in pkg/adapter/adapter.go. The test code across several files replaces a locally defined MockRollkitStore with the imported rollkitmocks.MockStore from the external rollkit package. The CI workflows are updated to use fixed Rollkit and Ignite CLI versions instead of dynamically fetching the latest main branch or using versions from go.mod.

Changes

File(s) Change Summary
go.mod Upgraded rollkit modules to v1.0.0-beta.1, updated several indirect dependencies, removed unused dependencies, and added github.com/go-viper/mapstructure/v2 v2.3.0 as a new indirect dependency.
pkg/adapter/adapter.go Removed extraneous blank line and deleted the GetExecutionMode method from the Adapter type.
pkg/rpc/core/blocks_test.go Replaced local MockRollkitStore with imported rollkitmocks.MockStore for mock store usage; minor variable declaration style update.
pkg/rpc/core/consensus_test.go Replaced local MockRollkitStore with imported rollkitmocks.MockStore in test helper functions; added import for mocks package.
pkg/rpc/core/mocks_test.go Removed local MockRollkitStore type and methods; replaced with imported rollkitmocks.MockStore; updated interface assertions.
pkg/rpc/core/status_test.go Replaced local MockRollkitStore with imported rollkitmocks.MockStore in all test cases; added import for mocks package.
pkg/rpc/core/tx_test.go Replaced local MockRollkitStore with imported rollkitmocks.MockStore in test functions.
.github/workflows/integration_test.yml Changed workflow to use fixed ROLLKIT_VERSION environment variable v1.0.0-beta.1 and fixed IGNITE_VERSION instead of dynamically fetching latest main branch; replaced Rollkit local DA clone-and-run with go install and run binary; minor whitespace cleanup.
.github/workflows/migration_test.yml Updated workflow to use fixed ROLLKIT_VERSION environment variable v1.0.0-beta.1 and fixed IGNITE_VERSION; replaced Rollkit local DA clone-and-run with go install and run binary; added process ID capture and delay after start.
.github/workflows/lint.yml Changed Go setup step to explicitly use Go version "stable" instead of reading from go.mod.
.github/workflows/test.yml Changed Go setup steps in go_mod_tidy_check and unit_test jobs to explicitly use Go version "stable" instead of reading from go.mod.

Sequence Diagram(s)

sequenceDiagram
    participant Caller
    participant Adapter

    Caller->>Adapter: Call GetExecutionMode()
    Note right of Adapter: Method removed, no longer available
    Caller-->>Caller: Handle absence or use alternative logic
Loading

Possibly related PRs

Suggested reviewers

  • tac0turtle

Poem

A hop and a skip, dependencies grow,
Rollkit’s beta shines with a golden glow.
Old libraries pruned, new versions in tow,
The code garden’s tidy; it’s ready to go!
And from the Adapter, a method hops away,
Simplifying paths for a brighter day.
🐇✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ecfa70c and 916cbc9.

📒 Files selected for processing (1)
  • .github/workflows/integration_test.yml (8 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/integration_test.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: lint / golangci-lint
  • GitHub Check: test / Run Unit Tests
  • GitHub Check: Test with Rollkit Chain
  • GitHub Check: Test Migration from Cosmos SDK to Rollkit

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ 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.
    • Explain this complex logic.
    • 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 explain this code block.
    • @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 explain its main purpose.
    • @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.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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 generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this 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

@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 @julienrbrt, 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 primarily focuses on updating the project's Go module dependencies. The most significant change is the migration of rollkit modules from using pseudo-versions to a stable tagged release, v1.0.0-beta.1. Additionally, it includes a comprehensive refresh of various other indirect dependencies to their latest versions and a cleanup of unused dependencies, aiming to improve overall dependency clarity and maintainability.

Highlights

  • Core Dependency Update: The primary change involves updating the github.com/rollkit/rollkit module and its sub-modules (core, da, sequencers/single) from commit-hash-based pseudo-versions (e.g., v0.14.2-0.20250630141726-fa03f78d8121) to a stable, tagged v1.0.0-beta.1 version. This aligns with the PR's intent to use tagged versions for better dependency management.
  • General Dependency Refresh: Numerous other indirect Go module dependencies have been updated to their latest versions. This includes updates to github.com/fsnotify/fsnotify, github.com/ipfs/boxo, several github.com/libp2p components (go-libp2p-kad-dht, go-libp2p-kbucket, go-libp2p-routing-helpers), github.com/prometheus components (client_model, procfs), github.com/spf13 libraries (afero, viper), gonum.org/v1/gonum, google.golang.org/genproto, and lukechampine.com/blake3.
  • Dependency Cleanup: Several indirect dependencies that are no longer explicitly required or have been subsumed by other updates have been removed from go.mod. Examples include github.com/hashicorp/errwrap, github.com/ipfs/go-log, github.com/opentracing/opentracing-go, github.com/sagikazarmark/slog-shim, and gopkg.in/ini.v1.
  • New Indirect Dependency: A new indirect dependency, github.com/go-viper/mapstructure/v2 v2.3.0, has been introduced.
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 is currently in preview and 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 to provide feedback.

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 updates several dependencies to their tagged versions, most notably rollkit to v1.0.0-beta.1. While using tagged versions is a good practice for dependency management, the major version bump for rollkit from a pre-v1.0 version to a v1.0 beta release is a significant change that could introduce breaking API changes and potential instability. I've left a comment regarding this potential issue. Please ensure that the new versions are compatible or that necessary code adaptations are made.

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 (2)
go.mod (2)

34-37: Drop the extra Rollkit sub-module pins unless they are strictly required

github.com/rollkit/rollkit already transitively exposes the core, da, and sequencers/single modules. Pinning them explicitly clutters the file and risks accidental version skew if a future tag is bumped only in one place.

-	github.com/rollkit/rollkit v1.0.0-beta.1
-	github.com/rollkit/rollkit/core v1.0.0-beta.1
-	github.com/rollkit/rollkit/da v1.0.0-beta.1
-	github.com/rollkit/rollkit/sequencers/single v1.0.0-beta.1
+	github.com/rollkit/rollkit v1.0.0-beta.1

Run go mod tidy afterwards; if the three sub-modules come back, it means they are required explicitly somewhere in the codebase and should stay.


280-280: locafero 0.4 → 0.7 is a semver-major – check any direct use

The API surface changed (Context-aware I/O). Grep the repo to be safe.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4ff2948 and 39efa64.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (1)
  • go.mod (9 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#81
File: .github/workflows/integration_test.yml:28-30
Timestamp: 2025-05-07T12:20:24.290Z
Learning: For the rollkit/go-execution-abci repository, the maintainer prefers using the latest version of Ignite CLI rather than pinning to a specific version during the current development phase. Version tags will be added later when Rollkit has a tag.
go.mod (1)
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#81
File: .github/workflows/integration_test.yml:28-30
Timestamp: 2025-05-07T12:20:24.290Z
Learning: For the rollkit/go-execution-abci repository, the maintainer prefers using the latest version of Ignite CLI rather than pinning to a specific version during the current development phase. Version tags will be added later when Rollkit has a tag.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: test / Run Unit Tests
  • GitHub Check: lint / golangci-lint
  • GitHub Check: Test with Rollkit Chain
  • GitHub Check: Test Migration from Cosmos SDK to Rollkit
🔇 Additional comments (9)
go.mod (9)

128-128: fsnotify 1.7 → 1.8 upgrade looks safe

No breaking API changes were introduced in the v1.8.0 release.


174-174: boxo minor upgrade LGTM

No action required.


205-205: miekg/dns patch bump LGTM


244-244: go-toml/v2 patch bump LGTM


269-271: Prometheus client & procfs bumps – verify custom metrics still register

The client model now rejects some non-UTF8 label names; make sure nothing breaks at startup.


287-290: Afero & Viper were upgraded together – compile once before merging

Viper ≥1.20 expects the new Afero features; this pairing should build, but run go vet ./... to catch any mismatch.


331-332: Genproto jump to a November-2024 snapshot – ensure it matches gRPC 1.73

This is usually fine, yet occasionally introduces renamed proto options.


337-337: Blake3 patch bump LGTM


137-137: Confirm double mapstructure dependencies

Your go.mod now lists both

  • github.com/go-viper/mapstructure/v2 v2.3.0 // indirect
  • github.com/mitchellh/mapstructure v1.5.0 // indirect

No direct imports or usages of mapstructure were found in the codebase, so these are coming in via transitive dependencies (v2 from go-viper, v1 from another module). To determine if you can safely drop the v1 entry, run:

go mod why -m github.com/mitchellh/mapstructure

Once you’ve identified which dependency requires v1, you can update or remove it—and then drop the v1 line from go.mod if it’s truly unused.

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

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0a16468 and 0b5ac00.

📒 Files selected for processing (2)
  • .github/workflows/integration_test.yml (5 hunks)
  • .github/workflows/migration_test.yml (2 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#81
File: .github/workflows/integration_test.yml:28-30
Timestamp: 2025-05-07T12:20:24.290Z
Learning: For the rollkit/go-execution-abci repository, the maintainer prefers using the latest version of Ignite CLI rather than pinning to a specific version during the current development phase. Version tags will be added later when Rollkit has a tag.
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#114
File: modules/rollkitmngr/keeper/migration.go:13-14
Timestamp: 2025-05-30T09:40:24.076Z
Learning: In modules/rollkitmngr/keeper/migration.go, the IBCSmoothingFactor variable is intentionally mutable (not a constant) to allow different chains to modify the smoothing period for IBC migration based on their specific requirements.
.github/workflows/migration_test.yml (4)
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#81
File: .github/workflows/integration_test.yml:28-30
Timestamp: 2025-05-07T12:20:24.290Z
Learning: For the rollkit/go-execution-abci repository, the maintainer prefers using the latest version of Ignite CLI rather than pinning to a specific version during the current development phase. Version tags will be added later when Rollkit has a tag.
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#114
File: modules/rollkitmngr/keeper/migration.go:13-14
Timestamp: 2025-05-30T09:40:24.076Z
Learning: In modules/rollkitmngr/keeper/migration.go, the IBCSmoothingFactor variable is intentionally mutable (not a constant) to allow different chains to modify the smoothing period for IBC migration based on their specific requirements.
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#114
File: modules/rollkitmngr/keeper/migration.go:18-46
Timestamp: 2025-05-30T09:43:01.102Z
Learning: In the rollkitmngr module migration functions, input validation for migration data parameters (like checking if Sequencer.ConsensusPubkey is nil) is not needed according to the project maintainer's preference.
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#113
File: server/migration_cmd.go:231-231
Timestamp: 2025-06-20T13:20:04.030Z
Learning: In the rollkit migration command (server/migration_cmd.go), InitialHeight is correctly set to LastBlockHeight because the Rollkit chain is technically a new chain that starts where the CometBFT chain ended, ensuring continuity during migration.
.github/workflows/integration_test.yml (3)
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#81
File: .github/workflows/integration_test.yml:28-30
Timestamp: 2025-05-07T12:20:24.290Z
Learning: For the rollkit/go-execution-abci repository, the maintainer prefers using the latest version of Ignite CLI rather than pinning to a specific version during the current development phase. Version tags will be added later when Rollkit has a tag.
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#114
File: modules/rollkitmngr/keeper/migration.go:13-14
Timestamp: 2025-05-30T09:40:24.076Z
Learning: In modules/rollkitmngr/keeper/migration.go, the IBCSmoothingFactor variable is intentionally mutable (not a constant) to allow different chains to modify the smoothing period for IBC migration based on their specific requirements.
Learnt from: julienrbrt
PR: rollkit/go-execution-abci#113
File: server/migration_cmd.go:231-231
Timestamp: 2025-06-20T13:20:04.030Z
Learning: In the rollkit migration command (server/migration_cmd.go), InitialHeight is correctly set to LastBlockHeight because the Rollkit chain is technically a new chain that starts where the CometBFT chain ended, ensuring continuity during migration.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: test / Run Unit Tests
  • GitHub Check: lint / golangci-lint
  • GitHub Check: Test with Rollkit Chain
  • GitHub Check: Test Migration from Cosmos SDK to Rollkit
🔇 Additional comments (3)
.github/workflows/integration_test.yml (2)

74-76: Good switch to go mod edit …@$ROLLKIT_VERSION

Pinning the module via go mod edit -replace cleanly avoids the brittle go get $(jq …) dance. 👍


362-383: Retry loop is clear and bounded

The rewritten wait-loop (30 attempts × 3 s) is readable, bounded, and correctly flips IBC_FOUND to break the loop – looks good.

.github/workflows/migration_test.yml (1)

180-182: Module pinning change LGTM

Consistent with the rest of the repository and the move to tagged releases.

@julienrbrt julienrbrt merged commit 2df3102 into main Jul 10, 2025
11 of 12 checks passed
@julienrbrt julienrbrt deleted the julien/use-tagged-versions branch July 10, 2025 09:47
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.

2 participants