CommissioningProxy PR1: add cluster definition and generated code#72600
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces the CommissioningProxy cluster and the Commissioning By Proxy device type, along with their corresponding XML definitions, Java/Kotlin controller implementations, Python bindings, and Darwin framework support. The review feedback highlights critical robustness improvements needed in the Python ScriptBinding implementation (ChipDeviceController-ScriptBinding.cpp) to prevent potential crashes and hangs. Specifically, it recommends adding defensive null checks for proxyTransport and refactoring error handling in OnResponse and OnError to ensure proper error propagation without double-calling the pairing delegate. Additionally, the CachedResults attribute should be added to the Commissioning Proxy attribute lists in zcl.json and zcl-with-test-extensions.json to maintain consistency with the cluster XML definition.
|
PR #72600: Size comparison from bfec9c8 to 7f88dba Full report (10 builds for cc13x4_26x4, cc32xx, nrfconnect, realtek, stm32)
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #72600 +/- ##
=======================================
Coverage 56.74% 56.74%
=======================================
Files 1630 1630
Lines 112290 112290
Branches 13114 13114
=======================================
Hits 63719 63719
Misses 48571 48571 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
PR #72600: Size comparison from bfec9c8 to 678b127 Full report (21 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, nrfconnect, psoc6, qpg, realtek, stm32)
|
|
PR #72600: Size comparison from bfec9c8 to 9bd1d68 Full report (24 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, nrfconnect, psoc6, qpg, realtek, stm32)
|
Add the generated registration for commissioning-proxy-cluster.xml that was missing from the codegen config: - zap_cluster_list.json: add COMMISSIONING_PROXY_CLUSTER (empty server dir; server entry deferred to the cluster-impl PR) - tests.yaml: add the XML to the CI "Validate that xml are parsable" list - commissioning-proxy-cluster.xml: regenerate header with attribute=in-progress; Git provenance now clean (no -dirty)
|
PR #72600: Size comparison from 10dc250 to b871472 Full report (33 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
|
Summary
First in a series of PRs introducing the Commissioning Proxy feature. This PR adds only the data model definition of the new
CommissioningProxycluster (0x0455) and theCommissioningByProxydevice type (0x0092), together with everything generated from that definition. It introduces no server logic and no runtime behavior — those follow in subsequent PRs (cluster server implementation, example app, chip-tool/commissioner integration, and certification tests).What's included:
commissioning-proxy-cluster.xml, plus registration inzcl.json,zcl-with-test-extensions.json,config-data.yaml, andzap_cluster_list.json.CommissioningByProxy(0x0092) added tomatter-devices.xml.zzz_generated/app-common(cluster/attribute/command/event IDs, cluster-objects, enums, per-cluster metadata), the controller IDL (controller-clusters.matter), chip-tool command + logging code, the Darwin framework bindings, the Java/Kotlin and Python controller bindings, and thedocs/ids_and_codes/zap_clusters.mdcluster index.Splitting the feature this way keeps the large-but-mechanical generated diff isolated from hand-written logic, so the following PRs stay small and reviewable. The
zap_cluster_list.jsonserver-directory mapping is deliberately deferred to the cluster-server PR, where that directory actually exists.Testing
chip-tooland the Linuxlighting-appcompile against this branch in isolation, confirming the generated cluster code and the updatedapp-commonheaders build with no dependency on any later PR in the series.