Skip to content
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

Update TCUpdateDeadline to be nullable to match spec #37438

Merged
merged 5 commits into from
Feb 7, 2025

Conversation

tehampson
Copy link
Contributor

@tehampson tehampson requested review from a team as code owners February 6, 2025 20:44
Copy link

semanticdiff-com bot commented Feb 6, 2025

Review changes with  SemanticDiff

Changed Files
File Status
  src/controller/python/chip/clusters/Objects.py  10% smaller
  src/app/zap-templates/zcl/data-model/chip/general-commissioning-cluster.xml  6% smaller
  examples/air-purifier-app/air-purifier-common/air-purifier-app.matter Unsupported file format
  examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter Unsupported file format
  examples/all-clusters-app/all-clusters-common/all-clusters-app.matter Unsupported file format
  examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter Unsupported file format
  examples/bridge-app/bridge-common/bridge-app.matter Unsupported file format
  examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter Unsupported file format
  examples/chef/devices/rootnode_airpurifier_73a6fe2651.matter Unsupported file format
  examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter Unsupported file format
  examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter Unsupported file format
  examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter Unsupported file format
  examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter Unsupported file format
  examples/chef/devices/rootnode_contactsensor_27f76aeaf5.matter Unsupported file format
  examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter Unsupported file format
  examples/chef/devices/rootnode_contactsensor_lightsensor_occupancysensor_temperaturesensor_pressuresensor_flowsensor_humiditysensor_airqualitysensor_powersource_367e7cea91.matter Unsupported file format
  examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter Unsupported file format
  examples/chef/devices/rootnode_dimmablepluginunit_f8a9a0b9d4.matter Unsupported file format
  examples/chef/devices/rootnode_dishwasher_cc105034fe.matter Unsupported file format
  examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter Unsupported file format
  examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter Unsupported file format
  examples/chef/devices/rootnode_fan_7N2TobIlOX.matter Unsupported file format
  examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter Unsupported file format
  examples/chef/devices/rootnode_genericswitch_2dfff6e516.matter Unsupported file format
  examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter Unsupported file format
  examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter Unsupported file format
  examples/chef/devices/rootnode_heatpump_87ivjRAECh.matter Unsupported file format
  examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter Unsupported file format
  examples/chef/devices/rootnode_laundrydryer_01796fe396.matter Unsupported file format
  examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter Unsupported file format
  examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter Unsupported file format
  examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter Unsupported file format
  examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter Unsupported file format
  examples/chef/devices/rootnode_onofflight_samplemei.matter Unsupported file format
  examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter Unsupported file format
  examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter Unsupported file format
  examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter Unsupported file format
  examples/chef/devices/rootnode_pump_5f904818cc.matter Unsupported file format
  examples/chef/devices/rootnode_pump_a811bb33a0.matter Unsupported file format
  examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter Unsupported file format
  examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter Unsupported file format
  examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter Unsupported file format
  examples/chef/devices/rootnode_smokecoalarm_686fe0dcb8.matter Unsupported file format
  examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter Unsupported file format
  examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter Unsupported file format
  examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter Unsupported file format
  examples/chef/devices/rootnode_waterleakdetector_0b067acfa3.matter Unsupported file format
  examples/chef/devices/rootnode_watervalve_6bb39f1f67.matter Unsupported file format
  examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter Unsupported file format
  examples/contact-sensor-app/bouffalolab/data_model/contact-sensor-app.matter Unsupported file format
  examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter Unsupported file format
  examples/contact-sensor-app/nxp/zap-lit/contact-sensor-app.matter Unsupported file format
  examples/contact-sensor-app/nxp/zap-sit/contact-sensor-app.matter Unsupported file format
  examples/dishwasher-app/dishwasher-common/dishwasher-app.matter Unsupported file format
  examples/dishwasher-app/silabs/data_model/dishwasher-thread-app.matter Unsupported file format
  examples/dishwasher-app/silabs/data_model/dishwasher-wifi-app.matter Unsupported file format
  examples/energy-management-app/energy-management-common/energy-management-app.matter Unsupported file format
  examples/fabric-bridge-app/fabric-bridge-common/fabric-bridge-app.matter Unsupported file format
  examples/fabric-sync/bridge/fabric-bridge.matter Unsupported file format
  examples/laundry-washer-app/nxp/zap/laundry-washer-app.matter Unsupported file format
  examples/light-switch-app/light-switch-common/icd-lit-light-switch-app.matter Unsupported file format
  examples/light-switch-app/light-switch-common/light-switch-app.matter Unsupported file format
  examples/light-switch-app/qpg/zap/switch.matter Unsupported file format
  examples/lighting-app-data-mode-no-unique-id/lighting-common/lighting-app.matter Unsupported file format
  examples/lighting-app/bouffalolab/data_model/lighting-app-ethernet.matter Unsupported file format
  examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter Unsupported file format
  examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter Unsupported file format
  examples/lighting-app/lighting-common/lighting-app.matter Unsupported file format
  examples/lighting-app/nxp/zap/lighting-on-off.matter Unsupported file format
  examples/lighting-app/qpg/zap/light.matter Unsupported file format
  examples/lighting-app/silabs/data_model/lighting-thread-app.matter Unsupported file format
  examples/lighting-app/silabs/data_model/lighting-wifi-app.matter Unsupported file format
  examples/lit-icd-app/lit-icd-common/lit-icd-server-app.matter Unsupported file format
  examples/lock-app/lock-common/lock-app.matter Unsupported file format
  examples/lock-app/nxp/zap/lock-app.matter Unsupported file format
  examples/lock-app/qpg/zap/lock.matter Unsupported file format
  examples/lock-app/silabs/data_model/lock-app.matter Unsupported file format
  examples/log-source-app/log-source-common/log-source-app.matter Unsupported file format
  examples/microwave-oven-app/microwave-oven-common/microwave-oven-app.matter Unsupported file format
  examples/network-manager-app/network-manager-common/network-manager-app.matter Unsupported file format
  examples/ota-provider-app/ota-provider-common/ota-provider-app.matter Unsupported file format
  examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter Unsupported file format
  examples/placeholder/linux/apps/app1/config.matter Unsupported file format
  examples/placeholder/linux/apps/app2/config.matter Unsupported file format
  examples/pump-app/pump-common/pump-app.matter Unsupported file format
  examples/pump-app/silabs/data_model/pump-thread-app.matter Unsupported file format
  examples/pump-app/silabs/data_model/pump-wifi-app.matter Unsupported file format
  examples/pump-controller-app/pump-controller-common/pump-controller-app.matter Unsupported file format
  examples/refrigerator-app/refrigerator-common/refrigerator-app.matter Unsupported file format
  examples/refrigerator-app/silabs/data_model/refrigerator-thread-app.matter Unsupported file format
  examples/refrigerator-app/silabs/data_model/refrigerator-wifi-app.matter Unsupported file format
  examples/rvc-app/rvc-common/rvc-app.matter Unsupported file format
  examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter Unsupported file format
  examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter Unsupported file format
  examples/terms-and-conditions-app/terms-and-conditions-common/terms-and-conditions-app.matter Unsupported file format
  examples/thermostat/nxp/zap/thermostat_matter_br.matter Unsupported file format
  examples/thermostat/nxp/zap/thermostat_matter_thread.matter Unsupported file format
  examples/thermostat/nxp/zap/thermostat_matter_wifi.matter Unsupported file format
  examples/thermostat/qpg/zap/thermostaticRadiatorValve.matter Unsupported file format
  examples/thermostat/thermostat-common/thermostat.matter Unsupported file format
  examples/thread-br-app/thread-br-common/thread-br-app.matter Unsupported file format
  examples/tv-app/tv-common/tv-app.matter Unsupported file format
  examples/tv-casting-app/tv-casting-common/tv-casting-app.matter Unsupported file format
  examples/virtual-device-app/virtual-device-common/virtual-device-app.matter Unsupported file format
  examples/water-leak-detector-app/water-leak-detector-common/water-leak-detector-app.matter Unsupported file format
  examples/window-app/common/window-app.matter Unsupported file format
  src/controller/data_model/controller-clusters.matter Unsupported file format
  src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java  0% smaller
  src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java  0% smaller
  src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java  0% smaller
  src/controller/java/generated/java/matter/controller/cluster/clusters/GeneralCommissioningCluster.kt Unsupported file format
  src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp Unsupported file format
  src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm Unsupported file format
  zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp Unsupported file format
  zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h Unsupported file format
  zzz_generated/app-common/app-common/zap-generated/cluster-objects.h Unsupported file format
  zzz_generated/chip-tool/zap-generated/cluster/Commands.h Unsupported file format
  zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp Unsupported file format

@tehampson tehampson added the skip-protocol-compatibility Marker that protocol backwards compatibility checks are to be skipped label Feb 6, 2025
@tehampson
Copy link
Contributor Author

Adding skip compatibility since this is a provisional attribute

Copy link

github-actions bot commented Feb 6, 2025

PR #37438: Size comparison from a38f2aa to 2967645

Full report (3 builds for cc32xx, stm32)
platform target config section a38f2aa 2967645 change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538621 538621 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572493 572493 0 0.0
RAM 205360 205360 0 0.0
stm32 light STM32WB5MM-DK FLASH 482872 482872 0 0.0
RAM 144688 144688 0 0.0

@github-actions github-actions bot added the app label Feb 6, 2025
Copy link

github-actions bot commented Feb 6, 2025

PR #37438: Size comparison from a38f2aa to f660044

Full report (3 builds for cc32xx, stm32)
platform target config section a38f2aa f660044 change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538621 538925 304 0.1
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572493 572805 312 0.1
RAM 205360 205360 0 0.0
stm32 light STM32WB5MM-DK FLASH 482872 483016 144 0.0
RAM 144688 144688 0 0.0

Copy link

github-actions bot commented Feb 7, 2025

PR #37438: Size comparison from a38f2aa to 42b40ae

Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section a38f2aa 42b40ae change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094024 1094778 754 0.1
RAM 103314 103346 32 0.0
bl702 lighting-app bl702+eth FLASH 650542 650600 58 0.0
RAM 25265 25265 0 0.0
bl702+wifi FLASH 828506 828564 58 0.0
RAM 13981 13981 0 0.0
bl706+mfd+rpc+littlefs FLASH 1057066 1057816 750 0.1
RAM 23861 23893 32 0.1
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 888444 888502 58 0.0
RAM 18504 18504 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 971486 971544 58 0.0
RAM 16368 16368 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 838240 838456 216 0.0
RAM 123480 123480 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 823644 823860 216 0.0
RAM 125360 125360 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 770820 771036 216 0.0
RAM 113820 113820 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755088 755304 216 0.0
RAM 114028 114028 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538621 538925 304 0.1
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572493 572805 312 0.1
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 679585 679809 224 0.0
RAM 78548 78548 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 699429 699653 224 0.0
RAM 81188 81188 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 699429 699653 224 0.0
RAM 81188 81188 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 656365 656589 224 0.0
RAM 73616 73616 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 615945 616153 208 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635573 635781 208 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635573 635781 208 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635449 635657 208 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655157 655365 208 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655157 655365 208 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 611861 612077 216 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631721 631937 216 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631721 631937 216 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 936408 937120 712 0.1
RAM 159872 159904 32 0.0
BRD4338a FLASH 730348 730516 168 0.0
RAM 234716 234716 0 0.0
window-app BRD4187C FLASH 1029656 1029808 152 0.0
RAM 128008 128008 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1577420 1577574 154 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116100 116100 0 0.0
FLASH 1545326 1545434 108 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4760 4760 0 0.0
FLASH 2709171 2709805 634 0.0
RAM 132784 132784 0 0.0
all-clusters-app debug unknown 5568 5568 0 0.0
FLASH 5975584 5976268 684 0.0
RAM 531600 531600 0 0.0
all-clusters-minimal-app debug unknown 5464 5464 0 0.0
FLASH 5323948 5324612 664 0.0
RAM 242712 242712 0 0.0
bridge-app debug unknown 5480 5480 0 0.0
FLASH 4682560 4683224 664 0.0
RAM 221448 221448 0 0.0
chip-tool debug unknown 6120 6120 0 0.0
FLASH 13099268 13099964 696 0.0
RAM 596578 596578 0 0.0
chip-tool-ipv6only arm64 unknown 21816 21816 0 0.0
FLASH 11162800 11163392 592 0.0
RAM 648256 648256 0 0.0
fabric-admin debug unknown 5808 5808 0 0.0
FLASH 11388297 11388981 684 0.0
RAM 596362 596362 0 0.0
fabric-bridge-app debug unknown 4736 4736 0 0.0
FLASH 4507818 4508482 664 0.0
RAM 208632 208632 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5614085 5614773 688 0.0
RAM 483504 483504 0 0.0
lighting-app debug+rpc+ui unknown 6144 6144 0 0.0
FLASH 5625217 5630465 5248 0.1
RAM 231728 231792 64 0.0
lock-app debug unknown 5416 5416 0 0.0
FLASH 4731186 4731818 632 0.0
RAM 207696 207696 0 0.0
ota-provider-app debug unknown 4776 4776 0 0.0
FLASH 4360136 4360788 652 0.0
RAM 201336 201336 0 0.0
ota-requestor-app debug unknown 4728 4728 0 0.0
FLASH 4497640 4498196 556 0.0
RAM 205920 205920 0 0.0
shell debug unknown 4256 4256 0 0.0
FLASH 3005709 3006445 736 0.0
RAM 160472 160472 0 0.0
thermostat-no-ble arm64 unknown 9512 9512 0 0.0
FLASH 4097192 4097736 544 0.0
RAM 246024 246024 0 0.0
tv-app debug unknown 5744 5744 0 0.0
FLASH 5952965 5953653 688 0.0
RAM 606904 606904 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11272797 11273485 688 0.0
RAM 710864 710864 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907432 907584 152 0.0
RAM 142411 142411 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901980 902100 120 0.0
RAM 124755 124755 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846040 846188 148 0.0
RAM 141339 141339 0 0.0
nxp contact k32w0+release FLASH 584624 584768 144 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 599936 600232 296 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 610932 611076 144 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685336 685552 216 0.0
RAM 48680 48680 0 0.0
lock mcxw71+release FLASH 748832 749040 208 0.0
RAM 67492 67492 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646740 1646972 232 0.0
RAM 211576 211576 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1553628 1553876 248 0.0
RAM 208392 208392 0 0.0
light cy8ckit_062s2_43012 FLASH 1469356 1469604 248 0.0
RAM 200368 200368 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467308 1467540 232 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662216 662360 144 0.0
RAM 105220 105220 0 0.0
lock-app qpg6105+debug FLASH 619996 620148 152 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 482872 483016 144 0.0
RAM 144688 144688 0 0.0
telink bridge-app tl7218x FLASH 665258 665410 152 0.0
RAM 90828 90828 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622020 622172 152 0.0
RAM 31500 31500 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 770804 770956 152 0.0
RAM 43568 43568 0 0.0
tl7218x FLASH 779306 779458 152 0.0
RAM 98704 98704 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680618 680770 152 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709172 709324 152 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 626108 626260 152 0.0
RAM 142032 142032 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 813492 814104 612 0.1
RAM 99576 99608 32 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1752232 1752596 364 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18696694 18686614 -10080 -0.1
RAM 8182536 8183320 784 0.0

@mergify mergify bot merged commit eea382e into project-chip:master Feb 7, 2025
73 checks passed
cecille pushed a commit to cecille/connectedhomeip that referenced this pull request Feb 8, 2025
)

* Update TCUpdateDeadline to be nullable to match spec

* Empty-Commit

* Add xml file

* re-add option=true

* regen
andy31415 pushed a commit that referenced this pull request Feb 8, 2025
* Update TCUpdateDeadline to be nullable to match spec

* Empty-Commit

* Add xml file

* re-add option=true

* regen

Co-authored-by: Terence Hampson <thampson@google.com>
cecille added a commit to cecille/connectedhomeip that referenced this pull request Feb 10, 2025
cecille added a commit to cecille/connectedhomeip that referenced this pull request Feb 10, 2025
andy31415 added a commit that referenced this pull request Feb 11, 2025
* Revert "Update TCUpdateDeadline to be nullable to match spec (#37438) (#37478)"

This reverts commit 37a2d68.

* Fix zap

Something about the last cherry pick broke zap. Re-applying the
changes manually and re-running zap.

* Feature/enhanced setup flow feature (#34065)

* Add initial feature logic for Terms and Conditions (TC) acknowledgements

This commit introduces the initial logic for handling Terms and
Conditions (TC) acknowledgements in the General Commissioning cluster.
The logic includes support for setting and checking TC acknowledgements
and versions during the commissioning process.

Changes include:
- Handling TC acknowledgements and TC acknowledgement version in the
  pairing command.
- Logic to read TC attributes and check TC acceptance in the General
  Commissioning server.
- Introduction of classes to manage TC acceptance logic.
- Initialization and use of TC providers in the server setup.
- Addition of a new commissioning stage for TC acknowledgements in the
  commissioning flow.

The feature logic is currently disabled and will be enabled in an
example in a subsequent commit.

* ./scripts/helpers/restyle-diff.sh @{u}

* Ignore file reference check on TermsAndConditionsManager.cpp

The TermsAndConditionsManager.cpp file is only referenced within sample
apps that utilize the Terms and Conditions feature.

* Make `terms and conditions required` build configurable:

- Moved the configuration from core into app buildconfig
- renamed the flag to expand `TC` into `TERMS AND CONDITIONS`
- updated includes in general-commissioning to include the right header
- added the configuration as a build option into targets.py/host.py
- updated unit test

* Move terms and conditions to its own target and include cpp file

- Create a separate source set for terms and conditions
- include the manager cpp in that file
- make the build conditional (this required flag moving)
- fixed typo in targets.py to make things compile

Compile-tested only (the -terms-and-conditions variant of all clusters
compiled)

* Fix mangled license blurb

* Remove edited date for CHIPConfig.h

* Fix unit tests dependencies

* Add back some includes

---------

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Decouple ember functions from general commissioning cluster (#36836)

* Decouple ember functions from general commissioning cluster

* Address review comments

* Rename gAttrAccess

* Remove new added log info

* Flag SetTCAcknowledgements command

* Revert "Flag SetTCAcknowledgements command"

This reverts commit 90de8a1.

* Add the original debug log back

* feat: Add terms-and-conditions sample app for CI testing (#36950)

* feat: Add terms-and-conditions sample app for CI testing

Add a new sample application that demonstrates and tests the terms and
conditions feature. This app will be integrated into the CI pipeline to
prevent regressions and ensure the feature continues to work as
expected.

The sample app serves as both a reference implementation and an
automated test case for the terms and conditions functionality.

```bash
./scripts/build/build_examples.py --target linux-x64-terms-and-conditions build
```

* Update cluster configurations for app testing

- Enable switch cluster for basic app control testing
- Enable network commissioning cluster for in-app commission testing
- Disable provisional clusters as they are not required
- Disable other non-required clusters to streamline testing setup

This change focuses the cluster configuration on essential components
needed for basic app control and commissioning testing scenarios.

* refactor: Remove unused attributes from Switch cluster

Remove unused attributes from the Switch cluster to comply with the "On/Off Light"
device type specification as defined in the Matter device library v1.4. This change
removes several server-side attributes including ServerList, ClientList, PartsList,
and various internal lists that are not required for the basic On/Off Light
functionality.

* feat: Add Descriptor cluster and enable attribute reporting

Add the mandatory Descriptor cluster to endpoint 1 and enable attribute reporting
for the device. Changes include:
- Add Descriptor cluster with all required attributes (deviceTypeList, serverList, etc.)
- Enable reportable flag for multiple attributes with min/max reporting intervals
- Configure all Descriptor cluster attributes as external callbacks

This change ensures compliance with the Matter specification for the On/Off Light
device type.

* Add Terms and Conditions (T&C) Feature Support for Commissioning (#36863)

* Add Terms and Conditions (T&C) Feature Support for Commissioning

This commit introduces comprehensive support for handling Terms and
Conditions (T&C) during the commissioning process, enhancing
compatibility with Matter device certification requirements.

Key changes include:

1. **Commissioning Process Updates**:
   - Introduced `SetRequireTermsAndConditionsAcknowledgement`,
     `SetTermsAcknowledgements`, and `SetSkipCommissioningComplete` APIs
     in the commissioning library.
   - Updated commissioning stages to include `kGetTCAcknowledgments` and
     `kConfigureTCAcknowledgments` for seamless integration of T&C
     acknowledgements.
   - Added methods for processing T&C acknowledgements and advancing
     commissioning stages upon user response.

2. **Test Framework Enhancements**:
   - Added arguments (`tc_version`, `tc_user_response`,
     `in_test_commissioning_method`) for specifying T&C configuration in
     tests.
   - Enhanced `populate_commissioning_args` to manage new T&C-related
     arguments.
   - Updated Python test bindings and Matter test infrastructure to
     support T&C workflows.

3. **Chip-Tool Improvements**:
   - Extended `PairingCommand` to handle T&C-related arguments
     (`require-tc-acknowledgements`, `tc-acknowledgements`,
     `tc-acknowledgements-version`) for test scenarios.
   - Ensured backward compatibility by defaulting new parameters to
     preserve pre-1.4 behavior.

* Removed the "wait for terms and conditions stage"

The wait-stage is not required. The user input availability must be a
pre-condition for starting the AutoCommissioner process. The wait stage
was previously to support requesting user input after identifying the
device VID/PID using a different channel than within the pairing
payload.

* [doc] Improve Terms and Conditions commissioning arguments documentation

Updated documentation for T&C-related commissioning arguments to better
reflect their actual usage and purpose:

- require-tc-acknowledgements: Clarified the impact on commissioning flow
- tc-acknowledgements: Explained the bit-field usage for user acceptance
- tc-acknowledgements-version: Added context about version tracking

* [controller] Remove T&C acknowledgements from external buffer clearing

The Terms and Conditions acknowledgements parameter was incorrectly included
in ClearExternalBufferDependentValues(). This parameter contains a fixed-size
struct with two uint16_t values and does not reference any external buffers.

The CommissioningParameters class appears to be designed for additive-only
parameter setting without explicit clear/reset functionality, so removing
this inappropriate clearing operation is the correct approach.

* [controller] Fix CommissioningStage enum order for T&C acknowledgements

Move kConfigureTCAcknowledgments before kCleanup in the CommissioningStage
enum to fix cirque test failures. The tests validate that commissioning stages
do not exceed kCleanup, which was causing failures when T&C acknowledgements
were positioned after it.

While the original comment from 2 years ago suggested the enum order was
fixed, testing reveals that the stages can be reordered. The cirque tests
now pass with this corrected ordering, indicating that any previous
constraints on enum ordering no longer apply.

* [doc] Clarify required arguments for T&C acknowledgements

Update help text for require-tc-acknowledgements to explicitly state which
arguments must be provided when T&C acknowledgements are required. Instead
of the vague "valid T&C acknowledgements", now specifically mentions that
both tc-acknowledgements and tc-acknowledgements-version arguments are
mandatory for successful commissioning when this option is enabled.

* Update src/python_testing/matter_testing_infrastructure/chip/testing/matter_testing.py

Co-authored-by: Tennessee Carmel-Veilleux <tennessee.carmelveilleux@gmail.com>

* Restyle

* Renamed variable

---------

Co-authored-by: Tennessee Carmel-Veilleux <tennessee.carmelveilleux@gmail.com>

* Remove [commissioner] redundant TC acknowledgement flag (#36966)

* Remove [commissioner] redundant TC acknowledgement flag

The flag controlling whether to require TC acknowledgement is no longer
needed since TC acceptance is now a mandatory pre-condition for
commissioning. This flag was originally added to support delayed TC
acceptance during the commissioning process, but since that flow has
been removed, the flag serves no purpose.

The TC acknowledgement state itself is still required and maintained,
but the additional boolean flag controlling the requirement is redundant
and can be safely removed.

* [chip-tool] Add Enhanced Commissioning Support (T&C Flow via Local DCL) to chip-tool (#37049)

* [chip-tool] Add chip-tool dcl fake cluster commands

* [chip-tool] Add a fake local dcl server script for testing/developement purposes

* [chip-tool] Add chip-tool dcl tc-display and tc-display-by-payload commands

* [General Commissioning Server] Dynamically encode the feature map 'GeneralCommissioning::Feature::kTermsAndConditions' if CHIP_CONFIG_TERMS_AND_CONDITIONS_REQUIRED is set

* [Examples/platform/linux] Set default TermsAndConditions if requested from the command line

* [chip-tool] Add TermsAndConditions support to chip-tool pairing code command

* Reduce the feature level on zap file

* Re-run generate on terms and conditions zap

* test: Implement TC acknowledgement test cases (#37015)

* test: Implement TC acknowledgement test cases 2.5-2.8

Implements test cases for Terms & Conditions acknowledgement verification:
- TC-*-2.5: SetTCAcknowledgements verification
- TC-*-2.6: CommissioningComplete with no terms accepted
- TC-*-2.7: CommissioningComplete with invalid terms
- TC-*-2.8: TCAcknowledgements reset after Factory Reset

Remaining test cases to be implemented in follow-up changes:
- TC-*-2.9: Reset after fabric removal
- TC-*-2.10: Required terms validation
- TC-*-2.11: Post-commission updates

Testing:
Test cases implemented according to test plan specifications.
Each test verifies specific TC acknowledgement behaviors.

* test: Implement remaining TC acknowledgement test cases 2.9-2.11

Implements remaining test cases for Terms & Conditions acknowledgement verification:
- TC-*-2.9: TCAcknowledgements reset after fabric removal
- TC-*-2.10: Required terms validation
- TC-*-2.11: Post-commission TC updates

This completes the test coverage for TC acknowledgement verification,
following up on the previous implementation of test cases 2.5-2.8.
The new test cases verify:
- TC state after fabric removal
- Protection of required terms
- Ability to update TC version and acknowledgements post-commissioning

Testing:
Test cases implemented according to test plan specifications.
Each test verifies specific TC acknowledgement behaviors.

* wip

* feat(testing): Add PICS guard for Terms & Conditions test steps

- Wrap test steps in PICS guard checks for "CGEN.S" and "CGEN.S.F00(TC)"
- Ensure test steps only execute when Terms & Conditions feature flag is enabled
- Maintain test logic while adding conditional execution based on PICS support

* Added PICS and PIXIT definitions to src/app/tests/suites/certification/PICS.yaml

* refactor: Extract commission_devices functionality into reusable methods

Move commissioning logic from CommissionDeviceTest class into standalone
functions to improve code reusability. Introduce CommissioningInfo dataclass
to encapsulate commissioning parameters and add commission_device/
commission_devices helper functions.

The changes:
- Move SetupPayloadInfo dataclass to module level
- Add new CommissioningInfo dataclass for commissioning parameters
- Extract commission_device and commission_devices as standalone async functions
- Add commission_devices method to MatterBaseTest class
- Maintain backward compatibility with existing usage in CommissionDeviceTest

* Addressed PR comments

* Improve test assertions and manual testing steps

- Use Matter-specific type assertions in TC_CGEN_2_5
- Update TC_CGEN_2_8 manual testing flow and prompts

* restyle

* refactor: simplify CGEN feature identifier from CGEN.S.F00(TC) to CGEN.S.F00

- Update PICS.yaml and ci-pics-values to use simplified feature ID
- Update Python test files to use new feature identifier
- Improve error messaging when commissioning feature check fails
- Affected test files: TC_CGEN_2_5 through TC_CGEN_2_11

* Update TC_CGEN_2_5 to use Nullable type for TCUpdateDeadline validation

* Add type validation for TCAcceptedVersion and TCAcknowledgements

* add matter_asserts file from master

* Fix imports on new tests

* fix CI arguments

* Fix bad merge on all_targets_linux_x64.txt

* Remove duplicate commission_devices method to fix F811 flake8 error

Removes the redundant definition of commission_devices method from
MatterBaseTest class to resolve the flake8 F811 error which indicated
a redefinition of an unused function from line 1058.

* fix: Invert boolean return in GetAcknowledgementsRequest (#37014)

* fix: Invert boolean return in GetAcknowledgementsRequest

The GetAcknowledgementsRequest was returning an incorrect boolean value,
causing unexpected behavior. This change inverts the return value to
fix the logical error.

Testing:
- Issue identified during test plan script development
- Test plan changes will be referenced in a separate change

---------

Co-authored-by: Cecille Freeman <cecille@google.com>
Co-authored-by: Andrei Litvin <andy314@gmail.com>
Co-authored-by: Yufeng Wang <yufengwang@google.com>
Co-authored-by: Tennessee Carmel-Veilleux <tennessee.carmelveilleux@gmail.com>
Co-authored-by: Vivien Nicolas <vnicolas@apple.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app controller darwin examples review - approved skip-protocol-compatibility Marker that protocol backwards compatibility checks are to be skipped
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants