Add support for errata to introduce extra commands, attributes, and ...#47
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the errata mechanism by enabling the dynamic addition of commands, attributes, and feature bits to the SDK definitions. This change bridges the gap between specification and SDK by allowing errata to introduce new elements that were previously only supported for modification or override. The update involves extending core data structures and implementing new processing logic to parse and apply these additional elements, ensuring better alignment and flexibility in SDK generation. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request adds support for errata to introduce extra commands, attributes, and feature bits, which helps align the SDK with the specification. The changes involve extending the SDKType struct and implementing logic to apply these new errata types. My review focuses on improving performance and robustness in the new logic for applying these errata. I've suggested optimizing loops by using maps for faster lookups and adding more robust error handling for parsing errata files.
- Support arg in extra commands - Support apiMaturity for commands and attributes - Fix conformance rendering for extra entities
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request adds significant new capabilities to the errata system, allowing for the addition of commands, attributes, and feature bits to close gaps with the specification. The changes are well-structured, with good refactoring that improves code clarity and reuse, particularly in sdk/bitmap.go and sdk/cluster.go. However, I've identified a critical bug in sdk/extra.go where Default values from errata will incorrectly overwrite Fallback values. I've also noted a medium-severity issue where invalid access control strings in errata would fail to parse silently. I've provided detailed comments and suggestions to address these points.
To close the gap between spec and SDK, errata needs to support the following modifications:
This PR aims at adding the above features to errata.
Spec PR adding the support: https://github.com/CHIP-Specifications/connectedhomeip-spec/pull/12734