build/devenv: remove fallback, scope lane flag, merge executor phases.#1137
Conversation
15ee4b1 to
63e3470
Compare
| JD *jd.Input `toml:"jd" validate:"required"` | ||
| Blockchains []*blockchain.Input `toml:"blockchains" validate:"required"` | ||
| NodeSets []*ns.Input `toml:"nodesets" validate:"required"` | ||
| NodeSets []*ns.Input `toml:"nodesets" validate:"omitempty"` |
There was a problem hiding this comment.
nit: I believe omitempty is placed after a comma in the toml tag: toml:"nodesets,omitempty". From what I can see the validate tags aren't actually being used, since the github.com/asaskevich/govalidator dep is indirect in the devenv go.mod.
Cleaned up the phased devenv runtime by removing dead fallback code, scoping use_legacy_configure_lane, relaxing NodeSets validation, and merging executor into a single Phase 3 component. Integration tests passed. Ready to commit each task individually for CI.
63e3470 to
d8b791a
Compare
|
Code coverage report:
|
There was a problem hiding this comment.
Pull request overview
Phased devenv runtime cleanup to remove now-dead fallback component support, simplify cross-component config flow, relax nodeset validation for phased configs, and consolidate executor behavior into a single Phase 3 component.
Changes:
- Remove runtime registry/environment fallback-component plumbing and delete fallback-specific tests.
- Stop re-exporting
use_legacy_configure_lanevia inter-phase outputs; read it directly fromglobalConfig["protocol_contracts"]incommitteeccv. - Relax
Cfg.NodeSetsvalidation (required→omitempty) and fold executor Phase 4 job-spec logic into Phase 3.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| build/devenv/runtime/registry.go | Removes fallback factory support from the component registry and simplifies instantiation/validation. |
| build/devenv/runtime/environment.go | Drops fallback execution branches and adjusts unclaimed-key warning behavior accordingly. |
| build/devenv/runtime/environment_test.go | Deletes tests that exclusively validated fallback behavior. |
| build/devenv/environment.go | Relaxes NodeSets validation to allow phased configs without [[nodeset]] sections. |
| build/devenv/components/protocol_contracts/component.go | Stops emitting _use_legacy_configure_lane in outputs. |
| build/devenv/components/executor/component.go | Merges executor Phase 4 job-spec generation/proposal into Phase 3. |
| build/devenv/components/committeeccv/component.go | Reads use_legacy_configure_lane directly from globalConfig["protocol_contracts"]. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| effectExecutor = noopEffectExecutor{} | ||
| } | ||
| specific, fallback, err := r.instantiate(nil) | ||
| specific, err := r.instantiate(nil) |
Feedback from #1137 Move omitempty from a dead validate tag into the toml tag for NodeSets (toml:"nodesets,omitempty") and remove the stale "fallback" reference from the NewEnvironmentWithRegistry doc comment, which was removed in an earlier PR.
PR Chain
There are multiple open pull requests that feed into each other:
Description
Phased devenv cleanup: Four independent follow-up cleanups now that the legacy fallback component has been fully eliminated from the phased devenv runtime.
Remove
SetFallbackfrom the runtime registrySetFallback/r.fallbackis dead code — nothing registers afallback component any more. This removes the field from
Registry,both
SetFallbackfunctions (instance + package-level), thefallbackOwnerconstant, and all four per-phase fallback executionbranches in
environment.go. The two fallback-specific unit tests arealso deleted.
Stop routing
use_legacy_configure_lanethrough an inter-phase keyprotocol_contractspreviously read the flag from its component configand re-exported it as
"_use_legacy_configure_lane"so thatcommitteeccvcould consume it one phase later. Now that bothcomponents share
globalConfig,committeeccvreads the valuedirectly from
globalConfig["protocol_contracts"]. Theprotocol_contractscomponent no longer touches the flag at all. No TOML changes — the
field stays at
[protocol_contracts].use_legacy_configure_lane.Relax
NodeSetsvalidation tagCfg.NodeSetshadvalidate:"required", which fails for phasedconfigs that have no
[[nodeset]]sections. Changed tovalidate:"omitempty". Monolith configs always passenv-cl.tomlwhich supplies
NodeSets, so the monolith path is unaffected.Merge executor into a single Phase 3 component
Executor was split across Phase 3 (launch + JD registration) and Phase
4 (job spec generation). The split was necessary when
protocol_contractsran in Phase 3 — job specs needed_env,_topology, and_dswhich weren't available until Phase 3 completed.Now that
protocol_contractsis Phase 2, all executor dependencies arein
priorOutputsby Phase 3.RunPhase4is deleted; its logic isfolded into
RunPhase3. CLAUDE.md phase layout updated to reflect thecurrent state.
Testing
Checklist
changelogdirectory)just lint fix- no new lint errorsjust generate- mocks and protobufs are up to date