Skip to content

feat(coordinator): document all TOML config keys with @ConfigDoc/@ConfigSection#3568

Open
gauravahuja wants to merge 1 commit into
feat/config-docs-coordinator-wiringfrom
feat/coordinator-config-docs-annotate
Open

feat(coordinator): document all TOML config keys with @ConfigDoc/@ConfigSection#3568
gauravahuja wants to merge 1 commit into
feat/config-docs-coordinator-wiringfrom
feat/coordinator-config-docs-annotate

Conversation

@gauravahuja

@gauravahuja gauravahuja commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Stacked PR — base is feat/config-docs-coordinator-wiring (#3607), itself stacked on #3606. Merge order: #3606#3607 → this.

Reworked: this PR was rebased onto the new config-docs module stack. The annotation content is unchanged; it now imports the annotations from jvm-libs:linea:config-docs (via compileOnly) instead of the old in-app location.

Summary

Annotate every Coordinator TOML config class with @ConfigDoc (leaf values) and @ConfigSection (nested tables) so the schema is fully self-documented and checkConfigDocs (from #3607) passes.

  • Every leaf carries @ConfigDoc (description, plus default/example where meaningful); every nested table carries @ConfigSection.
  • Shared classes (e.g. RequestRetriesToml) are documented once and reused everywhere.
  • Annotations come from the linea.config.docs module, added to coordinator:app as a compileOnly dependency so the tooling stays out of the production jar.

./gradlew :coordinator:app:checkConfigDocs reports 450/450 keys documented.

Conventions

  • Description: one operator-facing sentence stating what the key controls.
  • default = "..." on optional leaves with stable defaults (durations as ISO-8601, e.g. PT1S); nullable "omit to disable" cases explained in the description.
  • example = "..." for endpoints, paths, hosts, and hashes.

Test plan

  • ./gradlew :coordinator:app:checkConfigDocs — 450/450 documented.
  • ./gradlew :coordinator:app:test --tests "linea.coordinator.config.v2.*" — passes.
  • ./gradlew :coordinator:app:spotlessCheck — passes.

Not in scope

  • Committed generated JSON schema + Markdown reference (next PR).
  • Wiring checkConfigDocs into check + CI (later).

Note

Low Risk
Documentation-only annotations and generated docs; no changes to config parsing, defaults, or coordinator runtime behavior.

Overview
Documents the full Coordinator v2 TOML schema so checkConfigDocs / generateConfigDocs can validate coverage and emit operator-facing reference material.

Every leaf property on the TOML data classes gets @ConfigDoc (description plus default / example where useful). Nested tables get @ConfigSection. Shared shapes like RequestRetriesToml are documented once and reused across services (L1 submission, anchoring, database, etc.).

coordinator:app pulls jvm-libs:linea:config-docs as compileOnly so annotations are visible to the doc generator but not shipped in the production jar.

The PR also adds docs/tech/components/coordinator-config-reference.md, generated from those annotations (header points at ./gradlew :coordinator:app:generateConfigDocs).

Reviewed by Cursor Bugbot for commit 4b24a17. Bugbot is set up for automated code reviews on this repo. Configure here.

@gauravahuja gauravahuja self-assigned this Jul 15, 2026
@codecov

codecov Bot commented Jul 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@gauravahuja gauravahuja removed their assignment Jul 22, 2026
@gauravahuja
gauravahuja force-pushed the feat/coordinator-config-docs-annotate branch 2 times, most recently from 4952f74 to 6794434 Compare July 23, 2026 09:37
@gauravahuja
gauravahuja changed the base branch from feat/coordinator-config-docs-check to feat/config-docs-coordinator-wiring July 23, 2026 09:38
@gauravahuja
gauravahuja force-pushed the feat/config-docs-coordinator-wiring branch from 7fc9f75 to a89318d Compare July 23, 2026 09:51
…figSection

Annotate every Coordinator TOML config class with @ConfigDoc (leaf values)
and @ConfigSection (nested tables), covering all 450 config keys across:
top-level sections, defaults, database, request retries, prover, traces,
conflation, L1 submission, L2 network gas pricing, message anchoring,
forced transactions, protocol, signer, state manager, type-2 state proof,
L1 finalization monitor, and API.

Annotations are imported from the jvm-libs:linea:config-docs module and
depended on via compileOnly, so the tooling stays out of the production
jar. checkConfigDocs now reports 450/450 keys documented.

Refs: #3567
Signed-off-by: Gaurav Ahuja <gauravahuja9@gmail.com>
@gauravahuja
gauravahuja force-pushed the feat/coordinator-config-docs-annotate branch from 6794434 to 4b24a17 Compare July 23, 2026 09:54
@gauravahuja gauravahuja self-assigned this Jul 23, 2026
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