getsentry / getsentry/sentry-java

Migrate to new AGP DSL and remove android.newDsl=false opt-out

Open
#5,781 1 comment 0 reactions 0 assignees View on GitHub
Platform: Android Platform: Java Task
Dominant language
Kotlin
Stars
1.4k
Forks
478
Avg merge
2d 23h
Merged PRs (30d)
67

Description

Follow-up to the AGP 8.13.1 → 9.2.1 bump (getsentry/sentry-java#5777). To land AGP 9 without a large refactor, the bump added a temporary opt-out in `gradle.properties`:

```
# AGP 9+ migration opt-outs until we remove kotlin-android plugin and adopt built-in Kotlin.
android.newDsl=false
```

**Why this matters:** `android.newDsl=false` opts out of AGP 9's new DSL. If Google removes this flag in a future AGP release, we will be unable to upgrade until the migration is done.

**Current state:**

* The root `build.gradle.kts` (around lines 174-180) still configures library modules via the legacy `com.android.build.gradle.BaseExtension` inside `plugins.withId("com.android.library") { ... }`. This is what depends on the old DSL.
* Runtime modules already use the new `androidComponents` Variant API (`beforeVariants`/`onVariants`); the old `libraryVariants`/`applicationVariants`/`BaseVariant` API is not used anywhere. Good starting position.
* Fragility to address: `sentry-samples/sentry-samples-android/build.gradle.kts` imports the internal `com.android.build.api.variant.impl.VariantImpl` (a non-stable `.impl.` class), a likely future break point.

**Scope:**

* Replace the `BaseExtension`-based configuration in the root build with the new DSL.
* Remove the internal `VariantImpl` usage in the Android sample.
* Remove `android.newDsl=false` from `gradle.properties` and confirm the build passes.

**Done when:** `android.newDsl=false` is removed and the build works on the new AGP DSL.

Should be picked up after the AGP bump PRs merge.

Contributor guide

Open the contributing guide

Research direction

Start with the root build.gradle.kts around lines 174-180 and inspect the library-module configuration using BaseExtension. Then review sentry-samples/sentry-samples-android/build.gradle.kts for its internal VariantImpl import, remove android.newDsl=false from gradle.properties, and confirm the build passes with the new AGP DSL.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
build-system, mobile
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.