Skip to content

chore: migrate rust/op-reth Makefiles to just#19525

Merged
ajsutton merged 8 commits intodevelopfrom
aj/chore/migrate-op-reth-makefiles-to-just
Mar 17, 2026
Merged

chore: migrate rust/op-reth Makefiles to just#19525
ajsutton merged 8 commits intodevelopfrom
aj/chore/migrate-op-reth-makefiles-to-just

Conversation

@ajsutton
Copy link
Contributor

Summary

  • Ported all targets from the three Makefiles under rust/op-reth/ to justfiles, following the same deprecation shim pattern used by Go packages
  • rust/op-reth/justfile: expanded with all targets from the Makefile — build, install, cross-compilation (via parameterized build-cross/build-native recipes), docker build+push, lint (fmt, clippy, typos, toml), test, profiling, and release tarball creation
  • rust/op-reth/tests/justfile: new file with Go e2e test targets (build, build-contracts, build-bedrock-contracts, test-e2e-sysgo)
  • rust/op-reth/crates/tests/justfile: new file with Go e2e + docker build targets (build, build-docker, build-docker-with-cov, build-contracts, unzip-contract-artifacts, update-packages, test-e2e-sysgo)
  • All three original Makefiles replaced with deprecation shims that list targets and include justfiles/deprecated.mk to print warnings and forward to just
  • Updated .circleci/continue/rust-e2e.yml to use just test-e2e-sysgo instead of make test-e2e-sysgo

Test plan

  • Verify just --list works in each of the three directories
  • Run make build in rust/op-reth/ and confirm deprecation warning appears and forwards to just build
  • Verify CI passes with the updated just test-e2e-sysgo command
  • Spot-check key recipes: just lint, just build, just test-unit

🤖 Generated with Claude Code

@ajsutton ajsutton requested a review from a team as a code owner March 13, 2026 05:20
@ajsutton ajsutton force-pushed the aj/chore/migrate-op-reth-makefiles-to-just branch from a3f6d9e to 9f66d34 Compare March 13, 2026 05:59
@codecov
Copy link

codecov bot commented Mar 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 75.5%. Comparing base (1da6839) to head (93b4470).
⚠️ Report is 13 commits behind head on develop.

Additional details and impacted files
@@            Coverage Diff             @@
##           develop   #19525     +/-   ##
==========================================
- Coverage     75.6%    75.5%   -0.1%     
==========================================
  Files          675      675             
  Lines        71571    71571             
==========================================
- Hits         54111    54069     -42     
- Misses       17316    17358     +42     
  Partials       144      144             
Flag Coverage Δ
cannon-go-tests-64 66.4% <ø> (ø)
contracts-bedrock-tests 80.2% <ø> (ø)
unit 75.5% <ø> (-0.1%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 8 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

ajsutton added a commit that referenced this pull request Mar 15, 2026
The large-kona-sequencer devnet config spins up 9 nodes (1 kona
sequencer with reth + 4 kona validators with reth + 4 kona validators
with geth). On xlarge (8 vCPU, 16GB RAM) the container is consistently
killed by the OOM killer before any test step runs, producing failures
with no visible failed steps.

Split large-kona-sequencer out of the matrix and give it 2xlarge
(16 vCPU, 32GB RAM) to accommodate the memory requirements of the
full devnet.

Fixes flaky failures on #19548 (job 4581496)
and #19525 (job 4581006).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ajsutton and others added 4 commits March 15, 2026 02:51
Port all targets from the three Makefiles under rust/op-reth/ to
justfiles, following the same deprecation pattern used by Go packages.

- rust/op-reth/justfile: expanded with all targets from the Makefile
  (build, install, cross-compilation, docker, lint, test, profiling)
- rust/op-reth/tests/justfile: new file with Go e2e test targets
- rust/op-reth/crates/tests/justfile: new file with Go e2e + docker targets
- All three Makefiles replaced with deprecation shims that forward to just
- CI updated to use `just test-e2e-sysgo` instead of `make test-e2e-sysgo`

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Address review feedback: use env() for FEATURES so that
docker-build-push-tags can override it in sub-invocations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… targets

- Wrap `cd BIN_DIR` in subshells so cwd doesn't persist across
  subsequent just/cp commands in the bash shebang block
- Remove build-native and build-cross from deprecated targets — these
  are parameterized just recipes that require a target argument and
  didn't exist as standalone Make targets (the original had pattern
  rules build-native-% and build-%)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The generic deprecated-target macro can't handle Make pattern rules.
Add manual shims that forward make build-native-<target> to
just build-native <target> and make build-<target> to
just build-cross <target>, matching the original Makefile behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ajsutton ajsutton force-pushed the aj/chore/migrate-op-reth-makefiles-to-just branch from 3219b3f to 678f7a5 Compare March 15, 2026 02:51
ajsutton and others added 3 commits March 17, 2026 07:25
Update all three READMEs under rust/op-reth/ to reference `just` recipes
instead of `make` targets. Also fix the tests/README.md which described
a stale Kurtosis-based workflow that no longer matched the actual Makefile
targets — replaced with the current sysgo-based workflow matching the
justfile. Remove the stale `make ef-tests` reference from the main README
(no such target existed in the Makefile or justfile).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Wrap bare `go test` invocations with `gotestsum --junitfile` in the
kona tests justfile and op-reth tests Makefile so that all rust-e2e CI
jobs produce JUnit XML. Add `store_test_results` and `store_artifacts`
steps to all 4 jobs in rust-e2e.yml so CircleCI Test Insights can
surface per-test timing, flake detection, and failure details.

The kona-proof-action-tests job already produced JUnit XML via
gotestsum but never uploaded it — this change adds the missing CI
upload steps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ajsutton ajsutton enabled auto-merge March 16, 2026 23:24
@ajsutton ajsutton added this pull request to the merge queue Mar 16, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Mar 17, 2026
@ajsutton ajsutton added this pull request to the merge queue Mar 17, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Mar 17, 2026
Copy link
Member

@theochap theochap left a comment

Choose a reason for hiding this comment

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

Looks good provided CI pass, thanks for taking care of it

…st-results

chore(ci): capture JUnit XML test results for rust-e2e jobs
@ajsutton ajsutton enabled auto-merge March 17, 2026 02:38
@ajsutton ajsutton added this pull request to the merge queue Mar 17, 2026
Merged via the queue into develop with commit ba64213 Mar 17, 2026
280 checks passed
@ajsutton ajsutton deleted the aj/chore/migrate-op-reth-makefiles-to-just branch March 17, 2026 03:29
ClaytonNorthey92 pushed a commit to hemilabs/optimism that referenced this pull request Mar 19, 2026
* chore: migrate rust/op-reth Makefiles to just

Port all targets from the three Makefiles under rust/op-reth/ to
justfiles, following the same deprecation pattern used by Go packages.

- rust/op-reth/justfile: expanded with all targets from the Makefile
  (build, install, cross-compilation, docker, lint, test, profiling)
- rust/op-reth/tests/justfile: new file with Go e2e test targets
- rust/op-reth/crates/tests/justfile: new file with Go e2e + docker targets
- All three Makefiles replaced with deprecation shims that forward to just
- CI updated to use `just test-e2e-sysgo` instead of `make test-e2e-sysgo`

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: make FEATURES overridable via env in op-reth justfile

Address review feedback: use env() for FEATURES so that
docker-build-push-tags can override it in sub-invocations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: subshell cd in build-release-tarballs, remove invalid deprecated targets

- Wrap `cd BIN_DIR` in subshells so cwd doesn't persist across
  subsequent just/cp commands in the bash shebang block
- Remove build-native and build-cross from deprecated targets — these
  are parameterized just recipes that require a target argument and
  didn't exist as standalone Make targets (the original had pattern
  rules build-native-% and build-%)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add manual shims for build-% and build-native-% pattern rules

The generic deprecated-target macro can't handle Make pattern rules.
Add manual shims that forward make build-native-<target> to
just build-native <target> and make build-<target> to
just build-cross <target>, matching the original Makefile behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix default target.

* docs: update op-reth READMEs to reflect make-to-just migration

Update all three READMEs under rust/op-reth/ to reference `just` recipes
instead of `make` targets. Also fix the tests/README.md which described
a stale Kurtosis-based workflow that no longer matched the actual Makefile
targets — replaced with the current sysgo-based workflow matching the
justfile. Remove the stale `make ef-tests` reference from the main README
(no such target existed in the Makefile or justfile).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore(ci): capture JUnit XML test results for rust-e2e jobs

Wrap bare `go test` invocations with `gotestsum --junitfile` in the
kona tests justfile and op-reth tests Makefile so that all rust-e2e CI
jobs produce JUnit XML. Add `store_test_results` and `store_artifacts`
steps to all 4 jobs in rust-e2e.yml so CircleCI Test Insights can
surface per-test timing, flake detection, and failure details.

The kona-proof-action-tests job already produced JUnit XML via
gotestsum but never uploaded it — this change adds the missing CI
upload steps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: theo <80177219+theochap@users.noreply.github.com>
ClaytonNorthey92 pushed a commit to hemilabs/optimism that referenced this pull request Mar 23, 2026
* chore: migrate rust/op-reth Makefiles to just

Port all targets from the three Makefiles under rust/op-reth/ to
justfiles, following the same deprecation pattern used by Go packages.

- rust/op-reth/justfile: expanded with all targets from the Makefile
  (build, install, cross-compilation, docker, lint, test, profiling)
- rust/op-reth/tests/justfile: new file with Go e2e test targets
- rust/op-reth/crates/tests/justfile: new file with Go e2e + docker targets
- All three Makefiles replaced with deprecation shims that forward to just
- CI updated to use `just test-e2e-sysgo` instead of `make test-e2e-sysgo`

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: make FEATURES overridable via env in op-reth justfile

Address review feedback: use env() for FEATURES so that
docker-build-push-tags can override it in sub-invocations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: subshell cd in build-release-tarballs, remove invalid deprecated targets

- Wrap `cd BIN_DIR` in subshells so cwd doesn't persist across
  subsequent just/cp commands in the bash shebang block
- Remove build-native and build-cross from deprecated targets — these
  are parameterized just recipes that require a target argument and
  didn't exist as standalone Make targets (the original had pattern
  rules build-native-% and build-%)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add manual shims for build-% and build-native-% pattern rules

The generic deprecated-target macro can't handle Make pattern rules.
Add manual shims that forward make build-native-<target> to
just build-native <target> and make build-<target> to
just build-cross <target>, matching the original Makefile behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix default target.

* docs: update op-reth READMEs to reflect make-to-just migration

Update all three READMEs under rust/op-reth/ to reference `just` recipes
instead of `make` targets. Also fix the tests/README.md which described
a stale Kurtosis-based workflow that no longer matched the actual Makefile
targets — replaced with the current sysgo-based workflow matching the
justfile. Remove the stale `make ef-tests` reference from the main README
(no such target existed in the Makefile or justfile).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore(ci): capture JUnit XML test results for rust-e2e jobs

Wrap bare `go test` invocations with `gotestsum --junitfile` in the
kona tests justfile and op-reth tests Makefile so that all rust-e2e CI
jobs produce JUnit XML. Add `store_test_results` and `store_artifacts`
steps to all 4 jobs in rust-e2e.yml so CircleCI Test Insights can
surface per-test timing, flake detection, and failure details.

The kona-proof-action-tests job already produced JUnit XML via
gotestsum but never uploaded it — this change adds the missing CI
upload steps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: theo <80177219+theochap@users.noreply.github.com>
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.

3 participants