-
-
Notifications
You must be signed in to change notification settings - Fork 282
fix(plugins)!: make PluginKit ABI resilient and gate it in CI #1532
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
Changes from all commits
bf57b10
c9b8bb6
9dc52bb
5bc3230
528a85a
063055b
d40084d
c509300
7df9e26
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| name: PluginKit ABI Gate | ||
|
|
||
| on: | ||
| pull_request: | ||
| paths: | ||
| - "Plugins/TableProPluginKit/**" | ||
| - "scripts/check-pluginkit-abi.sh" | ||
| - ".github/workflows/pluginkit-abi.yml" | ||
|
|
||
| jobs: | ||
| abi-gate: | ||
| name: PluginKit ABI Gate | ||
| runs-on: macos-26 | ||
| timeout-minutes: 20 | ||
|
|
||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| fetch-depth: 0 | ||
|
|
||
| - name: Select Xcode | ||
| uses: maxim-lobanov/setup-xcode@v1 | ||
| with: | ||
| xcode-version: "26.4.1" | ||
|
|
||
| - name: Create Secrets.xcconfig | ||
| run: touch Secrets.xcconfig | ||
|
|
||
| - name: Check PluginKit ABI vs base | ||
| env: | ||
| BASE_SHA: ${{ github.event.pull_request.base.sha }} | ||
| run: scripts/check-pluginkit-abi.sh "$BASE_SHA" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -27,7 +27,8 @@ let package = Package( | |
| .target( | ||
| name: "TableProPluginKit", | ||
| dependencies: [], | ||
| path: "Sources/TableProPluginKit" | ||
| path: "Sources/TableProPluginKit", | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This target now resolves through the new Useful? React with 👍 / 👎. |
||
| exclude: ["Info.plist"] | ||
| ), | ||
| .target( | ||
| name: "TableProModels", | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ../../../Plugins/TableProPluginKit |
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
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.
The new gate only runs for PluginKit sources, the script, or this workflow, but the script builds
TablePro.xcodeprojand the library-evolution setting that makes the ABI resilient lives inTablePro.xcodeproj/project.pbxproj. A PR that only changes that project file (for example disablingBUILD_LIBRARY_FOR_DISTRIBUTION, changing the PluginKit target settings, or otherwise affecting the generated.swiftinterface) would bypass this required ABI check entirely, leaving the baseline stale despite an ABI-affecting change.Useful? React with 👍 / 👎.