Skip to content

feat: migrate to golangci-lint v2#3960

Merged
swift1337 merged 3 commits intodevelopfrom
feat/golanglint-v2
Jun 6, 2025
Merged

feat: migrate to golangci-lint v2#3960
swift1337 merged 3 commits intodevelopfrom
feat/golanglint-v2

Conversation

@swift1337
Copy link
Contributor

@swift1337 swift1337 commented Jun 5, 2025

  • Migrate linter to v2
  • Apply linter and fixes
  • Embed golines formatter into the linter
  • Update CI
  • Optimize exclusion list

Summary by CodeRabbit

  • Chores
    • Updated linting and formatting tools to newer versions and modernized configuration for improved code quality checks.
    • Streamlined build and formatting processes by replacing custom scripts with integrated tooling.
  • Refactor
    • Improved code readability and maintainability by simplifying conditional logic, removing redundant code, and clarifying boolean expressions throughout the codebase.
    • Enhanced resource management in periodic tasks to prevent potential leaks.
  • Style
    • Applied consistent formatting and removed unnecessary comments and directives for cleaner code.
  • Bug Fixes
    • Tightened authorization checks for tracker management, ensuring stricter validation of permissions.

@swift1337 swift1337 self-assigned this Jun 5, 2025
@swift1337 swift1337 requested review from a team as code owners June 5, 2025 16:13
@swift1337 swift1337 added the no-changelog Skip changelog CI check label Jun 5, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jun 5, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

📝 Walkthrough

Walkthrough

This change set modernizes linting and formatting infrastructure by upgrading golangci-lint to v2, refactoring its configuration, and updating the Makefile and workflow accordingly. Numerous code files are refactored for clarity and conciseness, including logical simplifications, redundant code removal, and improved conditional expressions. Several scripts and configuration files are streamlined or replaced for a more maintainable and production-ready codebase.

Changes

File(s) Change Summary
.github/workflows/sast-linters.yml, .golangci.yml, Makefile Upgraded golangci-lint to v2; updated config to new schema; Makefile invokes golangci-lint fmt directly; removed obsolete script.
scripts/fmt.sh Deleted legacy formatting script, replaced by golangci-lint v2 formatting capabilities.
app/export.go, cmd/zetacored/root.go, cmd/zetatool/chains/evm.go, x/crosschain/keeper/cctx_gateway_observers.go, x/crosschain/types/inbound_parsing.go, zetaclient/chains/evm/observer/v2_inbound.go Simplified boolean assignments by direct conditional evaluation.
cmd/zetae2e/stress.go Replaced verbose ticker select loops with concise for range over ticker channels.
cmd/zetatool/cctx/cctx_details.go Removed redundant return statements; simplified boolean logic for status checks.
contrib/rpctest/main.go, e2e/e2etests/legacy/test_erc20_deposit_refund.go Removed unused transaction receipt assignments; improved variable scoping.
e2e/runner/solana_gateway_upgrade.go Switched from time.Tick to time.NewTicker with proper resource cleanup.
e2e/runner/ton/faucet.go, rpc/namespaces/ethereum/debug/api.go Removed unnecessary linter directives from comments.
scripts/gen-spec.go Replaced WriteString(fmt.Sprintf(...)) with fmt.Fprintf for file output.
testutil/simulation/rand_observer.go Inlined boolean return expression for observer check.
x/crosschain/keeper/abort.go, x/crosschain/keeper/cctx_orchestrator_validate_outbound.go Removed redundant return statements at end of void functions.
x/crosschain/keeper/cctx.go, x/crosschain/keeper/inbound_tracker.go, x/lightclient/keeper/block_header.go, x/lightclient/keeper/chain_state.go, x/observer/keeper/chain_params.go Eliminated unnecessary fmt.Sprintf in key prefix construction; removed unused imports.
x/crosschain/keeper/msg_server_add_inbound_tracker.go, x/crosschain/keeper/msg_server_add_outbound_tracker.go, zetaclient/chains/bitcoin/observer/outbound.go Rewrote negated OR logic as negated AND for authorization and validation checks, clarifying intent.
x/fungible/keeper/deposits.go, zetaclient/chains/evm/common/cctx.go Removed unnecessary else blocks after early returns, flattening control flow.
x/observer/keeper/hooks.go Replaced negated equality with direct inequality for self-delegation check; improved readability.

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant GitHub Actions
    participant golangci-lint v2
    participant Codebase

    Developer->>GitHub Actions: Push code / open PR
    GitHub Actions->>golangci-lint v2: Run lint and format checks
    golangci-lint v2->>Codebase: Apply configured linters and formatters
    golangci-lint v2-->>GitHub Actions: Report lint/format results
    GitHub Actions-->>Developer: Pass/fail status and feedback
Loading
sequenceDiagram
    participant Code
    participant Linter
    participant Formatter

    Code->>Linter: Source code analysis (enabled linters only)
    Code->>Formatter: Apply formatting (gci, gofmt, goimports, golines)
    Linter-->>Code: Lint results (issues, warnings, errors)
    Formatter-->>Code: Formatted code output
Loading

These diagrams illustrate the updated CI workflow and the new formatting/linting pipeline using golangci-lint v2, reflecting the streamlined and modernized approach introduced by these changes.


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.

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.

@github-actions github-actions bot added ci Changes to CI pipeline or github actions breaking:cli labels Jun 5, 2025
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)
.golangci.yml (1)

38-52: Define enabled linters explicitly.

The curated list focuses on high-value checks. Consider adding errorlint to catch unchecked errors in control flow.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between d2c403a and 9b369aa.

📒 Files selected for processing (32)
  • .github/workflows/sast-linters.yml (1 hunks)
  • .golangci.yml (1 hunks)
  • Makefile (2 hunks)
  • app/export.go (1 hunks)
  • cmd/zetacored/root.go (1 hunks)
  • cmd/zetae2e/stress.go (2 hunks)
  • cmd/zetatool/cctx/cctx_details.go (1 hunks)
  • cmd/zetatool/chains/evm.go (1 hunks)
  • contrib/rpctest/main.go (1 hunks)
  • e2e/e2etests/legacy/test_erc20_deposit_refund.go (2 hunks)
  • e2e/runner/solana_gateway_upgrade.go (1 hunks)
  • e2e/runner/ton/faucet.go (1 hunks)
  • rpc/namespaces/ethereum/debug/api.go (1 hunks)
  • scripts/fmt.sh (0 hunks)
  • scripts/gen-spec.go (2 hunks)
  • testutil/simulation/rand_observer.go (1 hunks)
  • x/crosschain/keeper/abort.go (0 hunks)
  • x/crosschain/keeper/cctx.go (5 hunks)
  • x/crosschain/keeper/cctx_gateway_observers.go (1 hunks)
  • x/crosschain/keeper/cctx_orchestrator_validate_outbound.go (1 hunks)
  • x/crosschain/keeper/inbound_tracker.go (1 hunks)
  • x/crosschain/keeper/msg_server_add_inbound_tracker.go (1 hunks)
  • x/crosschain/keeper/msg_server_add_outbound_tracker.go (1 hunks)
  • x/crosschain/types/inbound_parsing.go (1 hunks)
  • x/fungible/keeper/deposits.go (2 hunks)
  • x/lightclient/keeper/block_header.go (1 hunks)
  • x/lightclient/keeper/chain_state.go (1 hunks)
  • x/observer/keeper/chain_params.go (1 hunks)
  • x/observer/keeper/hooks.go (1 hunks)
  • zetaclient/chains/bitcoin/observer/outbound.go (2 hunks)
  • zetaclient/chains/evm/common/cctx.go (1 hunks)
  • zetaclient/chains/evm/observer/v2_inbound.go (1 hunks)
💤 Files with no reviewable changes (2)
  • x/crosschain/keeper/abort.go
  • scripts/fmt.sh
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.go`: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

**/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

  • testutil/simulation/rand_observer.go
  • e2e/runner/ton/faucet.go
  • zetaclient/chains/evm/common/cctx.go
  • x/lightclient/keeper/chain_state.go
  • rpc/namespaces/ethereum/debug/api.go
  • x/crosschain/keeper/cctx_gateway_observers.go
  • e2e/e2etests/legacy/test_erc20_deposit_refund.go
  • zetaclient/chains/evm/observer/v2_inbound.go
  • x/crosschain/types/inbound_parsing.go
  • cmd/zetatool/chains/evm.go
  • x/crosschain/keeper/msg_server_add_outbound_tracker.go
  • x/observer/keeper/hooks.go
  • x/crosschain/keeper/inbound_tracker.go
  • x/crosschain/keeper/cctx_orchestrator_validate_outbound.go
  • x/observer/keeper/chain_params.go
  • x/lightclient/keeper/block_header.go
  • app/export.go
  • e2e/runner/solana_gateway_upgrade.go
  • contrib/rpctest/main.go
  • x/fungible/keeper/deposits.go
  • cmd/zetatool/cctx/cctx_details.go
  • x/crosschain/keeper/cctx.go
  • scripts/gen-spec.go
  • x/crosschain/keeper/msg_server_add_inbound_tracker.go
  • cmd/zetacored/root.go
  • zetaclient/chains/bitcoin/observer/outbound.go
  • cmd/zetae2e/stress.go
🧬 Code Graph Analysis (6)
zetaclient/chains/evm/common/cctx.go (1)
testutil/sample/crosschain.go (1)
  • InboundParams (176-191)
e2e/e2etests/legacy/test_erc20_deposit_refund.go (1)
e2e/utils/evm.go (1)
  • MustWaitForTxReceipt (19-48)
x/crosschain/keeper/inbound_tracker.go (1)
x/crosschain/types/keys.go (1)
  • InboundTrackerKeyPrefix (63-63)
x/observer/keeper/chain_params.go (1)
x/observer/types/keys.go (1)
  • AllChainParamsKey (60-60)
x/lightclient/keeper/block_header.go (1)
x/observer/types/keys.go (1)
  • BlockHeaderKey (74-74)
x/crosschain/keeper/cctx.go (1)
x/crosschain/types/keys.go (2)
  • KeyPrefix (37-39)
  • CCTXKey (44-44)
⏰ Context from checks skipped due to timeout of 90000ms (10)
  • GitHub Check: test-sim-nondeterminism / sim
  • GitHub Check: test-sim-fullappsimulation / sim
  • GitHub Check: test-sim-import-export / sim
  • GitHub Check: test-sim-after-import / sim
  • GitHub Check: build-zetanode
  • GitHub Check: build-and-test
  • GitHub Check: lint
  • GitHub Check: gosec
  • GitHub Check: analyze (go)
  • GitHub Check: build
🔇 Additional comments (46)
e2e/e2etests/legacy/test_erc20_deposit_refund.go (2)

129-129: LGTM: Removed unnecessary receipt assignment.

The receipt from the approval transaction is not used in subsequent logic, so removing the assignment improves code clarity while preserving the waiting behavior.


144-144: LGTM: Properly scoped receipt variable.

Creating a new local variable for the deposit transaction receipt is appropriate since this receipt is actually used for status checking and logging in the following lines.

contrib/rpctest/main.go (1)

155-155: LGTM: Eliminated redundant receipt assignment.

The previous pattern immediately overwrote the receipt from MustWaitForReceipt with a call to zevmClient.TransactionReceipt. Using MustWaitForReceipt purely for its waiting side effect and obtaining the receipt separately with proper error handling is more efficient and clearer.

x/crosschain/keeper/cctx_gateway_observers.go (1)

44-47: LGTM! Excellent simplification of boolean assignment.

The direct assignment from the function result is more concise and readable than the previous conditional pattern.

x/crosschain/keeper/cctx_orchestrator_validate_outbound.go (1)

56-56: LGTM! Removed unnecessary string formatting.

Direct string assignment is more efficient than fmt.Sprintf for string literals without format specifiers.

cmd/zetacored/root.go (1)

323-323: LGTM! Clean boolean assignment simplification.

Direct assignment from the comparison expression is more concise and expressive than conditional blocks.

scripts/gen-spec.go (1)

132-132: LGTM! Excellent optimization replacing WriteString+Sprintf pattern.

Using fmt.Fprintf directly to the file is more efficient than the intermediate string creation with fmt.Sprintf followed by WriteString. This reduces memory allocations and improves performance.

Also applies to: 137-137, 142-142, 158-158

cmd/zetatool/cctx/cctx_details.go (1)

124-124: Excellent boolean logic simplification.

The application of De Morgan's law transforms the negated OR condition into a direct AND condition, significantly improving readability while maintaining identical logic.

testutil/simulation/rand_observer.go (1)

39-40: Perfect elimination of redundant conditional logic.

Directly returning the boolean result from IsNonTombstonedObserver removes unnecessary intermediate variable assignment and conditional branching, making the code more concise and idiomatic.

zetaclient/chains/bitcoin/observer/outbound.go (2)

459-459: Well-executed boolean logic simplification in critical validation.

The transformation from negated OR to direct AND logic in the TSS output validation enhances readability while preserving the exact validation semantics for Bitcoin transaction outputs.


518-518: Consistent logic improvement in cancelled transaction validation.

The boolean expression simplification aligns with the pattern established in checkTSSVout, maintaining consistency across the validation functions while improving code clarity.

x/observer/keeper/hooks.go (1)

149-153: Clean negation removal with improved formatting.

The transformation from negated equality to direct inequality, combined with the added whitespace, significantly enhances the readability of the self-delegation check logic.

e2e/runner/solana_gateway_upgrade.go (1)

115-116: Excellent resource management improvement.

The migration from time.Tick to time.NewTicker with proper cleanup prevents resource leaks and follows Go best practices for production code.

x/fungible/keeper/deposits.go (2)

163-164: Clean code improvement through else elimination.

Removing the unnecessary else block improves readability and follows the early return pattern, making the control flow more straightforward.


179-181: Consistent application of early return pattern.

The elimination of the else block maintains consistency with the previous case and reduces nesting depth, enhancing code clarity.

cmd/zetae2e/stress.go (2)

208-210: Elegant simplification of ticker pattern.

The for range ticker.C construct is more idiomatic than explicit select statements for simple ticker loops, improving code readability while maintaining identical functionality.


223-286: Comprehensive modernization of ticker handling.

The refactoring from select statements to for range ticker.C significantly reduces boilerplate code while preserving all network metrics calculation logic. This pattern is more concise and aligns with modern Go idioms.

e2e/runner/ton/faucet.go (1)

12-12: Proper alignment with golangci-lint v2 configuration.

Removing the stylecheck directive from the nolint comment aligns with the migration to golangci-lint v2, where this linter was removed from the enabled set. The change maintains only relevant suppression directives.

rpc/namespaces/ethereum/debug/api.go (1)

134-134: LGTM! Linter directive cleanup aligns with golangci-lint v2 migration.

The removal of deprecated golint and stylecheck directives while retaining revive is correct for the v2 migration. This modernizes the linting configuration without affecting functionality.

x/lightclient/keeper/chain_state.go (1)

15-15: Excellent refactoring! Direct key prefix usage eliminates unnecessary complexity.

The simplification from fmt.Sprintf to direct types.KeyPrefix(types.ChainStateKey) usage improves code clarity and removes redundant string formatting without altering functionality.

.github/workflows/sast-linters.yml (1)

50-52: LGTM! CI workflow correctly upgraded for golangci-lint v2 migration.

The upgrades to golangci-lint-action@v8 and golangci-lint v2.1.6 are essential for the v2 migration and ensure the CI pipeline uses the latest tooling infrastructure.

zetaclient/chains/evm/observer/v2_inbound.go (1)

183-183: Excellent simplification! Direct boolean assignment improves code conciseness.

The refactoring from an explicit conditional block to direct assignment of len(event.Payload) > 0 follows clean code principles while maintaining identical functionality.

x/lightclient/keeper/block_header.go (1)

17-17: Excellent simplification of key prefix construction.

The removal of unnecessary fmt.Sprintf around the string constant types.BlockHeaderKey improves code clarity and performance. Since BlockHeaderKey is already a string constant, direct usage with types.KeyPrefix() is the appropriate approach.

cmd/zetatool/chains/evm.go (1)

178-178: Clean boolean assignment simplification.

The direct assignment isCrossChainCall := len(event.Payload) > 0 is more concise and idiomatic than an explicit conditional block. This change improves readability while maintaining identical functionality.

x/crosschain/keeper/inbound_tracker.go (1)

97-97: Proper elimination of redundant string formatting.

The direct usage of types.KeyPrefix(types.InboundTrackerKeyPrefix) removes unnecessary fmt.Sprintf overhead since InboundTrackerKeyPrefix is already a string constant. This change aligns with the broader codebase simplification effort.

x/crosschain/types/inbound_parsing.go (1)

124-124: Consistent boolean assignment improvement.

The direct assignment isCrossChainCall := len(event.Message) > 0 maintains the backward compatibility logic while improving code conciseness. This change aligns with similar simplifications across the EVM-related codebase.

x/observer/keeper/chain_params.go (1)

13-13: LGTM: Clean refactoring eliminates unnecessary string formatting overhead.

The direct usage of types.KeyPrefix(types.AllChainParamsKey) is more efficient than wrapping a string constant in fmt.Sprintf, improving both readability and performance.

Also applies to: 20-20

x/crosschain/keeper/msg_server_add_inbound_tracker.go (1)

31-31: LGTM: Logical correction improves authorization security.

The change from !(isAuthorizedPolicy || isObserver) to !isAuthorizedPolicy && !isObserver correctly implements the intended authorization logic, ensuring access is denied only when the creator is neither an authorized policy nor an observer.

app/export.go (1)

60-60: LGTM: Concise boolean assignment improves readability.

Direct assignment of the boolean expression len(jailAllowedAddrs) > 0 is more idiomatic and readable than using a conditional block for simple boolean logic.

x/crosschain/keeper/msg_server_add_outbound_tracker.go (1)

62-62: LGTM: Consistent authorization logic correction.

The change from !(isAuthorizedPolicy || isObserver) to !isAuthorizedPolicy && !isObserver correctly implements the authorization logic and maintains consistency with the identical fix in the inbound tracker message server.

Makefile (2)

154-156: Ensure installation instructions align with project standards.

The added reminder to install golangci-lint v2.1.6 locally is helpful. Verify that the pinned version matches the CI configuration and include this step in the developer setup documentation if not already documented.


165-167: Replace custom formatting script with integrated formatter.

Invoking golangci-lint fmt directly simplifies the workflow and avoids an external script. Ensure that golangci-lint fmt covers all formatting requirements previously handled by golines.

zetaclient/chains/evm/common/cctx.go (4)

49-54: Remove redundant else after early return for clarity.

Refactoring if…return; return improves linear control flow. Confirm that all code paths remain covered by tests for the Gas PendingOutbound case.


55-61: Streamline PendingRevert branch by eliminating else.

The pattern enhances readability. Ensure no unintended fallthrough occurs for the Gas PendingRevert state.


63-69: Simplify ERC20 PendingOutbound logic.

Consistent with other cases, the removal of else maintains clarity. Verify behavior via existing integration tests.


70-76: Refactor ERC20 PendingRevert branch for readability.

Unwinding the if-else reduces nesting. Confirm test coverage for the ERC20 revert scenarios.

x/crosschain/keeper/cctx.go (5)

68-71: Simplify boolean condition.

Changing == false to ! is more idiomatic in Go. Good cleanup.


101-102: Use KeyPrefix directly instead of fmt.Sprintf.

Removing fmt.Sprintf reduces overhead and unused imports.


116-117: Consistent prefix construction for retrieval.

Direct use of types.KeyPrefix aligns with other keeper methods.


130-132: Standardize key prefix in iterator.

This change simplifies prefix setup for iteration.


148-150: Condense delete operation with direct prefix.

Using types.KeyPrefix keeps the code DRY and avoids string formatting.

.golangci.yml (5)

1-9: Upgrade to golangci-lint v2 schema and Go 1.23.

The version bump and disabling of tests in run are aligned with the new linter defaults. Ensure CI and local installations use Go 1.23.


10-23: Configure formatters for import order and line length.

Enabling gci, gofmt, goimports, and golines with deterministic import sections and a 120-character limit is appropriate.


24-35: Exclude generated and test files from formatting.

Excluding .pb.go, test files, and config directories helps avoid noise.


67-82: Refine exclusions for linters.

Preset exclusions and path filters are comprehensive. Confirm that new directories (e.g., ./scripts) are correctly excluded.


83-97: Filter specific staticcheck warnings.

Excluding QF1002, QF1003, SA1019, and QF1008 is done intentionally. Validate that these do not mask critical issues.

@codecov
Copy link

codecov bot commented Jun 5, 2025

Codecov Report

Attention: Patch coverage is 66.66667% with 9 lines in your changes missing coverage. Please review.

Project coverage is 64.10%. Comparing base (d2c403a) to head (dd8eb1c).
Report is 4 commits behind head on develop.

Files with missing lines Patch % Lines
x/fungible/keeper/deposits.go 0.00% 3 Missing ⚠️
zetaclient/chains/evm/common/cctx.go 25.00% 3 Missing ⚠️
...osschain/keeper/msg_server_add_outbound_tracker.go 0.00% 0 Missing and 1 partial ⚠️
x/crosschain/types/inbound_parsing.go 0.00% 1 Missing ⚠️
zetaclient/chains/evm/observer/v2_inbound.go 0.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #3960      +/-   ##
===========================================
- Coverage    64.18%   64.10%   -0.08%     
===========================================
  Files          474      474              
  Lines        34803    34838      +35     
===========================================
- Hits         22337    22333       -4     
- Misses       11438    11479      +41     
+ Partials      1028     1026       -2     
Files with missing lines Coverage Δ
x/crosschain/keeper/abort.go 81.87% <ø> (-0.25%) ⬇️
x/crosschain/keeper/cctx.go 100.00% <100.00%> (ø)
x/crosschain/keeper/cctx_gateway_observers.go 100.00% <100.00%> (ø)
...hain/keeper/cctx_orchestrator_validate_outbound.go 88.41% <100.00%> (-0.04%) ⬇️
x/crosschain/keeper/inbound_tracker.go 90.76% <100.00%> (ø)
...rosschain/keeper/msg_server_add_inbound_tracker.go 100.00% <100.00%> (ø)
x/lightclient/keeper/block_header.go 93.54% <100.00%> (ø)
x/lightclient/keeper/chain_state.go 100.00% <100.00%> (ø)
x/observer/keeper/chain_params.go 100.00% <100.00%> (ø)
x/observer/keeper/hooks.go 68.62% <100.00%> (ø)
... and 6 more

... and 1 file with indirect coverage changes

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

@swift1337 swift1337 enabled auto-merge June 6, 2025 13:15
Copy link
Member

@julianrubino julianrubino left a comment

Choose a reason for hiding this comment

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

lgtm and workflow did run fine

@swift1337 swift1337 added this pull request to the merge queue Jun 6, 2025
Merged via the queue into develop with commit 18f5374 Jun 6, 2025
47 checks passed
@swift1337 swift1337 deleted the feat/golanglint-v2 branch June 6, 2025 15:57
swift1337 added a commit that referenced this pull request Jun 11, 2025
* Migrate linter to V2

* Apply lint

* Improve makefile
swift1337 added a commit that referenced this pull request Jun 11, 2025
* feat: migrate to golangci-lint v2 (#3960)

* Migrate linter to V2

* Apply lint

* Improve makefile

* feat(ton): Implement HTTP-RPC based on toncenter v2 (#3929)

* Add TON HTTP-RPC client skeleton

* RPC WIP [1]

* RPC WIP [2]

* RPC WIP [3]

* Metrics note

* Record metrics

* Update changelog

* feat(zetaclient): integrate TON HTTP-RPC (#3958)

* Refactor observer; refactor mocks

* Fix signer & unit tests

* Drop liteapi

* Restore tx hash conversion aliases

* Fix E2E, adapt Tongo x RPC

* Update wait-for-ton

* Move tlb to rpc package

* fix e2e tests; simplify ensureLastScannedTx; fix client

* rename .rpc to .Endpoint in config

* Simplify config

* Update changelog

* lint

* Address PR comments

* PR fixes

* fix merge conflict

* bump linter timeout

* use ton localnet v2

* bump ton localnet

* bump ton localnet

* Bump changelog
@coderabbitai coderabbitai bot mentioned this pull request Sep 29, 2025
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking:cli ci Changes to CI pipeline or github actions no-changelog Skip changelog CI check

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants