Group branches.yaml by EL/CL/MEV/ZK/Tooling/Other/Lean#386
Conversation
Restructures branches.yaml so each top-level key is a group whose `common_branches:` list is merged into every client in that group, with `skip_common: true` as a per-client opt-out. Trims repeated devnet branch lists for ELs/CLs while leaving the generated config.yaml byte-identical. - el.common_branches: bal-devnet-3, bal-devnet-7, glamsterdam-devnet-4 (opted out: ethereumjs) - cl.common_branches: glamsterdam-devnet-4 (opted out: caplin, consensoor) - generate_config.py: new flatten_groups() merges common_branches per group and honors skip_common before the existing expansion logic runs.
🤖 qu0b-reviewerNow I have enough context. Here is my review: SummaryThe PR restructures Issues
Suggestions
Reviewed @ |
Removes the per-client workflows, Dockerfile, DEFAULT_REPOS entries, platforms.yaml entries, and README links for ethereumjs and goomy-blob since they are no longer in branches.yaml. Also bumps install-deps' setup-node version from 20 to 24 to match chainsafe/lodestar's current `engines.node: ^24.13.0`.
Summary
branches.yamlso each top-level key is a group (el,cl,mev,zk,tooling,other,lean) instead of a flat client dictcommon_branches:that get merged into every client in the group, withskip_common: trueas a per-client opt-out — devnet branches (bal-devnet-3/bal-devnet-7/glamsterdam-devnet-4for EL,glamsterdam-devnet-4for CL) are now written once per group rather than repeated under every clientgenerate_config.pygains a smallflatten_groups()step that runs before the existing expansion logic, so the rest of the script is untouched and the generatedconfig.yamlis byte-identical to beforeCommon-branch opt-outs
el.common_branches: opted out byethereumjscl.common_branches: opted out bycaplin,consensoorTest plan
python3 generate_config.pyruns cleanly and reports 148 configurations (same as before)config.yaml(37 base + prysm/nimbus splits) — none lost