feat(dart): Mark span streaming API as non-experimental#3756
Conversation
Remove the @experimental annotation from the span-first streaming API: Sentry.startSpan, Sentry.startSpanSync, and SentryOptions.traceLifecycle. The API has stabilized, so these members no longer need the experimental marker. No behavior change. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Semver Impact of This PR🟡 Minor (new features) 📋 Changelog PreviewThis is how your changes will appear in the changelog. Features
🤖 This preview updates automatically when you update the PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3756 +/- ##
=======================================
Coverage 86.98% 86.98%
=======================================
Files 336 336
Lines 12059 12059
=======================================
Hits 10489 10489
Misses 1570 1570
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
Android Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| c1e775e | 482.36 ms | 608.98 ms | 126.62 ms |
| de377fd | 572.35 ms | 589.21 ms | 16.87 ms |
| 667e3c4 | 402.86 ms | 394.04 ms | -8.82 ms |
| cc4e375 | 426.15 ms | 482.34 ms | 56.19 ms |
| 67de70c | 375.88 ms | 356.11 ms | -19.77 ms |
| 944b773 | 470.54 ms | 480.18 ms | 9.64 ms |
| 584a4b7 | 367.74 ms | 353.83 ms | -13.91 ms |
| 93b7728 | 475.28 ms | 489.13 ms | 13.86 ms |
| caa8620 | 384.46 ms | 363.30 ms | -21.16 ms |
| f872f8e | 402.38 ms | 416.20 ms | 13.82 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| c1e775e | 6.54 MiB | 7.70 MiB | 1.17 MiB |
| de377fd | 6.54 MiB | 7.71 MiB | 1.17 MiB |
| 667e3c4 | 14.55 MiB | 15.87 MiB | 1.31 MiB |
| cc4e375 | 6.54 MiB | 7.69 MiB | 1.15 MiB |
| 67de70c | 14.31 MiB | 15.49 MiB | 1.19 MiB |
| 944b773 | 13.93 MiB | 15.00 MiB | 1.06 MiB |
| 584a4b7 | 14.09 MiB | 15.28 MiB | 1.19 MiB |
| 93b7728 | 6.54 MiB | 7.69 MiB | 1.15 MiB |
| caa8620 | 14.31 MiB | 15.49 MiB | 1.19 MiB |
| f872f8e | 13.93 MiB | 15.18 MiB | 1.25 MiB |
iOS Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| cdf371b | 1246.24 ms | 1251.10 ms | 4.86 ms |
| 737ef5d | 1255.65 ms | 1252.24 ms | -3.41 ms |
| 4481076 | 1256.48 ms | 1266.64 ms | 10.17 ms |
| a10aff4 | 1241.67 ms | 1255.02 ms | 13.35 ms |
| bfabaf2 | 1251.72 ms | 1253.38 ms | 1.67 ms |
| d789735 | 1240.58 ms | 1246.41 ms | 5.82 ms |
| 4298701 | 1243.56 ms | 1262.29 ms | 18.72 ms |
| c58ce03 | 1245.18 ms | 1247.00 ms | 1.82 ms |
| 93b7728 | 1247.23 ms | 1264.87 ms | 17.64 ms |
| c002f00 | 1252.47 ms | 1258.78 ms | 6.31 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| cdf371b | 5.53 MiB | 6.02 MiB | 501.23 KiB |
| 737ef5d | 5.73 MiB | 6.18 MiB | 466.16 KiB |
| 4481076 | 7.86 MiB | 9.44 MiB | 1.58 MiB |
| a10aff4 | 5.53 MiB | 6.00 MiB | 486.71 KiB |
| bfabaf2 | 5.53 MiB | 6.01 MiB | 487.95 KiB |
| d789735 | 5.53 MiB | 5.96 MiB | 443.28 KiB |
| 4298701 | 20.70 MiB | 22.46 MiB | 1.76 MiB |
| c58ce03 | 5.73 MiB | 6.17 MiB | 455.86 KiB |
| 93b7728 | 7.86 MiB | 9.44 MiB | 1.58 MiB |
| c002f00 | 5.65 MiB | 6.09 MiB | 448.38 KiB |
There was a problem hiding this comment.
Pull request overview
This PR stabilizes the span-first streaming tracing API in the Dart SDK by removing @experimental annotations, preventing downstream users from seeing experimental-use analyzer warnings while keeping behavior and defaults unchanged.
Changes:
- Removed
@experimentalfromSentry.startSpanandSentry.startSpanSync. - Removed
@experimentalfromSentryOptions.traceLifecycle(still defaults toSentryTraceLifecycle.static).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| packages/dart/lib/src/sentry.dart | Removes experimental annotation from the async/sync span streaming entry points. |
| packages/dart/lib/src/sentry_options.dart | Removes experimental annotation from the traceLifecycle option controlling streaming vs static tracing. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Remove the
@experimentalannotation from the span-first streaming API now that it has stabilized. Users ofSentry.startSpan,Sentry.startSpanSync, andSentryOptions.traceLifecycleno longer get experimental-use analyzer warnings.No behavior change — the API surface, signatures, and defaults (
traceLifecyclestill defaults toSentryTraceLifecycle.static) are untouched.Scope
Only the streaming span API is affected. Other experimental APIs (database integrations, replay privacy options, screenshot masking) keep their
@experimentalmarkers, so the existingexperimental_member_useignores in downstream packages remain valid.