docs: design proposal for user-overridable ESP sdkconfig#472
Conversation
Captures the 5-layer precedence chain (framework default → fbuild.toml → sdkconfig.fragment → platformio.ini sdkconfig_options → build_flags -D CONFIG_*), the two output forms (-D flags on the compile line + synthesized debug header in the build dir), the concrete API shape expanding the current 4-key `SdkConfigSummary` into a full `SdkConfig` dict with provenance tracking, and the open questions to nail down before implementation (fragment filename, per-env fragments, unknown- key diagnostics, cache invalidation). Status: design proposal — not yet implemented. Index + LLM-guide cross-links added; flat docs/ convention preserved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 54 minutes. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Design proposal capturing how a fbuild user should be able to override
ESP-IDF `CONFIG_*` settings without rebuilding the framework, what
surfaces should exist, and how they layer.
No code change. Just `docs/sdkconfig.md` (288 lines) plus an
INDEX.md row and a docs/CLAUDE.md cross-link.
What's proposed
A 5-layer precedence chain (lowest → highest):
Merged dict emits as `-D CONFIG_*` flags (correctness) AND as a
synthesized debug `.fbuild/build//sdkconfig.h` (visibility, not
on the include path).
The current 4-key `SdkConfigSummary` boolean parser becomes a thin
wrapper around the expanded `SdkConfig` dict — no behavior change for
the existing `.eh_frame` policy consumer.
What it explicitly rejects
has hundreds of keys, partial override → undefined behavior)
Kconfig copy-paste path, no provenance, no fbuild.toml migration
story)
Open questions (called out in doc)
Test plan
🤖 Generated with Claude Code