chore: migrate root Makefile to justfile#19477
Conversation
14de15f to
5e8004e
Compare
Wiz Scan Summary
To detect these findings earlier in the dev lifecycle, try using Wiz Code VS Code Extension. |
f29f080 to
ac12acf
Compare
5e8004e to
7d3bec3
Compare
ac12acf to
e97849d
Compare
0f7fa35 to
1739da5
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #19477 +/- ##
===========================================
+ Coverage 75.3% 75.8% +0.5%
===========================================
Files 194 477 +283
Lines 11285 59985 +48700
===========================================
+ Hits 8502 45506 +37004
- Misses 2639 14479 +11840
+ Partials 144 0 -144
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
1e19f45 to
cf8a75d
Compare
1739da5 to
12e44a5
Compare
cf8a75d to
ccc870a
Compare
12e44a5 to
7fa2ea1
Compare
ccc870a to
ef6564d
Compare
7fa2ea1 to
ecf46fb
Compare
ef6564d to
945b5e3
Compare
ecf46fb to
f42c9d3
Compare
sebastianst
left a comment
There was a problem hiding this comment.
Review: root Makefile → justfile migration
This is a large but straightforward migration. All original Make targets are replicated in the justfile, and the pre-existing justfile targets (release-notes, shellcheck, etc.) are preserved. A few items:
1. PR description says op-e2e/justfile was updated — it wasn't
The description says "Updates op-e2e/justfile to use cd .. && just cannon-prestates instead of make -C .." but the op-e2e/justfile has no changes in this PR's commits (945b5e3b6e..f42c9d3f71). The op-e2e justfile still has make -C .. cannon-prestates.
2. Several targets still round-trip through Make shims
Targets like cannon, op-program, op-challenger, op-dispute-mon still call make -C ./subdir target. Since cannon and op-program already have deprecated Make shims (from earlier PRs in the stack), the flow is just cannon → make -C ./cannon cannon → deprecated shim → just cannon. Not a bug, but an unnecessary indirection that could be cleaned up (e.g. cd cannon && just cannon). Same for reproducible-prestate-op-program, op-program-client, op-program-host, make-pre-test, generate-mocks-op-node, generate-mocks-op-service, and test-unit.
3. mod-tidy dropped the explanatory comment
The original had a useful comment explaining why GOPRIVATE is set (bypasses the Go module proxy for freshly released versions). Minor, but the comment was helpful context.
Things that look good
update-op-gethrenamed correctly: Pre-existingupdate-op-geth ref(bash script) renamed toupdate-op-geth-refto avoid conflict with the Make target'supdate-op-geth(Python script). Both preserved.cross-op-nodeGIT_VERSION computation: Faithfully reproduced in bash. Actually cleaner — the Make version used$(GITCOMMIT)which wasn't defined in the root Makefile scope; the just version computes it fresh withgit rev-parse HEAD._go-tests-ci-internalflags as positional param: Works fine since bash word-splits the string. No current flags contain spaces.go-tests-fraud-proofs-ci: Correctly setsOP_E2E_CANNON_ENABLED="true"(vs "false" in the regular test targets) and includes all CI env vars.ALL_TEST_PACKAGESconstruction: String concatenation produces identical result.helptarget:just --listis a clean replacement for the grep-based Make help.- CI test infrastructure (
go-tests-ci,go-tests-short-ci,go-tests-ci-kona-action,go-tests-fraud-proofs-ci): All faithfully replicated including CircleCI node sharding logic. - CONTRIBUTING.md: Clean update.
Review generated by Claude Code
f42c9d3 to
79184e5
Compare
0ad8729 to
c01848c
Compare
79184e5 to
43e1e93
Compare
c01848c to
c2b4af4
Compare
996889c to
a74e5f5
Compare
|
Restored the parallel build of prestates. It just uses basic bash wait rather than parallel to avoid an extra dependency. |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d shim The deprecated.mk shim was changed to pass JUSTFLAGS as just CLI variable overrides (`just VAR=val target`), but just rejects overrides for variables not declared in the justfile. This broke CI jobs where Make variable assignments propagate through sub-makes (e.g. GO_TEST_FLAGS, GUEST_PROGRAM). Revert to passing them as environment variables via `env`, which is how the shim originally worked in the cannon migration PR. Fixes: go-tests-short, sanitize-op-program CI failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Migrate root build targets from Make to Just. The Makefile now delegates to just with a deprecation warning, preserving backwards compatibility for existing make invocations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
All subdirectories now have justfiles with deprecated Make shims, so convert remaining make -C calls to cd && just. Also restores the explanatory comment on mod-tidy's GOPRIVATE usage. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
just doesn't parallelize dependencies like make -j does. Use background processes with wait to run op-program and kona prestate builds concurrently. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The cd into cannon/ was changing the CWD for the rest of the script, causing gotestsum to run from cannon/ instead of the repo root. The original Makefile used $(MAKE) -C which spawns a subprocess. Use a subshell to match that behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The bare `cd op-program` on line 180 changed cwd persistently, so the following `cd rust` tried to resolve `op-program/rust/` which doesn't exist. Wrap both in subshells to preserve the original working directory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
b8b50f9 to
f9af61b
Compare
These directories were removed in #19506 but the justfile still referenced them, causing go-tests-short-ci to fail with "lstat ./devnet-sdk/: no such file or directory". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
justfile, including build targets, Docker targets, test runners, and CI-specific test infrastructureMakefilewith the standard deprecated shim (justfiles/deprecated.mk) that forwardsmakeinvocations tojustwith a deprecation warningmake -C ./subdir targetcalls tocd subdir && just target— all subdirectories already have justfiles with deprecated Make shimssemgrep-citarget (usessemgrep ciwith develop baseline) alongside the existingsemgreptarget (usessemgrep scan)op-e2e/justfileto usecd .. && just cannon-prestatesinstead ofmake -C ..mod-tidyStack
Test plan
just --listat repo root shows all migrated targetsmake buildtriggers the deprecation shim and delegates tojust buildgo-tests-ci,go-tests-short-ci,go-tests-fraud-proofs-ci) work correctly in CircleCI🤖 Generated with Claude Code