Skip to content

Bump Sentry Gradle plugin 6.21.0, SDK 8.55.0, native-ndk 0.16.5 - #271

Open
romtsn wants to merge 1 commit into
mainfrom
sentry-bump/6.21.0
Open

Bump Sentry Gradle plugin 6.21.0, SDK 8.55.0, native-ndk 0.16.5#271
romtsn wants to merge 1 commit into
mainfrom
sentry-bump/6.21.0

Conversation

@romtsn

@romtsn romtsn commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

Bumps Sentry dependencies to latest stable versions:

Dependency Old New
Sentry Android Gradle Plugin 6.17.0 6.21.0
Sentry Android SDK (auto-installed) 8.51.0 8.55.0
sentry-native-ndk 0.16.0 0.16.5

Changelogs

Gradle Plugin 6.17.0 → 6.21.0

  • 6.18.0 — Fix ProGuard mapping with AGP optimization.enable DSL; eliminate reflection for SDK class-availability checks (~1% init time reduction)
  • 6.19.0 — Fix AGP optimization.enable detection when variant is wrapped by AGP analytics
  • 6.20.0 — Per-variant overrides for tracing instrumentation and runtime optimizations via reverse DSL; resolve Sentry manifest metadata at build time to reduce SDK initialization overhead
  • 6.21.0 — Fix snapshot task wiring for multi-flavor modules; verify Kotlin compiler plugin build dependencies with PGP signatures

SDK 8.51.0 → 8.55.0

  • 8.52.0 — Fixes and performance: halve screenshot/replay memory via RGB_565, batch scope-persistence disk writes, reduce SDK thread count, prevent cold app start inflation on API 35+
  • 8.53.0Features: explicit start timestamps for child spans via SpanOptions; runtime shake-to-report toggle via Sentry.feedback().enableOnShake()/disableOnShake()
  • 8.54.0Features: manual Session Replay controls via Sentry.replay() (start(), stop(), pause(), resume(), flush()); screenshot attachment for user feedback widget; app vitals on standalone app.start children
  • 8.55.0Features: Session.State.Unhandled for unhandled errors that don't terminate the process; single ui.compose span per SentryTraced on initial composition; ANR profiling moved out of experimental

sentry-native 0.16.0 → 0.16.5

  • 0.16.1–0.16.4 — C API additions (sentry_app_hang_pause, scope/transport/callback APIs), forward enable_logs through NdkOptions, various fixes
  • 0.16.5sentry_crash for deliberate crash testing, thread stackwalk mode, 68 perf-monitoring functions promoted to stable

New features implemented

  1. SpanOptions with explicit start timestamps (SDK 8.53.0) — In MainFragment.checkout(), a SentryDate is captured via SentryNanotimeDate right after the checkout transaction starts (before scope configuration and dialog setup). A SpanOptions object passes this timestamp as the explicit start time for the process_cart_data child span, so the span timing accurately reflects the full checkout setup duration. Demonstrates both newly public APIs: SpanOptions.setStartTimestamp() and ISpan.startChild(operation, description, SpanOptions).

  2. Feedback shake runtime toggle (SDK 8.53.0) — In MainFragment.checkout(), Sentry.feedback().disableOnShake() is called at the start of checkout to suppress accidental feedback during the checkout flow. After checkout completes (both success and failure paths), Sentry.feedback().enableOnShake() re-enables shake-to-report. This demonstrates the new runtime toggle API with a natural use case: preventing feedback interruptions during critical user flows.

  3. User feedback screenshot attachment (SDK 8.54.0) — Added io.sentry.feedback.enable-attach-screenshot = true in AndroidManifest.xml. Enables the screenshot attachment button in the feedback widget so users can attach a screenshot when submitting feedback.

  4. Manual Session Replay flush (SDK 8.54.0) — In MainFragment.processDeliveryItem(), Sentry.replay().flush() is called after the checkout failure exception is captured. This ensures the replay segment around the checkout error is sent immediately rather than waiting for the buffer to fill.

Features skipped (with technical blockers)

  • sentry-native C APIs (sentry_app_hang_pause, sentry_scope_remove_fingerprint, sentry_options_set_before_send_feedback, sentry_scope_set_span, sentry_scope_set_transaction_object, custom HTTP transport, sentry_set_tags, sentry_crash, sentry_options_set_thread_stackwalk_mode, sentry_value_foreach_*) — C-level APIs not exposed through the Java/Kotlin Android SDK
  • Forward enable_logs through NdkOptions (sentry-native 0.16.3) — Automatic; options.getLogs().setEnabled(true) is already set in MyApplication, so the NDK option is forwarded without code changes
  • App vitals on standalone spans (SDK 8.54.0) — Automatic; io.sentry.standalone-app-start-tracing.enable is already true in the manifest, so app.vitals.start.screen and app.vitals.start.type are set automatically with no code changes
  • Session.State.Unhandled (SDK 8.55.0) — Internal SDK behavior for session state tracking; automatically categorizes sessions with unhandled errors that don't crash. No app-level code changes needed.
  • Per-variant tracing overrides (plugin 6.20.0) — The variants {} DSL enables per-variant configuration of tracing instrumentation and runtime optimizations; the app's current global config already applies uniformly to all variants, so no per-variant override is needed
  • Runtime optimizations (plugin 6.18.0) — Enabled by default; no code change needed
  • Build-time manifest metadata resolution (plugin 6.20.0) — Automatic optimization; no code change needed

Build verification

Build could not be fully verified — ./gradlew assembleDebug fails with HTTP 403 from dl.google.com due to network restrictions in the remote execution environment. This is an infrastructure issue, not a code issue. The Gradle plugin version, SDK version, and native-ndk version bumps are straightforward dependency updates, and the new API calls (SpanOptions, SentryNanotimeDate, ISpan.startChild with SpanOptions, Sentry.feedback().disableOnShake()/enableOnShake(), Sentry.replay().flush()) were verified against the sentry-java 8.55.0 release notes.


🤖 Generated with Claude Code

https://claude.ai/code/session_01ExrBPjfodaiBAJaKDmSWBh


Generated by Claude Code

- Gradle plugin: 6.17.0 → 6.21.0
- SDK (auto-installed): 8.51.0 → 8.55.0
- sentry-native-ndk: 0.16.0 → 0.16.5

New features implemented:
- SpanOptions with explicit start timestamps (SDK 8.53.0)
- Feedback shake runtime toggle (SDK 8.53.0)
- User feedback screenshot attachment (SDK 8.54.0)
- Session Replay manual flush (SDK 8.54.0)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ExrBPjfodaiBAJaKDmSWBh
@romtsn
romtsn requested a review from sdzhong as a code owner September 7, 2026 17:21
@sentry

sentry Bot commented Sep 7, 2026

Copy link
Copy Markdown

📲 Install Builds

Android

🔗 App Name App ID Version Configuration
Android com.example.vu.android 24.12.26 (241226) release
Android com.example.vu.android 24.12.26 (241226) debug
Android com.example.vu.android 24.12.26 (241226) release

⚙️ android Build Distribution Settings

@codecov

codecov Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 9 lines in your changes missing coverage. Please review.
✅ Project coverage is 0.00%. Comparing base (21c77a4) to head (3860c8e).

Files with missing lines Patch % Lines
.../example/vu/android/empowerplant/MainFragment.java 0.00% 9 Missing ⚠️
Additional details and impacted files
@@          Coverage Diff          @@
##            main    #271   +/-   ##
=====================================
  Coverage   0.00%   0.00%           
=====================================
  Files         16      16           
  Lines        883     891    +8     
  Branches      67      67           
=====================================
- Misses       883     891    +8     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant