feat(test-suite): replace fhevm bash cli with Bun runtime#2066
Closed
feat(test-suite): replace fhevm bash cli with Bun runtime#2066
Conversation
Eikix
commented
Mar 9, 2026
7408594 to
a651dc5
Compare
Contributor
eudelins-zama
left a comment
There was a problem hiding this comment.
Just a small note to say it would be nice to merge this feature branch first to avoid handling conflicts with this one 😇
Contributor
Author
|
@claude /pr-review |
Contributor
|
@cla-bot check |
|
The cla-bot has been summoned, and re-checked this pull request! |
4b82c14 to
8fce5b0
Compare
Contributor
Author
|
Opened a sacrificial draft PR to exercise the merge-queue-style E2E orchestration on the same head commit as this PR: #2087 It is draft-only and should not be merged. Once we have the workflow signal, we can close it. |
aab6a5e to
fcff473
Compare
Eikix
commented
Mar 11, 2026
Eikix
commented
Mar 18, 2026
Contributor
Author
|
@claude /pr-review |
|
Claude timed out while processing the request. — View run |
Eikix
commented
Mar 19, 2026
| - name: Show logs on test failure | ||
| working-directory: test-suite/fhevm | ||
| if: always() | ||
| if: failure() |
Eikix
commented
Mar 19, 2026
| ZKPROOF_WORKER_VERSION: ${{ inputs.zkproof_worker_version }} | ||
| run: | | ||
| ./fhevm-cli deploy --coprocessors 2 --coprocessor-threshold 2 | ||
| ./fhevm-cli up --target latest-main --scenario ./scenarios/two-of-two.yaml |
Contributor
Author
There was a problem hiding this comment.
can we use the short form here ./fhevm-cli up --target latest-main --scenario two-of-two
Eikix
commented
Mar 19, 2026
| - name: Show logs on test failure | ||
| working-directory: test-suite/fhevm | ||
| if: always() | ||
| if: failure() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes https://github.com/zama-ai/fhevm-internal/issues/1042
Summary
Replace the legacy
test-suite/fhevm/fhevm-clibash workflow with a Bun-native TypeScript CLI.The new CLI makes target selection, runtime generation, resume, local builds, upgrade flows, and multicopro scenarios explicit and reproducible instead of relying on bash defaults and workflow-specific behavior.
User-facing changes
latest-supportedlatest-mainsha --sha <git-sha>devnettestnetmainnetlatest-supportedas a tracked maintained bundle profile:test-suite/fhevm/profiles/latest-supported.jsonlatest-mainas the moving mainline baseline:src/presets.ts.fhevm/locks.fhevm/state.jsoncoprocessorkms-connectorgateway-contractshost-contractstest-suitecoprocessorkms-connectortest-suite--buildas the full local-workspace path:upgrade <group>for active runtime overrides:coprocessorkms-connectortest-suitefhevm-cli up --scenario ./scenarios/two-of-two.yaml--override coprocessoras the fast local-dev shorthanddeployas an alias forupdoctorin favor ofup --dry-runArchitecture
Tracked inputs are now split by ownership:
test-suite/fhevm/docker-compose/: base compose truthtest-suite/fhevm/templates/: tracked templates rendered by the CLItest-suite/fhevm/static/: tracked config mounted as-istest-suite/fhevm/scenarios/: checked-in consensus/matrix inputstest-suite/fhevm/profiles/: tracked maintained bundle profilesGenerated runtime output lives under
.fhevm/:.fhevm/env/.fhevm/config/.fhevm/compose/.fhevm/addresses/.fhevm/locks/.fhevm/state.jsonThe runtime flow is now:
--override coprocessorshorthandThe code is split around that model:
src/resolve.tssrc/scenario.tssrc/runtime-plan.tssrc/render-env.tssrc/render-config.tssrc/render-compose.tssrc/pipeline.tsTracked compose files are the default runtime truth.
.fhevm/compose/now contains selective overrides instead of full generated replacements for every component. Coprocessor topology remains the structural exception.Compatibility and targeting
latest-mainandshaare hard-cut to the simple-ACL era and fail before the supported floorsharesolution requires a complete repo-owned image set and a commit that exists onmainlatest-mainresolves repo-owned services frommain;src/presets.tssupplies the non-repo companion baseline for the common mainline pathsrc/compat.tsis kept focused on cross-era protection:CI contract
latest-mainwith the checked-intwo-of-twoscenariobuild=true, so a human dispatch naturally validates the checked out branch from sourcebuild=falseexplicitly and overlays repo-owned*_VERSIONenv vars only for components whose Docker build succeededlatest-mainbaselinelatest-mainbaseline and scenario modelQuality and reliability improvements
Validation
Verified on the current branch state:
bun run checkbun test(322tests)--builddry-runsupgrade coprocessorlatest-maindry-runs and scenario dry-runsNotes
latest-supportedis now a tracked maintained profile, not a dynamic “latest release” resolver.latest-mainis the moving baseline for PR validation and local mainline testing.--scenarioremains the explicit consensus/matrix interface.--override coprocessorremains the fast local e2e path.--buildis the full local-workspace path.