-
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
Fix Darwin availability bits for command payloads: #29468
Merged
mergify
merged 1 commit into
project-chip:master
from
bzbarsky-apple:fix-darwin-availability
Sep 29, 2023
Merged
Fix Darwin availability bits for command payloads: #29468
mergify
merged 1 commit into
project-chip:master
from
bzbarsky-apple:fix-darwin-availability
Sep 29, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pullapprove
bot
requested review from
andy31415,
andyg-apple,
anush-apple,
arkq,
carol-apple,
cecille,
chrisdecenzo,
chshu,
chulspro,
cliffamzn,
Damian-Nordic,
dhrishi,
electrocucaracha,
gjc13,
harsha-rajendran,
hawk248,
hicklin,
jepenven-silabs,
jmartinez-silabs,
jmeg-sfy,
joonhaengHeo,
jtung-apple,
kkasperczyk-no,
kpschoedel,
ksperling-apple,
lazarkov,
lpbeliveau-silabs and
LuDuda
September 27, 2023 14:45
pullapprove
bot
requested review from
rcasallas-silabs,
robszewczyk,
saurabhst,
selissia,
sharadb-amazon,
tecimovic,
tehampson,
tima-q,
tobiasgraf,
turon,
vivien-apple,
woody-apple,
younghak-hwang,
yufengwangca and
yunhanw-google
September 27, 2023 14:45
PR #29468: Size comparison from 7b4df1c to 7aab094 Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
1) Add missing isForCommandPayload=true to declarations of the old command payload names. Otherwise we were ending up with SetUtcTime being marked provisional, which is not backwards-compatible. 2) We need to declare fields in the old-name command payloads with the right availability, since the availability in the super-class is "too new". The implementation then needs to use @dynamic. This is similar to how structs work. 3) SetUTCTime cannot be provisional (and hence unavailable) if SetUtcTime is supposed to be available and inherits from it. This requires exposing SetUTCTime and its fields in the first release where we will update Matter.framework in the Xcode SDK to the setup where we started doing "provisionally available". Items 1 and 2 are handled by using "completeDecl" for both the old and new name.
bzbarsky-apple
force-pushed
the
fix-darwin-availability
branch
from
September 27, 2023 16:48
7aab094
to
19a3122
Compare
PR #29468: Size comparison from 24b1d03 to 19a3122 Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
andy31415
approved these changes
Sep 27, 2023
woody-apple
approved these changes
Sep 29, 2023
HunsupJung
pushed a commit
to HunsupJung/connectedhomeip
that referenced
this pull request
Oct 23, 2023
1) Add missing isForCommandPayload=true to declarations of the old command payload names. Otherwise we were ending up with SetUtcTime being marked provisional, which is not backwards-compatible. 2) We need to declare fields in the old-name command payloads with the right availability, since the availability in the super-class is "too new". The implementation then needs to use @dynamic. This is similar to how structs work. 3) SetUTCTime cannot be provisional (and hence unavailable) if SetUtcTime is supposed to be available and inherits from it. This requires exposing SetUTCTime and its fields in the first release where we will update Matter.framework in the Xcode SDK to the setup where we started doing "provisionally available". Items 1 and 2 are handled by using "completeDecl" for both the old and new name.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
REVIEW NOTE: The generated file diffs are a lot easier to read by grabbing this PR locally and looking at
git diff --minimal
orgit show --minimal
.payload names. Otherwise we were ending up with SetUtcTime being marked
provisional, which is not backwards-compatible.
availability, since the availability in the super-class is "too new". The
implementation then needs to use @dynamic. This is similar to how structs
work.
supposed to be available and inherits from it. This requires exposing
SetUTCTime and its fields in the first release where we started doing
"provisionally available".
Items 1 and 2 are handled by using "completeDecl" for both the old and new name.