chore(deps): update Cocoa SDK to v9.27.0 - #5539
Conversation
13a3706 to
86496c4
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5539 +/- ##
==========================================
- Coverage 74.72% 74.71% -0.01%
==========================================
Files 515 515
Lines 18948 18948
Branches 3696 3696
==========================================
- Hits 14158 14157 -1
- Misses 3906 3908 +2
+ Partials 884 883 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
86496c4 to
4a393db
Compare
Co-Authored-By: Claude Opus 5 <[email protected]>
| // -(SentryObjCScope * _Nonnull)createScope; | ||
| [Export("createScope")] | ||
| SentryObjCScope CreateScope { get; } |
There was a problem hiding this comment.
Bug: The createScope factory method is incorrectly bound as a C# property, which is semantically misleading as properties are expected to be idempotent.
Severity: LOW
Suggested Fix
Convert the CreateScope property back into a method in ApiDefinitions.cs. This can be done by changing the binding from SentryObjCScope CreateScope { get; } to SentryObjCScope CreateScope();. Consider updating the patch-cocoa-bindings.cs script to include CreateScope in the PropertyToMethod conversions for consistency.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: src/Sentry.Bindings.Cocoa/ApiDefinitions.cs#L1762-L1764
Potential issue: The Objective-C method `createScope` is bound as a C# property
`CreateScope`. The name implies it's a factory method that creates a new scope object on
each invocation. However, C# conventions suggest properties should be idempotent or
return a cached value. This semantic mismatch could lead future developers to
incorrectly assume the property returns the same scope object, potentially causing
subtle bugs in scope management if the property value is cached. Other similar methods
in the codebase were explicitly converted to methods, suggesting this was an oversight.
Did we get this right? 👍 / 👎 to inform future reviews.
Bumps modules/sentry-cocoa from 9.26.1 to 9.27.0.
Auto-generated by a dependency updater.
Changelog
9.27.0
Note
enableLogsandenableMetricsare now deprecated and will be removed in the next major version. Manual log and metric capture is no longer gated by these flags.Improvements
enableLogs/enableMetrics(#8918)Features
SentrySDK.replay. (#8868)start()andstartBuffering()calls bypass the configured replay sample rates; sampling still controls automatic startup.start()starts a full-session replay and does nothing if one is already recording.startBuffering()keeps a rolling buffer that is sent onflush()or an error, then continues in session mode.stop()ends the current replay; the nextstart()creates a new replay session.pause()suspends recording untilresume()and remains paused across background and foreground transitions and automatic replay restarts in the same process.resume()continues the same manually paused replay.flush()sends the current replay data to Sentry, or starts a full-session replay when recording is stopped.Improvements
Features
app.vitals.start.typeandapp.vitals.start.screenonto standaloneapp.startchildren, includingapp.start.extendedand user descendants (#8888)maxFeatureFlagsoption to configure how many feature flag evaluations the scope retains, matching sentry-java. Defaults to 100 (#8858)SentrySDK.internal.envelope.captureNonTerminatingfor hybrid SDKs, which keeps the current session running and reports it with theunhandledstatus when an unhandled exception doesn't terminate the process (#8654)SentrySDK.internal.envelope.updateSessionForDroppedEventNonTerminatingso hybrid SDKs can update the native session when an error is dropped by sampling, without sending an envelope (#8907)Fixes
SentryCrashCxaThrowSwapperfor empty sections (#8915)Internal