10000 Add ServerClusterShim: A ServerClusterInterface wrapper for legacy (codegen/ember) clusters by soares-sergio · Pull Request #39393 · project-chip/connectedhomeip · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Add ServerClusterShim: A ServerClusterInterface wrapper for legacy (codegen/ember) clusters #39393

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 27 commits into
base: master
Choose a base branch
from

Conversation

soares-sergio
Copy link
Contributor
@soares-sergio soares-sergio commented Jun 4, 2025

Server Cluster Shim

Overview

The ServerClusterShim provides a way to adapt legacy (codegen/ember-based) server cluster implementations to the new ServerClusterInterface. It acts as an intermediary layer, translating between the new interface methods and legacy emberAf... calls. This allows developers to isolate the dependency on code generation to the cluster layer, instead of the leaking it to the data model provider layer.

This ServerClusterShim enables us to develop a new Data Model Provider (fully code-driven) that doesn't depend on codegen/ember and can be tested against real clusters (while the clusters themselves are not all migrated to fully code-drviven yet).

Note: this is meant to be a temporary option, until all cluster implementations have been migrated to implement the new interface. This is an effort that's currently in progress the SDK.

Usage

To use the ServerClusterShim, you need to:

  • Have a zap file with the all of the legacy clusters configured
  • Instantiate a ServerClusterShim providing the endpoint and cluster ID in to the constructor
    • You can either instantiate one ServerClusterShim with multiple paths or one for each cluster.
  • Call ServerClusterShim::Startup to initialize the cluster with a ServerClusterContext.
  • Interact with the cluster by calling any of the ServerClusterInterface methods such as:
    • ReadAttribute, WriteAttribute, InvokeCommand, etc.

See some other examples in TestServerClusterShim.cpp.

// Instantiate a `ServerClusterShim`
ServerClusterShim cluster({ { endpointId, clusterId } });

// Startup with a ServerClusterContext
ServerClusterContext clusterContext{.provider = &provider, .storage = nullptr, .interactionContext = &imContext};
cluster.Startup(&clusterContext);

// Read Attributes (for example, feature map)
ReadOperation readOperation(endpointId, clusterId, Attributes::FeatureMap::Id);
std::unique_ptr<AttributeValueEncoder> encoder = readOperation.StartEncoding();

ASSERT_EQ(cluster.ReadAttribute(readOperation.GetRequest(), *encoder), CHIP_NO_ERROR);
ASSERT_EQ(readOperation.FinishEncoding(), CHIP_NO_ERROR);

// Validate after read
std::vector<DecodedAttributeData> attribute_data;
ASSERT_EQ(readOperation.GetEncodedIBs().Decode(attribute_data), CHIP_NO_ERROR);

Flash Size Impact

This PR has no flash size impact on existing implementation. It will be used in follow up PRs to build a new example application that demonstrates the new code driven data model provider. It's usage is totally optional, existing applications won't be forced to use this and can continue to use the existing cluster implementations with the CodegenDataModelProvider.

Note: there is some code duplication with the CodegenDataModelProvider and that's OK because this is meant to be temporary. When we tried to the CodegenModel reuse the same code, we ended up with flash size increase, see 38265 for additional context, so we decided to use this as an optional supporting resource.

Testing

You can build and run the unit tests with the following command:

  • ninja -C out examples/common/server-cluster-shim/tests:TestServerClusterShim && out/tests/TestServerClusterShim

Copy link
Contributor
@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces CodegenServerCluster, a shim class implementing the ServerClusterInterface to wrap Ember-based clusters. This is a valuable step for decoupling from Ember and enabling testing with the CodeDrivenDataModelProvider. The implementation appears to be a good thin wrapper, and the added unit tests cover the new path validation logic effectively.

I have a few suggestions and questions regarding some TODOs and a potentially redundant check.

Summary of Findings

  • Incomplete Attribute Quality Flags: TODOs exist for setting kFabricScoped, kFabricSensitive, and kChangesOmitted flags in AttributeEntryFrom. Clarification is needed on whether these are in scope for the current shim.
  • AAI Control Over Data Versioning: A TODO in WriteAttribute notes that AAIs currently lack control over data version increments after a successful AAI write. This could be problematic for attributes with special versioning requirements.
  • Handling of ChangesOmitted Flag: A TODO in WriteAttribute indicates that dataInput.SetMarkDirty() isn't yet configured based on the ChangesOmitted flag.
  • Incomplete GetClusterFlags Implementation: The GetClusterFlags method in CodegenServerCluster.h is marked as a TODO and currently returns empty flags.
  • Redundant Path Check: There appears to be a redundant ContainsClusterPath check in CodegenServerCluster::InvokeCommand after an initial check for the same path.
  • Copyright Year: New files use copyright year 2025. This is a minor issue and was not commented on due to review settings.

Merge Readiness

The pull request is a good step towards decoupling from Ember. However, there are several medium-severity issues, primarily around TODOs for unimplemented or partially implemented functionality related to attribute and cluster metadata (quality flags, data versioning with AAI, ChangesOmitted flag handling) and a redundant check.

I recommend addressing these points, or at least clarifying the scope and future plans for the TODOs, before merging. As an AI, I am not authorized to approve pull requests; please ensure further review and approval from other team members.

Copy link
Contributor
@bzbarsky-apple bzbarsky-apple Jun 4, 2025

Choose a reason for hiding this comment

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

My understanding was that the plan was to do this migration on the provider level (by having a multiplexing provider which redirected to both a codegen provider as needed and a non-codegen one as needed), not by jamming all the clusters into the "non-codegen provider" codepath... What changed?

In particular, what is the backwards compat story here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nothing changes for legacy apps, they can continue to use the CodegenDataModelProvider, which supports both legacy ember-based clusters and modern ones based on the ServerClusterInterface.

Copy link
Contributor

Choose a reason for hiding this comment

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

Then I am really confused by why we need this wrapper to start with, I guess. Why is the right thing to do to force existing cluster impls into the new provider setup instead of the plan we had initially (which is to allow multiple providers, one of which would handle the codegen bits and one of which handles whatever code-driven stuff we want to do)?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Why is the right thing to do to force existing cluster impls

This PR is not forcing it. It doesn't change anything for existing clusters or providers. It just offers an opportunity for legacy clusters to be wrapped in the ServerClusterInterface, totally optional.

What's your main concern here? Is it the location where I put those files? I could move them somewhere else if it makes it clearer that we're not changing the existing codegen model.

Copy link
Contributor Author
@soares-sergio soares-sergio Jun 9, 2025

Choose a reason for hiding this comment

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

I moved this under examples/common and renamed it to ServerClusterShim, let me know if it makes it clearer.

@soares-sergio soares-sergio changed the title Add CodegenServerCluster: A ServerClusterInterface wrapper for ember clusters Add ServerClusterShim: A ServerClusterInterface wrapper for legacy (codegen/ember) clusters Jun 6, 2025
Copy link
github-actions bot commented Jun 6, 2025

PR #39393: Size comparison from 60841f5 to c631367

Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 60841f5 c631367 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1102984 1102984 0 0.0
RAM 179018 179018 0 0.0
bl702 lighting-app bl702+eth FLASH 655856 655856 0 0.0
RAM 134961 134961 0 0.0
bl702+wifi FLASH 833580 833580 0 0.0
RAM 124533 124533 0 0.0
bl706+mfd+rpc+littlefs FLASH 1066002 1066002 0 0.0
RAM 117365 117365 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 895566 895566 0 0.0
RAM 105668 105668 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 979290 979290 0 0.0
RAM 109852 109852 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 814320 814320 0 0.0
RAM 120024 120024 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825916 825916 0 0.0
RAM 125176 125176 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771876 771876 0 0.0
RAM 113580 113580 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756192 756192 0 0.0
RAM 113788 113788 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 548702 548702 0 0.0
RAM 205144 205144 0 0.0
lock CC3235SF_LAUNCHXL FLASH 582174 582174 0 0.0
RAM 205336 205336 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 663293 663293 0 0.0
RAM 77456 77456 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 683137 683137 0 0.0
RAM 80096 80096 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 683137 683137 0 0.0
RAM 80096 80096 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 640077 640077 0 0.0
RAM 72524 72524 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 624653 624653 0 0.0
RAM 73768 73768 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 644289 644289 0 0.0
RAM 76320 76320 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 644289 644289 0 0.0
RAM 76320 76320 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 645573 645573 0 0.0
RAM 76768 76768 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 665289 665289 0 0.0
RAM 79320 79320 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 665289 665289 0 0.0
RAM 79320 79320 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 620249 620249 0 0.0
RAM 70880 70880 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 640109 640109 0 0.0
RAM 73512 73512 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 640109 640109 0 0.0
RAM 73512 73512 0 0.0
efr32 lock-app BRD4187C FLASH 947460 947460 0 0.0
RAM 132004 132004 0 0.0
BRD4338a FLASH 776432 776424 -8 -0.0
RAM 173208 173208 0 0.0
window-app BRD4187C FLASH 1040080 1040080 0 0.0
RAM 128132 128132 0 0.0
esp32 all-clusters-app c3devkit DRAM 103488 103488 0 0.0
FLASH 1809032 1809032 0 0.0
IRAM 83862 83862 0 0.0
m5stack DRAM 122356 122356 0 0.0
FLASH 1773894 1773894 0 0.0
IRAM 117071 117071 0 0.0
linux air-purifier-app debug unknown 4848 4848 0 0.0
FLASH 2797442 2797442 0 0.0
RAM 117288 117288 0 0.0
all-clusters-app debug unknown 5664 5664 0 0.0
FLASH 6377644 6377644 0 0.0
RAM 537200 537200 0 0.0
all-clusters-minimal-app debug unknown 5528 5528 0 0.0
FLASH 5476288 5476288 0 0.0
RAM 227992 227992 0 0.0
bridge-app debug unknown 5560 5560 0 0.0
FLASH 4808548 4808548 0 0.0
RAM 207600 207600 0 0.0
camera-app debug unknown 8912 8912 0 0.0
FLASH 6917227 6917227 0 0.0
RAM 228888 228888 0 0.0
camera-controller debug unknown 9168 9168 0 0.0
FLASH 14304043 14304043 0 0.0
RAM 658760 658760 0 0.0
chip-tool debug unknown 6240 6240 0 0.0
FLASH 14664959 14664959 0 0.0
RAM 652208 652208 0 0.0
chip-tool-ipv6only arm64 unknown 40544 40544 0 0.0
FLASH 12633036 12633036 0 0.0
RAM 698480 698480 0 0.0
fabric-admin debug unknown 5920 5920 0 0.0
FLASH 12734811 12734811 0 0.0
RAM 651576 651576 0 0.0
fabric-bridge-app debug unknown 4808 4808 0 0.0
FLASH 4594424 4594424 0 0.0
RAM 193344 193344 0 0.0
fabric-sync debug unknown 5056 5056 0 0.0
FLASH 5737357 5737357 0 0.0
RAM 490544 490544 0 0.0
lighting-app debug+rpc+ui unknown 6272 6272 0 0.0
FLASH 5657777 5657777 0 0.0
RAM 209864 209864 0 0.0
lock-app debug unknown 5488 5488 0 0.0
FLASH 4838592 4838592 0 0.0
RAM 197096 197096 0 0.0
ota-provider-app debug unknown 4848 4848 0 0.0
FLASH 4446392 4446392 0 0.0
RAM 185984 185984 0 0.0
ota-requestor-app debug unknown 4728 4728 0 0.0
FLASH 4518672 4518672 0 0.0
RAM 188856 188856 0 0.0
shell debug unknown 4248 4248 0 0.0
FLASH 3084620 3084620 0 0.0
RAM 150888 150888 0 0.0
thermostat-no-ble arm64 unknown 9816 9816 0 0.0
FLASH 4235868 4235868 0 0.0
RAM 233432 233432 0 0.0
tv-app debug unknown 5824 5824 0 0.0
FLASH 6102477 6102477 0 0.0
RAM 614744 614744 0 0.0
tv-casting-app debug unknown 5336 5336 0 0.0
FLASH 1282175 1282175 0 0.0
RAM 768848 768848 0 0.0
nxp contact mcxw71+release FLASH 625584 625584 0 0.0
RAM 63148 63148 0 0.0
lock mcxw71+release FLASH 776688 776688 0 0.0
RAM 67804 67804 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1671740 1671740 0 0.0
RAM 212408 212408 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1576132 1576132 0 0.0
RAM 208464 208464 0 0.0
light cy8ckit_062s2_43012 FLASH 1448780 1448780 0 0.0
RAM 197192 197192 0 0.0
lock cy8ckit_062s2_43012 FLASH 1481076 1481076 0 0.0
RAM 224904 224904 0 0.0
qpg lighting-app qpg6200+debug FLASH 740712 740712 0 0.0
RAM 93336 93336 0 0.0
lock-app qpg6200+debug FLASH 750820 750820 0 0.0
RAM 93364 93364 0 0.0
stm32 light STM32WB5MM-DK FLASH 466028 466028 0 0.0
RAM 141376 141376 0 0.0
telink bridge-app tl7218x FLASH 677902 677902 0 0.0
694658 694658 0 0.0
RAM 90912 90912 0 0.0
102052 102052 0 0.0
light-app-ota-compress-lzma-factory-data tl3218x FLASH 767096 767096 0 0.0
RAM 50204 50204 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 768126 768126 0 0.0
RAM 40496 40496 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 756604 756604 0 0.0
774224 774224 0 0.0
RAM 97624 97624 0 0.0
109376 109376 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 687686 687686 0 0.0
703584 703584 0 0.0
RAM 51732 51732 0 0.0
62764 62764 0 0.0
light-switch-app-ota-compress-lzma-shell-fac 6DB6 tory-data tlsr9528a FLASH 716136 716136 0 0.0
741538 741538 0 0.0
RAM 73544 73544 0 0.0
85936 85936 0 0.0
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 713444 713444 0 0.0
RAM 37180 37180 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 605064 605064 0 0.0
601210 601210 0 0.0
RAM 106872 106872 0 0.0
120148 120148 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 791670 791674 4 0.0
809562 809566 4 0.0
RAM 96472 96472 0 0.0
107644 107644 0 0.0
tizen all-clusters-app arm unknown 5316 5316 0 0.0
FLASH 1824152 1824152 0 0.0
RAM 97028 97028 0 0.0
chip-tool-ubsan arm unknown 20696 20696 0 0.0
FLASH 20957286 20957286 0 0.0
RAM 9121144 9121144 0 0.0

@mergify mergify bot added the conflict label Jun 16, 2025
@mergify mergify bot removed the conflict label Jun 17, 2025
Copy link
github-actions bot commented Jun 17, 2025

PR #39393: Size comparison from ebbcfb7 to 1408a02

Full report (71 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen) F438
platform target config section ebbcfb7 1408a02 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1102760 1102760 0 0.0
RAM 179018 179018 0 0.0
bl702 lighting-app bl702+eth FLASH 655794 655794 0 0.0
RAM 134961 134961 0 0.0
bl702+wifi FLASH 833348 833348 0 0.0
RAM 124533 124533 0 0.0
bl706+mfd+rpc+littlefs FLASH 1066024 1066024 0 0.0
RAM 117365 117365 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 895326 895326 0 0.0
RAM 105668 105668 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 979050 979050 0 0.0
RAM 109852 109852 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 814292 814292 0 0.0
RAM 120024 120024 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825984 825984 0 0.0
RAM 125176 125176 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771852 771852 0 0.0
RAM 113580 113580 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756160 756160 0 0.0
RAM 113788 113788 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 548766 548766 0 0.0
RAM 205144 205144 0 0.0
lock CC3235SF_LAUNCHXL FLASH 582238 582238 0 0.0
RAM 205336 205336 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 663205 663205 0 0.0
RAM 77456 77456 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 683049 683049 0 0.0
RAM 80096 80096 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 683049 683049 0 0.0
RAM 80096 80096 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 639981 639981 0 0.0
RAM 72524 72524 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 624573 624573 0 0.0
RAM 73768 73768 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 644201 644201 0 0.0
RAM 76320 76320 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 644201 644201 0 0.0
RAM 76320 76320 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 645501 645501 0 0.0
RAM 76768 76768 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 665209 665209 0 0.0
RAM 79320 79320 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 665209 665209 0 0.0
RAM 79320 79320 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 620153 620153 0 0.0
RAM 70880 70880 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 640013 640013 0 0.0
RAM 73512 73512 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 640013 640013 0 0.0
RAM 7351273512 0 0.0
efr32 lock-app BRD4187C FLASH 947724 947724 0 0.0
RAM 132004 132004 0 0.0
BRD4338a FLASH 744164 744156 -8 -0.0
RAM 206872 206872 0 0.0
window-app BRD4187C FLASH 1040344 1040344 0 0.0
RAM 128132 128132 0 0.0
esp32 all-clusters-app c3devkit DRAM 103488 103488 0 0.0
FLASH 1809474 1809474 0 0.0
IRAM 83862 83862 0 0.0
m5stack DRAM 122356 122356 0 0.0
FLASH 1774582 1774582 0 0.0
IRAM 117071 117071 0 0.0
linux air-purifier-app debug unknown 4848 4848 0 0.0
FLASH 2794988 2794988 0 0.0
RAM 117352 117352 0 0.0
all-clusters-app debug unknown 5664 5664 0 0.0
FLASH 6376154 6376154 0 0.0
RAM 538160 538160 0 0.0
all-clusters-minimal-app debug unknown 5528 5528 0 0.0
FLASH 5473570 5473570 0 0.0
RAM 228024 228024 0 0.0
bridge-app debug unknown 5560 5560 0 0.0
FLASH 4805770 4805770 0 0.0
RAM 207632 207632 0 0.0
camera-app debug unknown 8968 8968 0 0.0
FLASH 6925755 6925755 0 0.0
RAM 229896 229896 0 0.0
camera-controller debug unknown 9184 9184 0 0.0
FLASH 14330251 14330251 0 0.0
RAM 659288 659288 0 0.0
chip-tool debug unknown 6240 6240 0 0.0
FLASH 14671551 14671551 0 0.0
RAM 652848 652848 0 0.0
chip-tool-ipv6only arm64 unknown 40544 40544 0 0.0
FLASH 12653132 12653132 0 0.0
RAM 699152 699152 0 0.0
fabric-admin debug unknown 5920 5920 0 0.0
FLASH 12739455 12739455 0 0.0
RAM 651832 651832 0 0.0
fabric-bridge-app debug unknown 4808 4808 0 0.0
FLASH 4594462 4594462 0 0.0
RAM 193504 193504 0 0.0
fabric-sync debug unknown 5056 5056 0 0.0
FLASH 5742157 5742157 0 0.0
RAM 490928 490928 0 0.0
lighting-app debug+rpc+ui unknown 6272 6272 0 0.0
FLASH 5655169 5655169 0 0.0
RAM 209928 209928 0 0.0
lock-app debug unknown 5488 5488 0 0.0
FLASH 4836234 4836234 0 0.0
RAM 197160 197160 0 0.0
ota-provider-app debug unknown 4848 4848 0 0.0
FLASH 4444246 4444246 0 0.0
RAM 186048 186048 0 0.0
ota-requestor-app debug unknown 4728 4728 0 0.0
FLASH 4516068 4516068 0 0.0
RAM 188856 188856 0 0.0
shell debug unknown 4248 4248 0 0.0
FLASH 3081580 3081580 0 0.0
RAM 151432 151432 0 0.0
thermostat-no-ble arm64 unknown 9800 9800 0 0.0
FLASH 4234372 4234372 0 0.0
RAM 233432 233432 0 0.0
tv-app debug unknown 5824 5824 0 0.0
FLASH 6104237 6104237 0 0.0
RAM 615032 615032 0 0.0
tv-casting-app debug unknown 5336 5336 0 0.0
FLASH 12822941 12822941 0 0.0
RAM 769136 769136 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 922992 922992 0 0.0
RAM 167414 167414 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 913976 913976 0 0.0
RAM 145658 145658 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 859488 859488 0 0.0
RAM 141047 141047 0 0.0
nxp contact mcxw71+release FLASH 625512 625512 0 0.0
RAM 63148 63148 0 0.0
lock mcxw71+release FLASH 776656 776656 0 0.0
RAM 67804 67804 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1672468 1672468 0 0.0
RAM 212408 212408 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1576156 1576156 0 0.0
RAM 208464 208464 0 0.0
light cy8ckit_062s2_43012 FLASH 1448796 1448796 0 0.0
RAM 197192 197192 0 0.0
lock cy8ckit_062s2_43012 FLASH 1481164 1481164 0 0.0
RAM 224904 224904 0 0.0
qpg lighting-app qpg6200+debug FLASH 740616 740616 0 0.0
RAM 93336 93336 0 0.0
lock-app qpg6200+debug FLASH 750740 750740 0 0.0
RAM 93364 93364 0 0.0
stm32 light STM32WB5MM-DK FLASH 465932 465932 0 0.0
RAM 141376 141376 0 0.0
telink bridge-app tl7218x FLASH 704898 704898 0 0.0
RAM 93636 93636 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 796566 796566 0 0.0
RAM 44056 44056 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 784974 784974 0 0.0
RAM 100952 100952 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 712256 712256 0 0.0
RAM 54272 54272 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 748832 748832 0 0.0
RAM 77436 77436 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 725570 725570 0 0.0
RAM 37028 37028 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 605136 605136 0 0.0
RAM 112432 112432 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 820554 820558 4 0.0
RAM 99204 99204 0 0.0
tizen all-clusters-app arm unknown 5308 5308 0 0.0
FLASH 1819768 1819768 0 0.0
RAM 97436 97436 0 0.0
chip-tool-ubsan arm unknown 20700 20700 0 0.0
FLASH 20964602 20964602 0 0.0
RAM 9120812 9120812 0 0.0

Copy link
github-actions bot commented Jun 18, 2025

PR #39393: Size comparison from ebbcfb7 to fa958a1

Full report (50 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, linux, nrfconnect, psoc6, qpg, stm32, telink, tizen)
platform target config section ebbcfb7 fa958a1 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1102760 1103062 302 0.0
RAM 179018 179026 8 0.0
bl702 lighting-app bl702+eth FLASH 655794 656224 430 0.1
RAM 134961 134969 8 0.0
bl702+wifi FLASH 833348 833650 302 0.0
RAM 124533 124541 8 0.0
bl706+mfd+rpc+littlefs FLASH 1066024 1066070 46 0.0
RAM 117365 117373 8 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 895326 895628 302 0.0
RAM 105668 105660 -8 -0.0
lighting-app bl702l+mfd+littlefs FLASH 979050 979352 302 0.0
RAM 109852 109860 8 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 814292 814492 200 0.0
RAM 120024 120024 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825984 826184 200 0.0
RAM 125176 125176 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771852 772052 200 0.0
RAM 113580 113580 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756160 756360 200 0.0
RAM 113788 113788 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 548766 549382 616 0.1
RAM 205144 205144 0 0.0
lock CC3235SF_LAUNCHXL FLASH 582238 582494 256 0.0
RAM 205336 205336 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 663205 663349 144 0.0
RAM 77456 77456 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 683049 683201 152 0.0
RAM 80096 80096 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 683049 683201 152 0.0
RAM 80096 80096 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 639981 640125 144 0.0
RAM 72524 72524 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 624573 624717 144 0.0
RAM 73768 73768 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 644201 644345 144 0.0
RAM 76320 76320 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 644201 644345 144 0.0
RAM 76320 76320 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 645501 645645 144 0.0
RAM 76768 76768 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 665209 665361 152 0.0
RAM 79320 79320 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 665209 665361 152 0.0
RAM 79320 79320 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 620153 620305 152 0.0
RAM 70880 70880 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 640013 640157 144 0.0
RAM 73512 73512 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 640013 640157 144 0.0
RAM 73512 73512 0 0.0
efr32 lock-app BRD4187C FLASH 947724 947868 144 0.0
RAM 132004 132004 0 0.0
BRD4338a FLASH 744164 744780 616 0.1
RAM 206872 206872 0 0.0
window-app BRD4187C FLASH 1040344 1040968 624 0.1
RAM 128132 128100 -32 -0.0
linux chip-tool-ipv6only arm64 unknown 40544 40544 0 0.0
FLASH 12653132 12653164 32 0.0
RAM 699152 699152 0 0.0
thermostat-no-ble arm64 unknown 9800 9800 0 0.0
FLASH 4234372 4235116 744 0.0
RAM 233432 233440 8 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 922992 923244 252 0.0
RAM 167414 167416 2 0.0
nrf7002dk_nrf5340_cpuapp FLASH 913976 914080 104 0.0
RAM 145658 145660 2 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 859488 859620 132 0.0
RAM 141047 141045 -2 -0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1672468 1673556 1088 0.1
RAM 212408 212416 8 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1576156 1576780 624 0.0
RAM 208464 208464 0 0.0
light cy8ckit_062s2_43012 FLASH 1448796 1449436 640 0.0
RAM 197192 197184 -8 -0.0
lock cy8ckit_062s2_43012 FLASH 1481164 1481788 624 0.0
RAM 224904 224904 0 0.0
qpg lighting-app qpg6200+debug FLASH 740616 740864 248 0.0
RAM 93336 93336 0 0.0
lock-app qpg6200+debug FLASH 750740 751004 264 0.0
RAM 93364 93364 0 0.0
stm32 light STM32WB5MM-DK FLASH 465932 466076 144 0.0
RAM 141376 141376 0 0.0
telink bridge-app tl7218x FLASH 704898 705062 164 0.0
RAM 93636 93636 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 796566 796652 86 0.0
RAM 44056 44052 -4 -0.0
light-app-ota-shell-factory-data tl7218x FLASH 784974 785054 80 0.0
RAM 100952 100948 -4 -0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 712256 712336 80 0.0
RAM 54272 54272 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 748832 748912 80 0.0
RAM 77436 77436 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 725570 725656 86 0.0
RAM 37028 37028 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 605136 605222 86 0.0
RAM 112432 112428 -4 -0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 820554 820638 84 0.0
RAM 99204 99200 -4 -0.0
tizen all-clusters-app arm unknown 5308 5312 4 0.1
FLASH 1819768 1820624 856 0.0
RAM 97436 97516 80 0.1
chip-tool-ubsan arm unknown 20700 20700 0 0.0
FLASH 20964602 20964602 0 0.0
RAM 9120812 9120812 0 0.0

@github-actions github-actions bot added the app label Jun 18, 2025
Copy link
github-actions bot commented Jun 18, 2025

PR #39393: Size comparison from ebbcfb7 to 7c228f6

Full report (71 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section ebbcfb7 7c228f6 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1102760 1103062 302 0.0
RAM 179018 179026 8 0.0
bl702 lighting-app bl702+eth FLASH 655794 656224 430 0.1
RAM 134961 134969 8 0.0
bl702+wifi FLASH 833348 833650 302 0.0
RAM 124533 124541 8 0.0
bl706+mfd+rpc+littlefs FLASH 1066024 1066070 46 0.0
RAM 117365 117373 8 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 895326 895628 302 0.0
RAM 105668 105660 -8 -0.0
lighting-app bl702l+mfd+littlefs FLASH 979050 979352 302 0.0
RAM 109852 109860 8 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 814292 814492 200 0.0
RAM 120024 120024 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825984 826184 200 0.0
RAM 125176 125176 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771852 772052 200 0.0
RAM 113580 113580 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756160 756360 200 0.0
RAM 113788 113788 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 548766 549382 616 0.1
RAM 205144 205144 0 0.0
lock CC3235SF_LAUNCHXL FLASH 582238 582494 256 0.0
RAM 205336 205336 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 663205 663349 144 0.0
RAM 77456 77456 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 683049 683201 152 0.0
RAM 80096 80096 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 683049 683201 152 0.0
RAM 80096 80096 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 639981 640125 144 0.0
RAM 72524 72524 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 624573 624717 144 0.0
RAM 73768 73768 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 644201 644345 144 0.0
RAM 76320 76320 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 644201 644345 144 0.0
RAM 76320 76320 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 645501 645645 144 0.0
RAM 76768 76768 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 665209 665361 152 0.0
RAM 79320 79320 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 665209 665361 152 0.0
RAM 79320 79320 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 620153 620305 152 0.0
RAM 70880 70880 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 640013 640157 144 0.0
RAM 73512 73512 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 640013 640157 144 0.0
RAM 73512 73512 0 0.0
efr32 lock-app BRD4187C FLASH 947724 947868 144 0.0
RAM 132004 132004 0 0.0
BRD4338a FLASH 744164 744780 616 0.1
RAM 206872 206872 0 0.0
window-app BRD4187C FLASH 1040344 1040968 624 0.1
RAM 128132 128100 -32 -0.0
esp32 all-clusters-app c3devkit DRAM 103488 103496 8 0.0
FLASH 1809474 1811094 1620 0.1
IRAM 83862 83862 0 0.0
m5stack DRAM 122356 122356 0 0.0
FLASH 1774582 1776142 1560 0.1
IRAM 117071 117071 0 0.0
linux air-purifier-app debug unknown 4848 4848 0 0.0
FLASH 2794988 2796698 1710 0.1
RAM 117352 117352 0 0.0
all-clusters-app debug unknown 5664 5664 0 0.0
FLASH 6376154 6385044 8890 0.1
RAM 538160 538336 176 0.0
all-clusters-minimal-app debug unknown 5528 5528 0 0.0
FLASH 5473570 5474856 1286 0.0
RAM 228024 228024 0 0.0
bridge-app debug unknown 5560 5560 0 0.0
FLASH 4805770 4807350 1580 0.0
RAM 207632 207776 144 0.1
camera-app debug unknown 8968 8968 0 0.0
FLASH 6925755 6933707 7952 0.1
RAM 229896 229896 0 0.0
camera-controller debug unknown 9184 9184 0 0.0
FLASH 14330251 14330267 16 0.0
RAM 659288 659288 0 0.0
chip-tool debug unknown 6240 6240 0 0.0
FLASH 14671551 14671563 12 0.0
RAM 652848 652848 0 0.0
chip-tool-ipv6only arm64 unknown 40544 40544 0 0.0
FLASH 12653132 12653151 19 0.0
RAM 699152 699144 -8 -0.0
fabric-admin debug unknown 5920 5920 0 0.0
FLASH 12739455 12739499 44 0.0
RAM 651832 651832 0 0.0
fabric-bridge-app debug unknown 4808 4808 0 0.0
FLASH 4594462 4593550 -912 -0.0
RAM 193504 193536 32 0.0
fabric-sync debug unknown 5056 5056 0 0.0
FLASH 5742157 5741501 -656 -0.0
RAM 490928 490944 16 0.0
lighting-app debug+rpc+ui unknown 6272 6272 0 0.0
FLASH 5655169 5656433 1264 0.0
RAM 209928 209928 0 0.0
lock-app debug unknown 5488 5488 0 0.0
FLASH 4836234 4837550 1316 0.0
RAM 197160 197160 0 0.0
ota-provider-app debug unknown 4848 4848 0 0.0
FLASH 4444246 4446282 2036 0.0
RAM 186048 186192 144 0.1
ota-requestor-app debug unknown 4728 4728 0 0.0
FLASH 4516068 4518276 2208 0.0
RAM 188856 189000 144 0.1
shell debug unknown 4248 4248 0 0.0
FLASH 3081580 3083964 2384 0.1
RAM 151432 151624 192 0.1
thermostat-no-ble arm64 unknown 9800 9800 0 0.0
FLASH 4234372 4235111 739 0.0
RAM 233432 233432 0 0.0
tv-app debug unknown 5824 5824 0 0.0
FLASH 6104237 6105757 1520 0.0
RAM 615032 615176 144 0.0
tv-casting-app debug unknown 5336 5336 0 0.0
FLASH 12822941 12824525 1584 0.0
RAM 769136 769296 160 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 922992 923244 252 0.0
RAM 167414 167416 2 0.0
nrf7002dk_nrf5340_cpuapp FLASH 913976 914080 104 0.0
RAM 145658 145660 2 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 859488 859620 132 0.0
RAM 141047 141045 -2 -0.0
nxp contact mcxw71+release FLASH 625512 625576 64 0.0
RAM 63148 63140 -8 -0.0
lock mcxw71+release FLASH 776656 776792 136 0.0
RAM 67804 67804 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1672468 1673556 1088 0.1
RAM 212408 212416 8 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1576156 1576780 624 0.0
RAM 208464 208464 0 0.0
light cy8ckit_062s2_43012 FLASH 1448796 1449436 640 0.0
RAM 197192 197184 -8 -0.0
lock cy8ckit_062s2_43012 FLASH 1481164 1481788 624 0.0
RAM 224904 224904 0 0.0
qpg lighting-app qpg6200+debug FLASH 740616 740864 248 0.0
RAM 93336 93336 0 0.0
lock-app qpg6200+debug FLASH 750740 751004 264 0.0
RAM 93364 93364 0 0.0
stm32 light STM32WB5MM-DK FLASH 465932 466076 144 0.0
RAM 141376 141376 0 0.0
telink bridge-app tl7218x FLASH 704898 705062 164 0.0
RAM 93636 93636 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 796566 796652 86 0.0
RAM 44056 44052 -4 -0.0
light-app-ota-shell-factory-data tl7218x FLASH 784974 785054 80 0.0
RAM 100952 100948 -4 -0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 712256 712336 80 0.0
RAM 54272 54272 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 748832 748912 80 0.0
RAM 77436 77436 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 725570 725656 86 0.0
RAM 37028 37028 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 605136 605222 86 0.0
RAM 112432 112428 -4 -0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 820554 820638 84 0.0
RAM 99204 99200 -4 -0.0
tizen all-clusters-app arm unknown 5308 5312 4 0.1
FLASH 1819768 1820624 856 0.0
RAM 97436 97516 80 0.1
chip-tool-ubsan arm unknown 20700 20700 0 0.0
FLASH 20964602 20964602 0 0.0
RAM 9120812 9120812 0 0.0

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

Successfully merging this pull request may close these issues.

4 participants
0