Thomas/go.1.25 test#1943
Conversation
|
Hey there and thank you for opening this pull request! 👋🏼 We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted. Details: |
WalkthroughUpgrades CI workflows (checkout, setup-go, nixpkgs), bumps Go toolchain to 1.25, migrates Nix overlays and Go build helpers to use go_1_25/buildGoModule, adds TypeScript/pytest test infra, and introduces multiple Nix package/overlay changes including rocksdb, solc-static-versions, and Windows bundle DLL update. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: defaults Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
⏰ 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). (20)
🔇 Additional comments (1)
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. Comment |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1943 +/- ##
==========================================
+ Coverage 16.87% 25.65% +8.77%
==========================================
Files 72 78 +6
Lines 6163 5118 -1045
==========================================
+ Hits 1040 1313 +273
+ Misses 5000 3643 -1357
- Partials 123 162 +39 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (6)
integration_tests/contracts/tsconfig.json (1)
7-7: Consider enabling TypeScript strict mode for better type safety.Setting
"strict": falsedisables TypeScript's strict type checking, which can lead to runtime errors that would otherwise be caught at compile time. Consider enabling it incrementally or setting it totrueto improve code quality and catch potential issues early.🔎 Apply this diff to enable strict mode:
- "strict": false, + "strict": true,flake.nix (1)
32-43: Clarify the purpose ofmodRootoverride on gomod2nix.The
overrideAttrssetsmodRoot = "."on thegomod2nixCLI tool itself. This attribute typically affectsbuildGoApplication, not the CLI. If the intent is to configure the module root for builds, this should be set indefault.nix(which it is on line 60).Consider removing this override if it has no effect, or add a comment explaining why it's needed for the CLI tool.
nix/testenv.nix (1)
16-19: Document hash maintenance for rpds-py vendor dependencies.The hardcoded
hashforfetchCargoVendoris tied to a specificrpds-pyversion. When therpds-pyversion changes inpoetry.lock, this hash will need to be updated.Consider adding a comment indicating the corresponding
rpds-pyversion for maintainability:cargoDeps = pkgs.rustPlatform.fetchCargoVendor { inherit (old) src pname version; + # Hash for rpds-py cargo dependencies - update when rpds-py version changes hash = "sha256-npvJz6PMHWzPkI0LVNeiMsZVxmwR6uzjlhBPMCCrFfw="; };nix/rocksdb.nix (3)
178-182: Usestdenv.hostPlatform.isDarwininstead of deprecatedstdenv.isDarwin.
stdenv.isDarwinandstdenv.isLinuxare deprecated in favor ofstdenv.hostPlatform.isDarwinandstdenv.hostPlatform.isLinuxfor cross-compilation correctness.🔎 Apply this diff:
- + lib.optionalString stdenv.isDarwin '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' ls -1 $tools/bin/* | xargs -I{} ${stdenv.cc.bintools.targetPrefix}install_name_tool -change "@rpath/librocksdb.${lib.versions.major finalAttrs.version}.dylib" $out/lib/librocksdb.dylib {} '' - + lib.optionalString (stdenv.isLinux && enableShared) '' + + lib.optionalString (stdenv.hostPlatform.isLinux && enableShared) '' ls -1 $tools/bin/* | xargs -I{} patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib {} '';
192-195: Consistent use of platform detection in postFixup.Same issue as preInstall - use
stdenv.hostPlatform.isDarwinfor consistency and cross-compilation support.🔎 Apply this diff:
- + lib.optionalString stdenv.isDarwin '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' ${stdenv.cc.targetPrefix}install_name_tool -change "@rpath/libsnappy.1.dylib" "${snappy}/lib/libsnappy.1.dylib" $out/lib/librocksdb.dylib
143-143: Hardcoded LZ4 version may become stale.The version
1.10.0is hardcoded in the generated pkgconfig file. If the nixpkgslz4package is updated, this could cause version mismatches.🔎 Consider extracting version dynamically:
- Version: 1.10.0 + Version: ${lz4.version or "1.10.0"}Note: This requires verifying that the
lz4derivation exposes aversionattribute.#!/bin/bash # Check if lz4 package in nixpkgs has a version attribute nix-instantiate --eval -E '(import <nixpkgs> {}).lz4.version or "no-version-attr"' 2>/dev/null || echo "Could not evaluate"
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (3)
flake.lockis excluded by!**/*.lockgo.sumis excluded by!**/*.sumintegration_tests/contracts/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (31)
.github/workflows/build.yml(6 hunks).github/workflows/codeql-analysis.yml(1 hunks).github/workflows/dependabot-update-all.yml(1 hunks).github/workflows/dependencies-review.yml(1 hunks).github/workflows/gosec.yml(1 hunks).github/workflows/linkchecker.yml(1 hunks).github/workflows/lint.yml(5 hunks).github/workflows/proto.yml(3 hunks).github/workflows/release.yml(2 hunks).github/workflows/semgrep.yml(1 hunks).github/workflows/sims.yml(6 hunks).github/workflows/test.yml(6 hunks).gitignore(1 hunks)Makefile(1 hunks)default.nix(3 hunks)flake.nix(3 hunks)go.mod(2 hunks)gomod2nix.toml(1 hunks)integration_tests/contracts/package.json(1 hunks)integration_tests/contracts/tsconfig.json(1 hunks)integration_tests/pytest.ini(1 hunks)nix/build_overlay.nix(1 hunks)nix/bundle-win-exe.nix(1 hunks)nix/default.nix(3 hunks)nix/go-ethereum.nix(2 hunks)nix/golangci-lint.nix(1 hunks)nix/hermes.nix(2 hunks)nix/rocksdb.nix(4 hunks)nix/sources.json(2 hunks)nix/testenv.nix(2 hunks)scripts/run-integration-tests(1 hunks)
⏰ 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). (19)
- GitHub Check: Run golangci-lint
- GitHub Check: integration_tests (slow)
- GitHub Check: integration_tests (gas)
- GitHub Check: integration_tests (mint)
- GitHub Check: integration_tests (upgrade)
- GitHub Check: integration_tests (evm)
- GitHub Check: integration_tests (ica)
- GitHub Check: integration_tests (gov)
- GitHub Check: integration_tests (ibc_rly_gas)
- GitHub Check: integration_tests (ibc)
- GitHub Check: integration_tests (ibc_update_client)
- GitHub Check: integration_tests (unmarked)
- GitHub Check: integration_tests (ibc_timeout)
- GitHub Check: integration_tests (ibc_rly_evm)
- GitHub Check: build (macos-14)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: build (macos-latest)
- GitHub Check: gomod2nix
- GitHub Check: unittest
🔇 Additional comments (47)
.gitignore (1)
28-28: LGTM! Appropriate ignore pattern for build artifacts.The
chain-main-*pattern correctly excludes generated build/test artifacts referenced in the build workflows and Makefile.integration_tests/contracts/package.json (1)
17-20: LGTM! Appropriate TypeScript tooling additions.The
ts-nodeandtypescriptdevDependencies correctly support the new TypeScript configuration for integration tests..github/workflows/semgrep.yml (1)
23-23: LGTM! Standard GitHub Actions upgrade.The update to
actions/checkout@v4is a standard version upgrade that aligns with the broader workflow modernization across the repository..github/workflows/gosec.yml (1)
19-19: LGTM! Consistent workflow modernization.The
actions/checkout@v4upgrade is appropriate and consistent with other workflow updates in this PR.go.mod (2)
306-306: LGTM! Routine dependency version bump.The ethermint version update from December 8 to December 10, 2025 appears to be a routine pseudo-version bump, likely incorporating recent upstream changes.
3-3: Go 1.25.0 is a valid syntax and correctly released.The go directive must be a valid Go version, such as 1.14, 1.21rc1, or 1.23.0, which means three-part versions with patch numbers (like 1.25.0) are accepted. Go 1.25 was officially released on August 12, 2025, so
go 1.25.0is both syntactically valid and reflects a stable release. While the syntax 1.N (e.g. 1.22) is called a "language version" denoting the overall family of Go releases, including the patch version is a common best practice that clearly specifies the minimum released version of that Go family..github/workflows/dependabot-update-all.yml (1)
29-29: Verify Go 1.25 availability.Same concern as in
dependencies-review.yml: please confirm Go 1.25 is officially released and production-ready before deploying these workflow changes..github/workflows/release.yml (1)
16-16: LGTM! Standard GitHub Actions upgrade.The
actions/checkout@v4upgrades are appropriate and widely adopted.Also applies to: 57-57
.github/workflows/dependencies-review.yml (1)
18-18: Go 1.25 is officially released and production-ready—no action needed.Go 1.25 is an officially released major version (released August 12, 2025), and Go 1.25.5 (released December 2, 2025) includes security fixes, confirming stability across multiple patch releases over the past four months. This release maintains Go 1's promise of compatibility, making it appropriate for production use in workflows.
.github/workflows/linkchecker.yml (1)
14-14: LGTM!The upgrade to
actions/checkout@v4is a standard maintenance update with improved performance and features..github/workflows/proto.yml (1)
16-16: LGTM!Consistent upgrade to
actions/checkout@v4across all three jobs (lint, breakage, protogen). This is a standard maintenance update.Also applies to: 27-27, 38-38
.github/workflows/sims.yml (2)
99-99: LGTM!Consistent upgrade to
actions/checkout@v4across all simulation test jobs. This is a standard maintenance update that improves performance and features.Also applies to: 107-107, 163-163, 171-171, 219-219, 227-227, 275-275, 283-283, 331-331, 339-339
111-113: Go 1.25.0 is officially released and compatible with actions/setup-go@v5.Go 1.25.0 was officially released on August 12, 2025 and actions/setup-go supports Go 1.25 with semantic version syntax. The workflow configuration is correct.
integration_tests/pytest.ini (1)
4-17: LGTM!The addition of pytest markers provides excellent test categorization capabilities, enabling selective test execution by category (IBC, governance, upgrades, etc.). This improves test suite maintainability and CI/CD efficiency.
nix/sources.json (2)
118-122: LGTM!The poetry2nix source update aligns with the nixpkgs upgrade and ensures compatibility with the new package set.
101-101: nixpkgs 25.11 compatibility is already addressed through explicit overlays.The upgrade to release-25.11 is supported by proactive compatibility fixes:
- Go 1.25 Windows support (build_overlay.nix:16): Explicitly overrides
go_1_24with Go 1.25 source to inherit Windows platform support, since native nixpkgs go_1_25 lacks Windows targets. This requires go_1_24 availability in nixpkgs 25.11.- solc-static-versions Darwin fix (build_overlay.nix:78): Uses pre-built macOS binaries for Darwin due to legacy SDK incompatibility in nixpkgs 25.11.
- go-ethereum Darwin support (go-ethereum.nix:60): Explicitly adds apple-sdk_15 for IOKit framework availability in nixpkgs 25.11.
- RocksDB and Windows cross-compilation: Already configured with proper platform definitions (x86_64-windows, i686-windows, aarch64-windows) and jemalloc disabled for Windows.
.github/workflows/codeql-analysis.yml (1)
47-47: Go 1.25.0 is officially released and stable. Go 1.25 was officially released on August 12, 2025, and is a major release of Go. Multiple patch releases (1.25.1 through 1.25.5) have been released with security and bug fixes, demonstrating the version's stability and active maintenance. This workflow version specification is safe to use.nix/bundle-win-exe.nix (1)
24-24: Verify the mcfgthread DLL version is correct for the updated toolchain.The Windows bundle correctly references
libmcfgthread-2.dll. This version is the current standard in mcfgthread and is available in all modern mingw-w64 toolchains, including those used by nixpkgs 25.11. The DLL is compatible with GCC 13+ (which has the MCF thread model integrated) and will not cause runtime loading failures.Makefile (1)
139-144: LGTM: Prune-based exclusion is more efficient.The revised approach excludes directories before searching, which is more efficient than the previous pattern-based exclusions. The syntax correctly uses
-pruneto skip the specified directories and.nixfiles from the remaining paths.scripts/run-integration-tests (1)
10-10: LGTM: npm ci ensures deterministic installs.Switching to
npm cimakes the installation deterministic by using package-lock.json, which is appropriate for CI environments and can reduce install time.nix/hermes.nix (1)
10-10: LGTM: Consolidated Darwin SDK dependencies.The update consolidates Darwin SDK dependencies into apple-sdk_15, replacing individual framework imports. This modernization aligns with similar changes in other nix files in this PR.
Also applies to: 48-51
.github/workflows/lint.yml (1)
26-26: LGTM: Consistent action and nixpkgs version updates.The updates to
actions/checkout@v4and nixpkgs channelnixos-25.11are applied consistently across all lint jobs (golangci, lint-python, lint-nix), aligning with the broader PR modernization efforts.Also applies to: 29-29, 65-65, 77-77, 92-92, 103-103
gomod2nix.toml (1)
326-329: LGTM: ethermint dependency updated.The evmos/ethermint version and hash have been updated, indicating a newer commit (timestamp moved from Dec 8 to Dec 10). The update aligns with the broader Go toolchain upgrade in this PR.
.github/workflows/test.yml (2)
28-28: LGTM: Consistent version updates across test workflows.The updates to
actions/checkout@v4and nixpkgs channelnixos-25.11are consistently applied across all test jobs (integration_tests, upload-cache, testground-test), maintaining uniformity with other workflow files.Also applies to: 40-40, 85-85, 97-97, 116-116, 121-121
67-67: LGTM: Go toolchain reference updated for coverage.The coverage conversion step now correctly references
go_1_25instead ofgo_1_22, ensuring the coverage tool uses the updated Go version.nix/golangci-lint.nix (1)
2-2: LGTM: Modernized Go toolchain override pattern.The derivation now uses buildGoModule with an explicit go_1_25 override instead of the version-specific
buildGo123Module. This is the standard Nix pattern for specifying custom Go versions and provides better flexibility for future toolchain updates.Also applies to: 6-6, 9-9
.github/workflows/build.yml (1)
22-22: Verified: Updated dependencies are valid and stable.The upgrades from
actions/checkout@v3tov4and nixpkgs channel fromnixos-22.11tonixos-25.11are confirmed. Both versions are valid, actively maintained, and align with the PR's goal of modernizing the toolchain.nix/go-ethereum.nix (1)
6-6: LGTM! Darwin SDK consolidation aligns with nixpkgs 25.11.The migration from individual frameworks (
libobjc,IOKit) toapple-sdk_15is the correct approach for nixpkgs 25.11, which consolidates all Darwin frameworks into unified SDK packages.Also applies to: 60-63
default.nix (2)
5-5: LGTM! Explicit Go toolchain injection.Explicitly passing
gothrough the inputs and intobuildGoApplicationensures the build uses the overriddengo_1_25from the overlay rather than relying on implicit defaults.Also applies to: 43-44
60-60: LGTM!modRootconfiguration for gomod2nix.Setting
modRoot = "."is required for gomod2nix to correctly locate the Go module root directory.flake.nix (2)
92-106: LGTM! Overlay composition and Go 1.25 upgrade.The overlay correctly:
- Replaces the default gomod2nix overlay with the custom
gomodOverlay- Upgrades Go to 1.25 via
go = final.go_1_25- Uses
finalfortest-envto access the fully composed package set
3-3: nixpkgs release-25.11 is stable and released.The nixpkgs-25.11 release (under the codename "Xantusia") is publicly available, with support for bugfixes and security updates for seven months (up until 2026-06-30). This is a stable production branch, not a future release.
nix/testenv.nix (2)
7-30: LGTM! rpds-py Cargo vendor fix for source builds.The
customPoetry2nixoverride correctly handlesrpds-pysource builds by:
- Fetching Cargo vendor dependencies with
fetchCargoVendor- Adding necessary Rust toolchain (
cargo,rustc) tonativeBuildInputs- Only applying when building from source (
!(old.src.isWheel or false))
61-74: LGTM! License field format fixes for pyproject.toml compatibility.The
postPatchmodifications correctly handle the license field format changes required by newer Python packaging standards, converting inline license strings to the table format.nix/build_overlay.nix (4)
22-36: LGTM! Patch filtering and manual iana-etc substitution.The approach of filtering out the incompatible
iana-etc-1.17.patchand applying substitutions manually viapostPatchis a valid workaround for Go 1.25 compatibility.
37-51: Complex fallback logic for MinGW cross-compilation.The
depsTargetTargetlogic handles multiple scenarios for finding the threads package in cross-compilation:
targetPackages.threads.package(standard path)targetPackages.windows.pthreads(fallback for LLVM-based toolchains)The defensive null checks are appropriate for handling varying toolchain configurations.
12-21: Go 1.25.0 release confirmed with valid source URL.Go 1.25.0 is a major release of Go, announced on 12 August 2025. The source tarball URL follows the correct pattern. While the hash cannot be verified from public sources (Go does not publish checksums in easily accessible machine-readable formats), the existence of multiple stable patch versions (1.25.1 through 1.25.5) confirms the 1.25 branch is legitimate.
78-113: Clarify solc binary architecture support and URL availability.The Darwin workaround uses x86_64-only macOS binaries for solc 0.6.8, which requires Rosetta on Apple Silicon. However, solc 0.8.21 runs natively on ARM64, so the v0.8.21 binary should work without translation. Additionally, verify that the GitHub release URLs for both versions are accessible and remain stable, as older release artifacts may have limited availability.
nix/default.nix (4)
13-31: LGTM - Go 1.25 upgrade with chain-maind workaround.The overlay correctly upgrades the Go toolchain to 1.25 and applies necessary overrides for
chain-maind. Thego_1_23 = final.buildPackages.go_1_25mapping is a reasonable workaround to make the upstream chain-main package use the new Go version without requiring upstream changes.
33-45: LGTM - gomod2nix integration with modRoot fix.The overlay properly sets up gomod2nix tooling and applies the
modRoot = "."override to address the same gomod2nix builder issue referenced for chain-maind.
85-95: LGTM - rly package using buildGoModule.The switch to
buildGoModulealigns with the Go 1.25 upgrade and follows standard Nix Go packaging conventions.
82-82: Thepkgsargument should remain.testenv.nixexplicitly declarespkgsas a required function argument, making theinherit pkgspass-through necessary and not redundant.Likely an incorrect or invalid review comment.
nix/rocksdb.nix (5)
107-111: LGTM - ABI-safe memcpy fix.The explicit
static_cast<void*>addresses potential issues withstd::memcpyon non-trivially copyable types, ensuring ABI compatibility across compilers.
127-128: Verify awk pattern escaping for objdump parsing.In Nix strings,
\\+becomes the literal\+passed to awk. Ensure this correctly matches the objdump output format. The pattern/\+base/expects a literal+character, which is correct for Windows PE export tables.
61-73: LGTM - Platform-specific compiler warning suppression.The warning flags appropriately handle GCC 12+ and Clang-specific diagnostics. The
-faligned-allocationflag for Clang ensures proper C++17 aligned allocation support.
113-172: Comprehensive MinGW LZ4 workaround.This is a well-structured workaround for MinGW's stub import library issue. The approach of regenerating a correct import library from the actual DLL using
objdump/dlltooland providing both pkgconfig and CMake config files ensures proper library discovery.
19-19: TheenableLiteparameter and ROCKSDB_LITE CMake flag are correctly implemented in this Nix derivation and remain functional in RocksDB 10.5.1. The ROCKSDB_LITE option has not been removed from RocksDB.Likely an incorrect or invalid review comment.
| - uses: actions/setup-go@v5 | ||
| with: | ||
| go-version: '1.22.7' | ||
| - uses: actions/checkout@v3 | ||
| go-version: '1.25.0' |
There was a problem hiding this comment.
Go 1.25.0 is officially available; consider upgrading to setup-go@v6 for better compatibility.
Go 1.25.0 is a major release of Go and is fully available. However, setup-go@v6 is the current major version and current documentation emphasizes setup-go@v6. While setup-go@v5 should technically resolve Go 1.25.0, upgrading to @v6 aligns with the recommended tooling and ensures better forward compatibility with future Go releases.
🤖 Prompt for AI Agents
.github/workflows/lint.yml around lines 23 to 25: the workflow pins
actions/setup-go to v5 while Go 1.25.0 is current and setup-go@v6 is the
recommended major version; update the action reference to actions/setup-go@v6 to
align with current tooling and ensure compatibility, and verify the go-version
input remains '1.25.0' (or adjust to a desired supported version) and run the
workflow to confirm no breaking changes from the major-version bump.
| - uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2 | ||
| with: | ||
| nix_path: nixpkgs=channel:nixos-22.11 | ||
| nix_path: nixpkgs=channel:nixos-25.11 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Get the workflow file
git ls-files '.github/workflows/' | head -20Repository: crypto-org-chain/cronos
Length of output: 621
🏁 Script executed:
#!/bin/bash
# Read the release.yml workflow file
cat -n .github/workflows/release.yml | head -80Repository: crypto-org-chain/cronos
Length of output: 3244
🏁 Script executed:
#!/bin/bash
# Check for nix configuration files
fd -t f '(flake|default|shell)\.nix' || echo "No standard nix config files found"
# Check scripts/release.sh
wc -l scripts/release.sh
head -50 scripts/release.shRepository: crypto-org-chain/cronos
Length of output: 2084
🏁 Script executed:
#!/bin/bash
# Check the main flake.nix
wc -l flake.nix
head -100 flake.nix
echo "---"
# Also check default.nix
wc -l default.nix
head -100 default.nixRepository: crypto-org-chain/cronos
Length of output: 5250
🏁 Script executed:
#!/bin/bash
# Check the build overlay for any specific compiler versions
cat nix/build_overlay.nix
echo "---"
# Also check nix/cronos-matrix.nix
cat nix/cronos-matrix.nix | head -80Repository: crypto-org-chain/cronos
Length of output: 5649
🏁 Script executed:
#!/bin/bash
# Check if there are any recent commits changing flake.nix or release.yml
git log --oneline --max-count=20 -- flake.nix .github/workflows/release.yml
echo "---"
# Check the git history for nix_path changes
git log -p --max-count=5 -- .github/workflows/release.yml | grep -A5 -B5 "nix_path"Repository: crypto-org-chain/cronos
Length of output: 96
🏁 Script executed:
#!/bin/bash
# Check the exact git log for recent nix-related changes
git log --oneline --all | grep -i "nix\|25.11\|22.11" | head -20
echo "---"
# Get more details on the actual current state
git log --oneline -1
echo "---"
# Check if there are any comments or issues in the workflow file
grep -n "25.11\|22.11\|macos" .github/workflows/release.ymlRepository: crypto-org-chain/cronos
Length of output: 1647
Update macOS runners to meet nixpkgs 25.11 requirements.
Nixpkgs 25.11 is publicly available, and the project's flake.nix already pins to this version. However, Nixpkgs 25.11 requires macOS Sonoma 14 or newer, which means the macOS-13 runner in the workflow (line 53) is incompatible and will likely fail. Update the runners to use only macos-14 or newer, or specify a compatible nixpkgs version for the macOS-13 environment. Ensure the release build completes successfully with the updated configuration before merging.
🤖 Prompt for AI Agents
In .github/workflows/release.yml around line 19 (nix_path:
nixpkgs=channel:nixos-25.11) and the macOS runner definition near line 53, the
workflow pins nixpkgs 25.11 which requires macOS Sonoma (macos-14) and is
incompatible with the macos-13 runner; update the macOS runner(s) to macos-14
(or newer) so they match nixpkgs 25.11, or alternatively for that specific job
change the nixpkgs pin to a version compatible with macos-13; after making the
change, run the release workflow locally or in CI to verify the build completes
successfully before merging.
| src = nix-gitignore.gitignoreSourcePure [ | ||
| "/*" # ignore all, then add whitelists | ||
| "!/x/" | ||
| "!/app/" | ||
| "!/cmd/" | ||
| "!/client/" | ||
| "!/versiondb/" | ||
| "!/memiavl/" | ||
| "!/store/" | ||
| "!go.mod" | ||
| "!go.sum" | ||
| "!gomod2nix.toml" | ||
| ] ./.; |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: List top-level directories to verify all Go source directories are whitelisted
# List top-level directories containing .go files
echo "=== Top-level directories with Go source files ==="
fd -t f -e go --max-depth 2 | sed 's|/[^/]*$||' | sort -u
echo ""
echo "=== Checking for any Go files outside whitelisted dirs ==="
# Check if there are Go files outside the whitelisted directories
fd -t f -e go | grep -vE '^(x|app|cmd|client|versiondb|memiavl|store)/' | head -20Repository: crypto-org-chain/cronos
Length of output: 225
Add missing source directories to the gitignore whitelist.
The whitelist is incomplete. Go source files exist in docs/ (docs/docs.go) and testutil/ (testutil/simapp/simapp.go) directories that are not whitelisted. Add these directories to ensure all source code is included:
src = nix-gitignore.gitignoreSourcePure [
"/*" # ignore all, then add whitelists
"!/x/"
"!/app/"
"!/cmd/"
"!/client/"
"!/versiondb/"
"!/memiavl/"
"!/store/"
"!/docs/"
"!/testutil/"
"!go.mod"
"!go.sum"
"!gomod2nix.toml"
] ./.;
🤖 Prompt for AI Agents
In default.nix around lines 46 to 58 the gitignore whitelist omits directories
containing Go sources (docs/ and testutil/) so those files are excluded; update
the nix-gitignore.gitignoreSourcePure whitelist to add "!/docs/" and
"!/testutil/" alongside the existing entries so the docs and testutil
directories are included in the src set.
| "@openzeppelin/contracts": "^5.1.0", | ||
| "@typechain/ethers-v5": "^5.0.0", | ||
| "account-abstraction": "github:eth-infinitism/account-abstraction#v0.8.0", | ||
| "hardhat": "^2.22.0", |
There was a problem hiding this comment.
🛠️ Refactor suggestion | 🟠 Major
Move hardhat back to devDependencies.
Hardhat is a development and testing framework, not a runtime dependency. Keeping it in dependencies unnecessarily increases the production bundle size and creates confusion about the package's actual runtime requirements.
🔎 Apply this diff to move hardhat to devDependencies:
"dependencies": {
"@openzeppelin/contracts": "^5.1.0",
"@typechain/ethers-v5": "^5.0.0",
"account-abstraction": "github:eth-infinitism/account-abstraction#v0.8.0",
- "hardhat": "^2.22.0",
"hardhat-typechain": "^0.3.5",
"ts-generator": "^0.1.1",
"typechain": "^4.0.3"
},
"devDependencies": {
+ "hardhat": "^2.22.0",
"ts-node": "^10.9.2",
"typescript": "^5.0.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.
| "hardhat": "^2.22.0", | |
| "dependencies": { | |
| "@openzeppelin/contracts": "^5.1.0", | |
| "@typechain/ethers-v5": "^5.0.0", | |
| "account-abstraction": "github:eth-infinitism/account-abstraction#v0.8.0", | |
| "hardhat-typechain": "^0.3.5", | |
| "ts-generator": "^0.1.1", | |
| "typechain": "^4.0.3" | |
| }, | |
| "devDependencies": { | |
| "hardhat": "^2.22.0", | |
| "ts-node": "^10.9.2", | |
| "typescript": "^5.0.0" | |
| }, |
🤖 Prompt for AI Agents
In integration_tests/contracts/package.json around line 12, hardhat is listed
under "dependencies" but should be a dev-only tool; remove the "hardhat":
"^2.22.0" entry from the dependencies section and add the exact same entry under
"devDependencies" (or run npm/yarn with --save-dev to move it). Keep the version
string "^2.22.0" unchanged and ensure the package.json remains valid JSON
(commas adjusted) after the move.
👮🏻👮🏻👮🏻 !!!! REFERENCE THE PROBLEM YOUR ARE SOLVING IN THE PR TITLE AND DESCRIBE YOUR SOLUTION HERE !!!! DO NOT FORGET !!!! 👮🏻👮🏻👮🏻
PR Checklist:
make)make test)go fmt)golangci-lint run)go list -json -m all | nancy sleuth)Thank you for your code, it's appreciated! :)
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.