build/devenv: toml config updates#1138
Draft
winder wants to merge 5 commits into
Draft
Conversation
env-phased.toml is a copy of env.toml without the monolith-only keys (cl_nodes_funding_eth, cl_nodes_funding_link, high_availability, [cldf]) that the phased runtime leaves unclaimed. The phased CI smoke test now boots from it and sets SMOKE_TEST_CONFIG to read its output (env-phased-out.toml).
NewEnvironmentWithRegistry now reads the top-level version schema marker, errors if it is missing an integer or is < 1, then logs and strips it so it is never dispatched to a component or flagged as an unclaimed key.
This was referenced May 29, 2026
Consolidates the top-level [[aggregator]]/[[verifier]] keys under a single [committeeccv] section and moves [environment_topology] under [protocol_contracts.environment_topology], so each component reads from its own config section instead of the top-level raw config. Cfg embeds CommitteeCCVCfg/ProtocolContractsCfg with toml tags so fields still promote, keeping the ~115 existing in.Aggregator/in.Verifier/in.EnvironmentTopology call sites unchanged across monolith and e2e tests.
Restricts the nested [committeeccv] / [protocol_contracts.environment_topology] config layout to env-phased.toml, restoring the original flat top-level layout ([[aggregator]]/[[verifier]]/[environment_topology]) in env.toml and all -cl/env-one-exec configs so the non-phased monolith integration tests keep working. Cfg now accepts both shapes — monolith reads the flat fields unchanged, while NewPhasedEnvironment lifts the nested values into them after load. Also gives the committeeccv component a single typed Config + one decodeConfig (replacing the per-field decoders) and drops the redundant blockchainOutputs phase output in favor of deriving it from blockchains via the new blockchains.Outputs helper.
winder
commented
May 29, 2026
| use_legacy_configure_lane = false | ||
|
|
||
| ## Environment configuration define the topology. Eventually the topology should be the only config that is needed. | ||
| [protocol_contracts.environment_topology] |
Collaborator
Author
There was a problem hiding this comment.
Topology is now nested under the protocol_contracts config.
Each phased component declares an exported Version constant (currently 1) and verifies its config's decoded version after decode via devenvruntime.CheckConfigVersion, with third-party jd/blockchains configs versioned through a local embed-wrapper. NewPhasedEnvironment no longer decodes env-phased.toml into the transitional Cfg type, instead building an empty Cfg from the component outputs (topology from the runtime _topology), which drops the dual-layout Cfg and lenient loader.
|
Code coverage report:
|
This was referenced May 29, 2026
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.
PR Chain
There are multiple open pull requests that feed into each other:
Description
Testing
Checklist
changelogdirectory)just lint fix- no new lint errorsjust generate- mocks and protobufs are up to date