Skip to content

Android Gradle Plugin 9.x is available — major upgrade (manual) #477

Description

@github-actions

A new major Android Gradle Plugin release is available.

Currently pinned 8.10.1
Newest stable 9.4.0
Newest stable on the pinned major 8.13.2
Pinned in android/settings.gradle
Source https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/maven-metadata.xml

No PR was opened, on purpose

android/settings.gradle has not been changed and no commit was made. Patch and
minor updates within the pinned major get an automatic draft PR; a major
does not, because a major upgrade is not a one-line pin change (#362).

The two are tracked separately: if the newest release on the pinned major
is ahead of what is pinned, that update still gets its own ordinary draft
PR this week. A new major never blocks it.

Read this one carefully

Linthra's F-Droid release still builds its per-ABI versionCodes by
iterating applicationVariants in android/app/build.gradle. That is
legacy Android DSL behaviour, and the next AGP major removes the API it
depends on. Bumping this pin without first porting that logic does not
produce a build failure so much as a wrong versionCode scheme
which is the one thing an F-Droid release cannot get wrong, because
published version codes can never be reused or walked back.

Treat the variant/versionCode port as the actual work item here. The
version bump is the easy part.

Why this stays manual

  • Flutter compatibility. Flutter ships its own Gradle plugin and
    supports a bounded range of build tooling. The SDK pinned in
    .flutter-version decides what this project may actually use, and
    "newer" is not the same as "supported".
  • The Android build itself. A major here changes defaults, removes
    deprecated DSL and can alter what ends up in the APK. That is a review,
    not a version bump.
  • F-Droid and reproducibility. The F-Droid builder resolves this
    toolchain offline from the files in this repository. A major upgrade can
    change what the builder must provide and whether the build still
    reproduces, and CI cannot prove either. See
    docs/fdroid-build-recipe.md and the reproducibility notes.
  • The rest of the toolchain. Gradle, AGP, Kotlin and the JDK move as a
    compatible set; one of them crossing a major usually drags the others.

Suggested route

Do the upgrade in a normal human PR: check Flutter's supported range
first, bump the pin, port whatever the major removed, re-check the
F-Droid recipe and reproducibility notes, and let normal CI judge it.

Filed by android-toolchain-updates.yml
for issue #362. This issue is updated in place on later runs rather than
refiled, so the weekly check will not spam duplicates.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions