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

cherry-pick: Update TCUpdateDeadline to be nullable to match spec (#37438) #37478

Merged

Conversation

cecille
Copy link
Contributor

@cecille cecille commented Feb 8, 2025

  • Update TCUpdateDeadline to be nullable to match spec

  • Empty-Commit

  • Add xml file

  • re-add option=true

  • regen

Testing

tested in CI

)

* Update TCUpdateDeadline to be nullable to match spec

* Empty-Commit

* Add xml file

* re-add option=true

* regen
@cecille cecille requested review from a team as code owners February 8, 2025 01:12
Copy link

semanticdiff-com bot commented Feb 8, 2025

Review changes with  SemanticDiff

Changed Files
File Status
  src/app/zap-templates/zcl/data-model/chip/general-commissioning-cluster.xml  60% 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_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_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/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/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/laundry-washer-app/nxp/zap/laundry-washer-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/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/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/controller/python/chip/clusters/Objects.py 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

@andy31415 andy31415 merged commit 37a2d68 into project-chip:v1.4-branch Feb 8, 2025
61 of 69 checks passed
Copy link

github-actions bot commented Feb 8, 2025

PR #37478: Size comparison from a06a0f5 to 6c30a7c

Full report (88 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section a06a0f5 6c30a7c change % change
bl602 lighting-app bl602 FLASH 1280592 1280592 0 0.0
RAM 96000 96000 0 0.0
bl602+mfd FLASH 1308896 1308896 0 0.0
RAM 95656 95656 0 0.0
bl602+rpc FLASH 1335260 1335260 0 0.0
RAM 103976 103976 0 0.0
bl702 lighting-app bl702 FLASH 944994 944994 0 0.0
RAM 15105 15105 0 0.0
bl702+mfd FLASH 957704 957704 0 0.0
RAM 14769 14769 0 0.0
bl702+rpc FLASH 1051152 1051152 0 0.0
RAM 23661 23661 0 0.0
bl706-eth FLASH 658126 658126 0 0.0
RAM 24745 24745 0 0.0
bl706-wifi FLASH 824922 824922 0 0.0
RAM 13965 13965 0 0.0
bl702l lighting-app bl702l FLASH 961930 961930 0 0.0
RAM 16804 16804 0 0.0
bl702l+mfd FLASH 974692 974692 0 0.0
RAM 16468 16468 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 829372 829372 0 0.0
RAM 123452 123452 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 814704 814704 0 0.0
RAM 125332 125332 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 761276 761276 0 0.0
RAM 113824 113824 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 745512 745512 0 0.0
RAM 114016 114016 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 616966 616966 0 0.0
RAM 205908 205908 0 0.0
lock CC3235SF_LAUNCHXL FLASH 657054 657054 0 0.0
RAM 206060 206060 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 678357 678357 0 0.0
RAM 78668 78668 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 698209 698209 0 0.0
RAM 81300 81300 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 698209 698209 0 0.0
RAM 81300 81300 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 655137 655137 0 0.0
RAM 73736 73736 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614693 614693 0 0.0
RAM 71628 71628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634329 634329 0 0.0
RAM 74180 74180 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634329 634329 0 0.0
RAM 74180 74180 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 633997 633997 0 0.0
RAM 74676 74676 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 653713 653713 0 0.0
RAM 77228 77228 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 653713 653713 0 0.0
RAM 77228 77228 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 609301 609301 0 0.0
RAM 68764 68764 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 629161 629161 0 0.0
RAM 71396 71396 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 629161 629161 0 0.0
RAM 71396 71396 0 0.0
efr32 lighting-app BRD4187C FLASH 934132 934124 -8 -0.0
RAM 136244 136244 0 0.0
lock-app BRD2605a FLASH 741288 741280 -8 -0.0
RAM 232120 232120 0 0.0
BRD4338a FLASH 741736 741712 -24 -0.0
RAM 232004 232004 0 0.0
window-app BRD4187C FLASH 1017568 1017560 -8 -0.0
RAM 128176 128176 0 0.0
esp32 all-clusters-app c3devkit DRAM 94240 94240 0 0.0
FLASH 1538510 1538510 0 0.0
IRAM 82538 82538 0 0.0
m5stack DRAM 115192 115192 0 0.0
FLASH 1548930 1548938 8 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4688 4688 0 0.0
FLASH 2779879 2779879 0 0.0
RAM 129488 129488 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 6083854 6083854 0 0.0
RAM 510560 510560 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5417104 5417104 0 0.0
RAM 241200 241200 0 0.0
bridge-app debug unknown 5408 5408 0 0.0
FLASH 4750526 4750526 0 0.0
RAM 218384 218384 0 0.0
chip-tool debug unknown 5960 5960 0 0.0
FLASH 12655952 12655966 14 0.0
RAM 560658 560658 0 0.0
chip-tool-ipv6only arm64 unknown 20672 20672 0 0.0
FLASH 11293856 11293872 16 0.0
RAM 610976 610976 0 0.0
fabric-admin debug unknown 5792 5792 0 0.0
FLASH 11008297 11008297 0 0.0
RAM 560090 560090 0 0.0
fabric-bridge-app debug unknown 4632 4632 0 0.0
FLASH 4573492 4573492 0 0.0
RAM 205048 205048 0 0.0
lighting-app debug+rpc+ui unknown 6056 6056 0 0.0
FLASH 5690305 5690305 0 0.0
RAM 228456 228456 0 0.0
lock-app debug unknown 5344 5344 0 0.0
FLASH 4800122 4800122 0 0.0
RAM 204472 204472 0 0.0
ota-provider-app debug unknown 4720 4720 0 0.0
FLASH 4429510 4429510 0 0.0
RAM 198192 198192 0 0.0
ota-requestor-app debug unknown 4656 4656 0 0.0
FLASH 4568326 4568326 0 0.0
RAM 202760 202760 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 3109917 3109917 0 0.0
RAM 159280 159280 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4317984 4317984 0 0.0
RAM 242936 242936 0 0.0
tv-app debug unknown 5624 5624 0 0.0
FLASH 6027989 6027989 0 0.0
RAM 584096 584096 0 0.0
tv-casting-app debug unknown 5208 5208 0 0.0
FLASH 10849965 10849981 16 0.0
RAM 648944 648944 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 914292 914292 0 0.0
RAM 142359 142359 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 885080 885080 0 0.0
RAM 140498 140498 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 847696 847696 0 0.0
RAM 141253 141253 0 0.0
nxp contact k32w0+release FLASH 582040 582040 0 0.0
RAM 70944 70944 0 0.0
k32w1+release FLASH 596752 596752 0 0.0
RAM 63168 63168 0 0.0
mcxw71+release FLASH 596512 596512 0 0.0
RAM 63168 63168 0 0.0
light k32w0+release FLASH 618644 618644 0 0.0
RAM 70416 70416 0 0.0
k32w1+release FLASH 682736 682736 0 0.0
RAM 48808 48808 0 0.0
mcxw71+release FLASH 682752 682752 0 0.0
RAM 48808 48808 0 0.0
lock k32w1+release FLASH 705088 705088 0 0.0
RAM 67308 67308 0 0.0
mcxw71+release FLASH 705112 705112 0 0.0
RAM 67308 67308 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646140 1646140 0 0.0
RAM 211400 211400 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552196 1552196 0 0.0
RAM 208200 208200 0 0.0
light cy8ckit_062s2_43012 FLASH 1467668 1467668 0 0.0
RAM 201200 201200 0 0.0
lock cy8ckit_062s2_43012 FLASH 1464740 1464740 0 0.0
RAM 225560 225560 0 0.0
qpg lighting-app qpg6105+debug FLASH 660400 660400 0 0.0
RAM 105396 105396 0 0.0
lock-app qpg6105+debug FLASH 618412 618412 0 0.0
RAM 99864 99864 0 0.0
stm32 light STM32WB5MM-DK FLASH 481696 481696 0 0.0
RAM 144844 144844 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 620798 620798 0 0.0
RAM 50648 50648 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 688000 688000 0 0.0
RAM 148488 148488 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 780992 780992 0 0.0
RAM 110440 110440 0 0.0
bridge-app tlsr9258a FLASH 680902 680902 0 0.0
RAM 91304 91304 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 620562 620562 0 0.0
RAM 50600 50600 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 708502 708502 0 0.0
RAM 73940 73940 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 625506 625506 0 0.0
RAM 144468 144468 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 811266 811266 0 0.0
RAM 99100 99100 0 0.0
lock-app-dfu tlsr9528a FLASH 656468 656468 0 0.0
RAM 66660 66660 0 0.0
ota-requestor-app tlsr9258a FLASH 696878 696878 0 0.0
RAM 90896 90896 0 0.0
pump-app-usb tlsr9518adk80d FLASH 634194 634194 0 0.0
RAM 55476 55476 0 0.0
pump-controller-app tlsr9518adk80d FLASH 611384 611384 0 0.0
RAM 52720 52720 0 0.0
shell tlsr9518adk80d FLASH 467862 467862 0 0.0
RAM 68168 68168 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 627722 627722 0 0.0
RAM 52312 52312 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 653520 653520 0 0.0
RAM 56268 56268 0 0.0
thermostat tlsr9518adk80d FLASH 638116 638116 0 0.0
RAM 53112 53112 0 0.0
window-covering tlsr9118bdk40d FLASH 524262 524262 0 0.0
RAM 97444 97444 0 0.0
tizen all-clusters-app arm unknown 4904 4904 0 0.0
FLASH 1725936 1725936 0 0.0
RAM 89076 89076 0 0.0
chip-tool-ubsan arm unknown 10424 10424 0 0.0
FLASH 17513498 17513530 32 0.0
RAM 7628152 7628152 0 0.0

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 <[email protected]>

* 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 <[email protected]>

* Restyle

* Renamed variable

---------

Co-authored-by: Tennessee Carmel-Veilleux <[email protected]>

* 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 <[email protected]>
Co-authored-by: Andrei Litvin <[email protected]>
Co-authored-by: Yufeng Wang <[email protected]>
Co-authored-by: Tennessee Carmel-Veilleux <[email protected]>
Co-authored-by: Vivien Nicolas <[email protected]>
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.

3 participants