Skip to content

Conversation

@julienrbrt
Copy link
Member

@julienrbrt julienrbrt commented Nov 13, 2025

Rename evm-single to evm and grpc-single to evgrpc for clarity.

ref: #2797 (comment)

DNM until #2797 is merged!

@github-actions
Copy link
Contributor

github-actions bot commented Nov 13, 2025

The latest Buf updates on your PR. Results from workflow CI / buf-check (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed⏩ skipped✅ passed✅ passedNov 13, 2025, 11:32 AM

@claude
Copy link
Contributor

claude bot commented Nov 13, 2025

Claude finished @julienrbrt's task —— View job


Comprehensive Code Review Complete

I've reviewed the PR that renames evm-singleevm and grpc-singleevgrpc. The refactoring is extensive (37 files changed) and mostly well-executed. However, I've identified several issues that need attention before merging.


Critical Issues

1. Variable Declaration Mismatch in Test File (test/e2e/evm_test_common.go)

Severity: High

The variable is declared as evmSingleBinaryPath on line 42 but the comment on line 41 still references "evm-single". While this won't cause compilation errors (the latest commit 481642f appears to have fixed the usage), the naming is inconsistent with the rename:

// Line 41-42
// evmSingleBinaryPath is the path to the evm-single binary used in tests
var evmSingleBinaryPath string

Recommendation: Rename the variable to evmBinaryPath throughout the file for consistency with the new naming:

// evmBinaryPath is the path to the evm binary used in tests
var evmBinaryPath string

Update all 12 references in the file: lines 42, 45, 247, 302, 326, 343, 369, 393, 424, 488, 605, 651, 701.


2. Inconsistent Volume Names in Docker Compose (apps/evm/docker-compose.yml)

Severity: Medium

Lines 64 and 82 still use evm-single-data as the volume name, which is inconsistent with the rename:

volumes:
  - evm-single-data:/root/.evm/  # Line 64

volumes:
  evm-single-data:  # Line 82

Recommendation: Rename to evm-data for consistency:

volumes:
  - evm-data:/root/.evm/

volumes:
  evm-data:

3. Incorrect Database Name in Testapp Rollback Command (apps/testapp/cmd/rollback.go)

Severity: Medium-High

Line 42 uses "testapp" as the database name, which appears correct. However, reviewing the commit history shows this was changed from "evm" in commit 397be96. This looks correct now, but it's worth verifying that "testapp" is the intended database name for the testapp rollback command (not a copy-paste artifact).

Current state (appears correct):

rawEvolveDB, err := store.NewDefaultKVStore(nodeConfig.RootDir, nodeConfig.DBPath, "testapp")

Documentation and Consistency Issues

4. RELEASE.md Numbering (RELEASE.md)

Severity: Low

The list numbering in the "Release Order" section has an inconsistency. After the Phase 1 section lists item 1, Phase 2 starts with item 1 again instead of item 2. While this is technically acceptable as a nested structure, it could be clearer.

Current:

#### Phase 1: Core Package
1. **github.com/evstack/ev-node/core**

#### Phase 2: First-Level Dependencies
1. **github.com/evstack/ev-node/da** - Path: `./da`
2. **github.com/evstack/ev-node** - Path: `./` (root)

Consider either:

  • Keep as-is if each phase is meant to have its own numbering
  • OR restructure to be a single continuous list (1, 2, 3, 4, 5...)

5. Old Tag References in RELEASE.md

Severity: Low

Multiple examples in RELEASE.md still reference evm/single/ in tag names:

  • Line 21: git tag evm/single/v0.2.0
  • Line 200: git tag evm/single/v0.2.0
  • Line 226: git tag -d evm/single/v0.2.0
  • Line 227: git push origin :refs/tags/evm/single/v0.2.0
  • Line 230: git tag evm/single/v0.2.1
  • Line 231: git push origin evm/single/v0.2.1
  • Line 327: git tag -a evm/single/v0.2.0

Recommendation: Update all examples to use apps/evm/v0.2.0 format to match the new structure.


Code Quality Assessment

Positive Observations

  1. Thorough Rename: The rename is comprehensive across:

    • Binary names and paths
    • Go module names
    • Docker configurations
    • Build scripts
    • Documentation
    • Test configurations
  2. Consistent Flag Naming: The entrypoint script (apps/evm/entrypoint.sh) correctly uses evm as the binary name throughout.

  3. Build Script Updates: scripts/build.mk properly reflects the new paths:

    @cd apps/evm && go build -ldflags "$(LDFLAGS)" -o $(CURDIR)/build/evm .
  4. CHANGELOG Update: The CHANGELOG.md correctly documents the rename in the Unreleased section.

  5. No Hardcoded References: Search results show only 4 remaining instances of "evm-single" and 1 of "grpc-single", all in acceptable contexts (CHANGELOG entry, comments, and volume names that need fixing).

Architecture & Go Code Quality

The renamed applications maintain good Go practices:

  • Clean package structure with proper separation of concerns
  • Appropriate use of context.Context for cancellation
  • Error wrapping with context
  • Structured logging patterns

Docker Configuration Review

apps/evm/Dockerfile:

  • ✅ Multi-stage build is efficient
  • ✅ Proper WORKDIR and COPY paths updated
  • ✅ Binary path at line 22 correctly references /src/apps/evm/evm

apps/grpc/Dockerfile:

  • ✅ Proper multi-stage build
  • ✅ Security best practice: runs as non-root user
  • ✅ Binary naming correctly uses evgrpc

Test Configuration

test/e2e/evm_test_common.go:

  • ✅ Proper test isolation with dynamic port allocation
  • ✅ Secure file permissions (0600) for JWT and passphrase files
  • ✅ Good use of test helpers and proper cleanup

Security Observations

No security concerns introduced by this refactoring. The rename maintains:

  • Secure file permissions (0600 for secrets)
  • Proper JWT secret handling
  • No credential exposure in logs or errors

Performance Considerations

No performance impact expected from this rename. The changes are purely nomenclature.


Summary of Required Changes

Must Fix Before Merge:

  1. apps/evm/docker-compose.yml: Rename volume from evm-single-data to evm-data (lines 64, 82)
  2. ⚠️ test/e2e/evm_test_common.go: Consider renaming evmSingleBinaryPathevmBinaryPath for consistency (12 occurrences)

Should Fix (Documentation):

  1. RELEASE.md: Update all tag examples from evm/single/v* to apps/evm/v* (7 occurrences)

Verification:

  1. apps/testapp/cmd/rollback.go: Confirm "testapp" is the correct database name (appears correct after commit 397be96)

Testing Recommendations

Before merging, please verify:

  1. ✅ CI passes (buf-check: passing)
  2. ✅ Docker images build successfully
  3. Test the E2E tests with the new binary names
  4. Verify docker-compose works with the updated volume names
  5. Test the upgrade path from existing installations

Conclusion

This is a solid refactoring PR that improves naming clarity. The identified issues are straightforward to fix. The most critical item is the Docker volume name inconsistency in apps/evm/docker-compose.yml. Once these items are addressed, this PR will be ready to merge.

Overall Assessment: ✅ Approved with minor changes requested

The rename is well-executed and follows through consistently across the codebase. Great job on maintaining coherence across 37 files!


@gemini-code-assist
Copy link
Contributor

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 streamlines the project's naming conventions by shortening the names of two core applications. The evm-single application is now simply evm, and grpc-single is now evgrpc. This change is purely cosmetic, aimed at enhancing readability and ease of reference throughout the codebase, documentation, and operational scripts, without altering any underlying functionality.

Highlights

  • Application Renaming: The evm-single application has been renamed to evm and grpc-single has been renamed to evgrpc to improve clarity and simplify naming conventions.
  • File Structure Update: All related files, including Dockerfiles, READMEs, Go modules, and command-line interface (CLI) entrypoints, have been moved from apps/evm/single to apps/evm and apps/grpc/single to apps/grpc respectively.
  • Configuration and Script Adjustments: Build scripts, test configurations, and documentation have been updated to reflect the new application names and file paths, ensuring consistency across the project.
Ignored Files
  • Ignored by pattern: .github/workflows/** (3)
    • .github/workflows/ci.yml
    • .github/workflows/docker-tests.yml
    • .github/workflows/ghcr-prune.yml
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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 13, 2025

PR Preview Action v1.6.2

🚀 View preview at
https://evstack.github.io/docs-preview/pr-2839/

Built to branch main at 2025-11-13 11:33 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

Copy link
Contributor

@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 PR does a good job of renaming evm-single to evm and grpc-single to evgrpc across the codebase. The changes are extensive and mostly consistent. I've found a few minor inconsistencies and potential issues that should be addressed for completeness. These include a numbering issue in RELEASE.md, incorrect paths in a Dockerfile, an inconsistent volume name in a docker-compose.yml, a hardcoded value in a test app that seems to be a copy-paste error, and a variable declaration issue in an E2E test file. Overall, a good refactoring effort.

@codecov
Copy link

codecov bot commented Nov 13, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 64.38%. Comparing base (0d790ef) to head (481642f).

Additional details and impacted files
@@              Coverage Diff              @@
##           julien/fi    #2839      +/-   ##
=============================================
- Coverage      64.47%   64.38%   -0.10%     
=============================================
  Files             83       83              
  Lines           7600     7600              
=============================================
- Hits            4900     4893       -7     
- Misses          2141     2148       +7     
  Partials         559      559              
Flag Coverage Δ
combined 64.38% <ø> (-0.10%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants