Repository navigation
[Merge only after iOS SDK 7.0 GA] iOS: import the wrapper contract from Bugsee.SPI - #178
Conversation
The iOS SDK 7.0 GA moves the wrapper contract (BGSWrapperChannel, BGSReportContract, BGSAttachmentContract, BGSCallback, BugseeWrapper, +setWrapper:, ...) out of Bugsee.h into the Bugsee.SPI submodule (BugseeSPI.h), which `import Bugsee` / <Bugsee/Bugsee.h> no longer brings in. BugseeModule.mm, the three BugseeRNSupport headers that name those types (BGSRNReportOps.h, BGSRNReportHandlerBridge.h, BGSRNWrapperChannelHolder.h) and the support tests that use them directly import <Bugsee/BugseeSPI.h> under __has_include, so the code builds against both the 7.0 betas and GA. No behaviour change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
|
Claude finished @dsheikherev's task in 2m 44s —— View job Review of #178: import the wrapper contract from Bugsee.SPII found no blocking issues. I read the diff and the surrounding code, and I did not build or run anything. The SDK with What I checked
Residual risks (P3, not blockers)
Summary
|
The iOS SDK never used BGSIssueType (a report's type reaches BGSReportContract.type as the string "bug", "crash" or "error"), and 7.0 GA deletes it from BGSContracts.h. cli-extract-option-keys.ts read it from that header, so regenerating ios-enums.json against GA would throw. The extraction, the fixture entry and the parity test for it go; the IssueSeverity and CrashHandlerType checks stay. Against a 7.0 beta source tree the extraction simply no longer reads the enum. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @dsheikherev's task in 29s —— View job Review of #178 (re-review after push of
|
Merge only after the iOS SDK 7.0 GA. The code builds against the 7.0 betas as well, so merging early breaks nothing. The title is there so this lands with the GA SDK bump.
Why
iOS SDK 7.0 GA trims the public headers before the API freezes. The cross-platform wrapper contract is not app API, so it moves out of
Bugsee.hinto the explicit submoduleBugsee.SPI(BugseeSPI.h). That coversBGSWrapperChannel,BGSReportContract,BGSAttachmentContract,BGSDataRequestResultCallback,BGSCallback,BGSLogEventSource,BugseeWrapper,+[Bugsee setWrapper:]and the rest.import Bugsee/<Bugsee/Bugsee.h>no longer brings it in; a wrapper asks for it with#import <Bugsee/BugseeSPI.h>. The bugsee-cocoa change is bugsee/bugsee-cocoa#309.Change
#import <Bugsee/BugseeSPI.h>under#if __has_include(<Bugsee/BugseeSPI.h>), right after the existing Bugsee import, in:packages/react-native/ios/BugseeModule.mmSupport/Sources/BugseeRNSupport/include/BGSRNReportOps.h,BGSRNReportHandlerBridge.h,BGSRNWrapperChannelHolder.h(the.mfiles get it through these)Support/Tests/BugseeRNSupportTests/BGSRNWrapperChannelHolderTests.m,BGSRNReportHandlerBridgeTests.m,BGSRNFakeReport.hAlso (fd0f5bd): 7.0 GA deletes the iOS
BGSIssueTypeenum, which the SDK never used. A report's type reachesBGSReportContract.typeas the stringbug,crashorerror.scripts/cli-extract-option-keys.tsread that enum fromBGSContracts.h, so regeneratingios-enums.jsonagainst GA would throw. The extraction, the fixture entry and the IssueType parity test are removed; IssueSeverity and CrashHandlerType stay. The enum tests (enum-parity,ios-enums,options/enums) pass: 31 tests.No behaviour change. The Feedback package is not affected: it uses the
BugseeFeedbackSPM product, which bugsee-cocoa updates itself.Checked
BugseeRNSupportsources and tests:clang -fsyntax-onlyagainst an SDK build withBugsee.SPIand one without (whereBugsee.hstill declares the contract). 62/62 compile in both.BugseeModule.mm, which needs the React Native headers. Its change is the same import line as above.🤖 Generated with Claude Code