Skip to content

feat(runloop): vendor the eest-runner harness as monad-runloop - #57

Open
pdobacz wants to merge 3 commits into
forks/monad_ninefrom
feat/vendor-monad-runloop-harness
Open

feat(runloop): vendor the eest-runner harness as monad-runloop#57
pdobacz wants to merge 3 commits into
forks/monad_ninefrom
feat/vendor-monad-runloop-harness

Conversation

@pdobacz

@pdobacz pdobacz commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Sunsets the monad-eest-rust-harness repo. Everything in the diff under monad-runloop is that repo's code, slightly adjusted

Greptile Summary

The PR vendors the runloop harness into this repository and updates the release-consumption workflow to build against the vendored stack.

  • Adds the Rust harness, wrappers, builder image, initialization script, and monad-bft submodule under monad-runloop/.
  • Updates the workflow to initialize the stack locally and preserve explicitly requested monad-bft and monad-execution overrides.
  • Integrates the vendored runner with the Python testing package and project configuration.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
.github/workflows/consume_release.yaml Migrates release consumption to the vendored harness and uses targeted initialization modes that preserve requested stack overrides.
monad-runloop/init-stack.sh Initializes the nested stack while allowing the workflow to retain an overridden monad-bft or monad-execution checkout.
monad-runloop/build.sh Builds the vendored Rust harness and Monad execution artifacts through the repository-local builder setup.
packages/testing/src/execution_testing/client_clis/clis/monad.py Integrates fixture consumption with the newly vendored monad-runloop harness.
monad-runloop/rust-harness/runloop/src/runloop.rs Vendors the runloop execution orchestration used by the fixture runner.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  Checkout[Checkout execution-specs] --> Init[Initialize pinned monad-bft and monad-execution]
  Init --> BftChoice{monad-bft override?}
  BftChoice -->|Yes| BftOverride[Checkout requested monad-bft]
  BftOverride --> KeepBft[Initialize with --keep bft]
  BftChoice -->|No| ExecChoice{monad-execution override?}
  KeepBft --> ExecChoice
  ExecChoice -->|Yes| ExecOverride[Checkout requested monad-execution]
  ExecOverride --> KeepExec[Initialize with --keep exec]
  ExecChoice -->|No| Build[Build vendored runloop]
  KeepExec --> Build
  Build --> Consume[Consume fixture release]
Loading

Reviews (2): Last reviewed commit: "fix(ci): keep stack overrides from being..." | Re-trigger Greptile

The monad stack comes in as one submodule pinned at upstream monad-bft
master, whose monad-execution pin carries the EEST entry points.

Co-Authored-By: Claude <claude-opus-5>
init-stack.sh skips three of monad's 23 third_party submodules that no
CMakeLists in the default build reads, taking the stack from ~3.6 GB to
~300 MB. A guard fails the checkout if a skipped path becomes
referenced.

Co-Authored-By: Claude <claude-opus-5>
@pdobacz
pdobacz requested review from QEDK and mijovic as code owners September 4, 2026 09:40
@socket-security

socket-security Bot commented Sep 4, 2026

Copy link
Copy Markdown

Comment thread .github/workflows/consume_release.yaml Outdated
git submodule update returns a submodule to the recorded gitlink, so
calling init-stack.sh after an override reverted it and the run tested
the pinned stack. --keep names the level already checked out.

Co-Authored-By: Claude <claude-opus-5>
@pdobacz

pdobacz commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator Author

Verified to consume tests correctly in https://github.com/monad-developers/execution-specs/actions/runs/33860795778

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.

1 participant