Repository navigation
ci(plugins): check PluginKit ABI with Xcode's ABI checker - #3552
Merged
Merged
Conversation
# Conflicts: # .claude/rules/ci.md
This was referenced Oct 18, 2026
This file contains hidden or 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
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.
Why
The PluginKit ABI check diffed
.swiftinterfacetext against a merge base and ran in no workflow; a separate cadence script held the kit bump rule.Change
scripts/check-pluginkit-abi.sh [--frozen] [base]builds PluginKit at the newestv*tag and at HEAD with Xcode's ABI checker (RUN_SWIFT_ABI_CHECKER_TOOL). A breakage needs kit and minimum at tag kit + 1, a changed baseline kit + 1, an identical one the tag's kit.-error-on-abi-breakage: without it swift-api-digester reports a breakage as a warning.--frozenon a PR intorelease/*, with a fullblob:nonecheckout for the tag.verify.sh abitakes an optional base.Verified
verify.sh abiagainst v0.82.0-beta.1 passes here with byte-identical baselines. In scratch trees a removed requirement fails, and passes at kit and minimum 40; an added defaulted requirement fails at kit 39 and passes at 40;--frozenfails on it.Not in this PR
detect-changed-paths.shdoes not watch the script yet, so a PR touching only it skips the step.fix-issue/references/platform-apple.mdstill listsabi <merge-base>.