Skip to content

fix(bench): parse fbuild's real AVR resolved-package names (#1536) - #1592

Merged
zackees merged 2 commits into
mainfrom
fix/1536-avr-package-identities
Sep 30, 2026
Merged

zackees merged 2 commits into
mainfrom
fix/1536-avr-package-identities

Conversation

@zackees

@zackees zackees commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

Fixes #1536.

parse_fbuild_build_packages looked for toolchain-atmelavr / framework- in the AVR resolved: line, but fbuild emits avr-gcc@… and arduino-avr-core@…, so the identity map was empty and the Uno ratio was marked unverified. The parser now splits the line into name@version (url) entries and maps avr-gcc/toolchain-atmelavr* to toolchain and arduino-avr-core/framework-* to framework, the same comparison fields the PlatformIO side fills.

RED→GREEN: the new fbuild_avr_build_log_parses_real_resolved_package_names uses the verbatim line from run 36381617967. It fails on the old parser (confirmed) and passes now; the whole crate is 35/35 and clippy -D warnings is clean. The verification gate is unchanged, so missing or mismatched versions still mark the stack unverified; the existing gate tests cover that.

Summary by CodeRabbit

  • Bug Fixes
    • Improved Arduino Uno build-log parsing so toolchain and framework versions are correctly recognized from resolved package entries, including real-world build logs.
  • Tests
    • Added regression coverage verifying the extracted versions and complete Uno package metadata.

@coderabbitai

coderabbitai Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: FastLED/fbuild/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: ce90558a-4819-4ec2-95a4-f44f429e6d56

📥 Commits

Reviewing files that changed from the base of the PR and between 3fa8e78 and 7804b02.

📒 Files selected for processing (2)
  • bench/fastled-examples/src/build_comparison.rs
  • bench/fastled-examples/src/build_comparison_tests.rs

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The Arduino Uno benchmark parser now recognizes fbuild’s resolved AVR package names and maps them to toolchain and framework versions. A regression test uses real build-log output to verify the parsed versions and Uno package metadata.

Changes

Arduino Uno AVR package parsing

Layer / File(s) Summary
Parse and test AVR package identities
bench/fastled-examples/src/build_comparison.rs, bench/fastled-examples/src/build_comparison_tests.rs
The parser maps recognized AVR package names to toolchain and framework fields, skips unrecognized names and empty versions, and trims trailing commas. The regression test checks the versions from real resolved-package output and confirms Uno metadata completeness.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Medium

Merge Risk: ⚪ Minimal · up to 7804b

The real-log fixture confirms the expected Uno package versions and complete metadata. No actionable merge-blocking risk is established; the change is ready to merge after normal checks.

Architecture Summary

Architecture risk: 🔵 Low · up to 7804b

The change affects 1 system.

Changed systems: bench

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — bench (service) was modified; 2 changed files map to changed impact.

Before / after behavior

  • observed — Modified behavior in bench/fastled-examples/src/build_comparison.rs: The Uno parser replaces fixed-position extraction of toolchain-atmelavr and framework- fields with per-entry parsing of name@version. It maps avr-gcc and toolchain-atmelavr* to the toolchain key, and arduino-avr-core and framework-* to the framework key; other names and empty versions are skipped, and trailing commas are trimmed.
  • observed — Modified behavior in bench/fastled-examples/src/build_comparison_tests.rs: Added a test for parsing real AVR resolved-package log output, checking the extracted toolchain and framework versions and confirming Uno metadata completeness.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: parsing fbuild's real AVR resolved-package names in the benchmark code.
Linked Issues check ✅ Passed The changes satisfy the coding requirements in [#1536]. parse_fbuild_build_packages now parses semicolon-separated name@version entries from AVR resolved: output. It maps avr-gcc and `toolchai…
Out of Scope Changes check ✅ Passed The changes stay within [#1536]. They modify only AVR package parsing and add a focused regression test for the real fbuild output. The changes do not alter benchmark measurements, report special case…
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@zackees
zackees merged commit 4019986 into main Sep 30, 2026
20 checks passed
@fastled-project-sync fastled-project-sync Bot moved this to Triage in FastLED Tracker Sep 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

fix(bench): parse actual AVR package identities for Arduino Uno

1 participant