Skip to content

build/devenv: toml config updates#1138

Draft
winder wants to merge 5 commits into
will/committeeccv-nextfrom
will/devenv-toml
Draft

build/devenv: toml config updates#1138
winder wants to merge 5 commits into
will/committeeccv-nextfrom
will/devenv-toml

Conversation

@winder
Copy link
Copy Markdown
Collaborator

@winder winder commented May 29, 2026

PR Chain

There are multiple open pull requests that feed into each other:

Description

Testing

Checklist

  • Breaking changes documented in changelog (see changelog directory)
  • Cross link related PRs (in this or other repositories)
  • just lint fix - no new lint errors
  • just generate - mocks and protobufs are up to date

winder added 2 commits May 29, 2026 09:10
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.
@winder winder changed the base branch from will/committeeccv-component to will/committeeccv-next May 29, 2026 14:03
winder added 2 commits May 29, 2026 10:36
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.
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]
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
@github-actions
Copy link
Copy Markdown

Code coverage report:

Package will/committeeccv-next will/devenv-toml Diff
github.com/smartcontractkit/chainlink-ccv/aggregator 49.34% 49.31% -0.03%
github.com/smartcontractkit/chainlink-ccv/bootstrap 54.14% 54.14% +0.00%
github.com/smartcontractkit/chainlink-ccv/cli 65.13% 65.13% +0.00%
github.com/smartcontractkit/chainlink-ccv/cmd 15.54% 15.54% +0.00%
github.com/smartcontractkit/chainlink-ccv/common 56.54% 56.54% +0.00%
github.com/smartcontractkit/chainlink-ccv/executor 45.97% 45.97% +0.00%
github.com/smartcontractkit/chainlink-ccv/indexer 37.67% 37.68% +0.01%
github.com/smartcontractkit/chainlink-ccv/integration 45.84% 45.93% +0.09%
github.com/smartcontractkit/chainlink-ccv/pkg 84.62% 84.62% +0.00%
github.com/smartcontractkit/chainlink-ccv/pricer 0.00% 0.00% +0.00%
github.com/smartcontractkit/chainlink-ccv/protocol 63.75% 63.66% -0.09%
github.com/smartcontractkit/chainlink-ccv/verifier 34.48% 34.48% +0.00%
Total 46.50% 46.50% +0.00%

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