Repository navigation
build(deps): update dependencies, Gradle wrapper, and GitHub Actions - #1740
Merged
Merged
Conversation
Bump Kotlin, Ktor, Material, kotlinx-serialization, Navigation SDK,
UiAutomator, Lint, AGP, and the Maven Publish plugin to their latest
stable releases. AGP 9.3.1 requires Gradle >= 9.5.0, so the wrapper is
regenerated (via `gradlew wrapper`) to 9.6.1.
xmlutil serialization is left pinned at 0.91.3: 1.0.0 restructured the
XML {} config DSL and breaks GpxParser/KmlParser, which needs a
separate migration.
Bump actions/checkout to v7 (and align release-rc.yml, which was still on v5), actions/setup-go to v7, actions/setup-python to v7, peter-evans/create-pull-request to v8, and madrapps/jacoco-report to v1.8.0.
zizmor (required check) was failing on two mandatory findings:
- unpinned-uses: pin every third-party action in the touched
workflows to a full commit SHA (with the resolved version as a
trailing comment) instead of a mutable tag.
- template-injection: release-rc.yml interpolated the workflow_dispatch
`branch` input directly into a `run:` shell script
(`git push origin "${{ inputs.branch }}"`), which is a shell
injection vector. Routed it through a BRANCH env var instead,
matching how VERSION is already handled in the same job.
Separately, `lintDebug`/`lintStandardDebug` were failing with
`NoSuchMethodError: java.util.List.removeLast()` inside
BidirectionalTextDetector. Reproduced locally: `lint` 32.3.1 (pulled
in by the AGP 9.3.1 bump) now needs JDK 21 to run, but test.yml,
report.yml, docs.yml, and lint-report.yml were still provisioning
JDK 17. Bumped those to JDK 21 (publish.yml already used 21). This is
purely the JDK Gradle itself runs on; the project's own Java
toolchain target is unaffected.
zizmor scores its excessive-permissions finding as Medium severity, which independently fails the required check regardless of the mandatory-checks list. docs.yml, lint-report.yml, and publish.yml had no permissions: block, so they inherited the org/repo default (broad) token scope even though none of their steps need it: - docs.yml and publish.yml only read the repo via checkout and use a separate PAT (SYNCED_GITHUB_TOKEN_REPO) for anything that writes, so contents: read is sufficient. - lint-report.yml additionally uploads SARIF via github/codeql-action/upload-sarif, which needs security-events: write.
Contributor
Code Coverage
|
Coverage reporting on `library` was already producing an all-zero report on main before this branch touched anything (reproduced on a clean main worktree): the report only contained the untested Java `collections` classes, and every tested Kotlin class (PolyUtil, MathUtil, SphericalUtil, StreetViewUtils, AttributionIdInitializer) was silently absent. Root cause: com.mxalbert.gradle.jacoco-android (last released for AGP 8.x) auto-detects classDirectories from paths that predate AGP's built-in Kotlin compiler. AGP 9 now compiles Kotlin into intermediates/built_in_kotlinc/, which the plugin doesn't know about, so it silently falls back to javac output only. Overriding classDirectories on the debug JacocoReport tasks to include both javac and built_in_kotlinc output fixes this for every module using the shared PublishingConventionPlugin (verified library, clustering, data, heatmaps, ui all now report real, non-zero coverage). Also fixes report.yml, which only ever read library/build/jacoco/jacoco.xml. Before the module rewrite (#1658) `library` contained the entire codebase, so that was the whole project's coverage; after the split into clustering/data/heatmaps/ui, report.yml was never updated, so "Overall Project" reflected ~2% of the codebase. Added the other four modules' jacoco.xml to the report paths. Combined coverage is ~37.5%, comfortably above the existing 26% floor, so no threshold changes needed.
dkhawk
approved these changes
Aug 5, 2026
This was referenced Aug 5, 2026
dkhawk
added a commit
that referenced
this pull request
Aug 5, 2026
- Sync with latest origin/main containing PR #1740 (Gradle 9.6.1 / CI fixes), PR #1739 (LatLonQuad GroundOverlays), PR #1730 (clustering updateItem fix), and PR #1741 (XML serialization hardening). - Preserve all backwards-compatible @deprecated com.google.maps.android.ktx typealiases and forwarding bridges for 6.0.0-rc01. - Add play-services-location and mockito-kotlin dependencies to libs.versions.toml for KTX location module tests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
gradle/libs.versions.tomlto their latest stable releases.gradlew wrapper) since AGP 9.3.1 requires Gradle >= 9.5.0.xmlutil serializationis intentionally left at 0.91.3 — 1.0.0 restructured theXML {}config DSL and breaksGpxParser/KmlParser(isCollectingNSAttributesno longer resolves with an implicit receiver). Bumping it needs a dedicated migration, tracked separately.actions/checkoutto v7 (also fixesrelease-rc.yml, which was still pinned to v5 while every other workflow used v6),actions/setup-goto v7,actions/setup-pythonto v7,peter-evans/create-pull-requestto v8,madrapps/jacoco-reportto v1.8.0.Test plan
./gradlew :maps-utils:dependencies --configuration releaseRuntimeClasspathresolves cleanly./gradlew :library:assembleDebugsucceedsdemo(bothstandardandnavigationflavors),clustering,heatmaps,data,ui,visual-testingdata,library,clustering,visual-testinggradlew --versionafter clearing the local wrapper cache) resolves to Gradle 9.6.1