-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Add a script capable to check for backwards compatibility differences between .matter files #29349
Conversation
scripts/py_matter_idl/matter_idl/backwards_compatibility/__init__.py
Outdated
Show resolved
Hide resolved
PR #29349: Size comparison from 0f620c0 to 7b95640 Full report (32 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, k32w, linux, mbed, nrfconnect, psoc6, qpg)
|
PR #29349: Size comparison from 0f620c0 to 0792053 Full report (1 build for cc32xx)
|
PR #29349: Size comparison from 0f620c0 to 5c80164 Full report (49 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg)
|
PR #29349: Size comparison from 0f620c0 to cfb1bb3 Increases (1 build for telink)
Full report (66 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving, but I did not check over the details carefully.... Note that we still have a number of align-with-the-spec renames we need to do.
PR #29349: Size comparison from 0f620c0 to 8d5a208 Increases (1 build for telink)
Full report (66 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
PR #29349: Size comparison from 94853cf to 41c92a1 Decreases (1 build for esp32)
Full report (66 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
… between .matter files (project-chip#29349) * Start defining a compatibility checker with unit tests * Enumeration validation passes * Restyle * Mark unimplemented items with TODO * Add some cluster validation tests * Add validation for bitmap statuses and unit tests for that * Mild restyle and clearer code * Take into consideration cluster sides * Update naming a bit * More detailed messages for code entry changes * Use sub-tests to mark clearly what failures occur where * Fix typing and common logic * Add implementation and tests for event backward compatibility * Restyle * Add command backwards compatibility checks and tests, better error reporting * Less noisy output for unit tests * Restyle * Fixed types * Split tests so we have better split and execution report - 23 tests instead of just 5 * Add minor unit test * Added struct handling and unit tests * Restyle * Attribute validation * Restyle * Fix typo * Add some extra logic to not detect renames in fields * Additional tests for renames of fields * Add struct tests for reorder and renames * Add cluster names for error reports * Restyle * Fix test comments * Move defs outside init into separate file, update build scripts * Move to single file for use as an import instead of a module directory * Remove unused import * Rename some global methods to pep8 * Move more methods to pep8 * Remove unused import * Make sure unit test is run as part of standard tests * Update comment * Ensure click argument for choice is list of str instead of a dictionary view (makes mypy happy) --------- Co-authored-by: Andrei Litvin <[email protected]>
Intent is to use this in CI to detect changes in controller-clusters.matter (which is intended to contain all SDK clusters) that require human review for backwards compatibiltiy.
As an example this would detect changes in 4752dcc where type of a struct member was changed from unsigned to signed (which is not backwards compatible):
Changes