Skip to content

fix(config): support standalone symbolic section#15661

Open
mablr wants to merge 4 commits into
masterfrom
mablr/symbolic-standalone-config
Open

fix(config): support standalone symbolic section#15661
mablr wants to merge 4 commits into
masterfrom
mablr/symbolic-standalone-config

Conversation

@mablr

@mablr mablr commented Jul 9, 2026

Copy link
Copy Markdown
Member

Support top-level [symbolic] config sections by treating symbolic like the existing standalone fuzz and invariant sections during config normalization. This keeps [profile.<name>.symbolic] working as before while allowing shared symbolic defaults to be written as [symbolic], including env var normalization through FOUNDRY_SYMBOLIC_* and section-aware unknown-key warnings.

@mablr mablr marked this pull request as ready for review July 9, 2026 14:40
Comment thread crates/config/src/lib.rs
@mablr mablr requested a review from figtracer July 9, 2026 16:38
Comment thread crates/config/src/lib.rs
Comment thread crates/config/src/lib.rs

@mattsse mattsse left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The standalone happy path and warning coverage look good, but this currently changes behavior in two unsupported edge cases that need to be addressed before merging:

  • In inherited configs, [symbolic] and [profile.<name>.symbolic] converge only after the raw providers have been merged. This can make a base value override a local value and lets no-collision miss an effective collision: #15661 (comment)
  • Adding symbolic to STANDALONE_SECTIONS also makes an unwrapped profile named symbolic bypass key normalization, so valid profile keys such as eth-rpc-url can be silently ignored: #15661 (comment)

Please separate standalone-section identity from selected-profile identity during normalization, and normalize standalone/profile-qualified symbolic entries to the same effective shape before applying inheritance precedence and collision detection. Regression coverage should include mixed inherited forms and FOUNDRY_PROFILE=symbolic.

mablr added 2 commits July 13, 2026 09:41
Normalize standalone sections before inherited TOML sources are merged so equivalent profile-qualified values observe source precedence and no-collision checks. Apply profile key normalization before profile selection to preserve hyphenated keys when a profile shares a standalone section name.

@grandizzy grandizzy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

5 participants