Skip to content

build(deps): update dependencies, Gradle wrapper, and GitHub Actions - #1740

Merged
dkhawk merged 5 commits into
mainfrom
chore/update-dependencies
Aug 5, 2026
Merged

dkhawk merged 5 commits into
mainfrom
chore/update-dependencies

Conversation

@kikoso

@kikoso kikoso commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Bump Kotlin, Ktor, Material, kotlinx-serialization, Navigation SDK, UiAutomator, Lint, AGP, and the Maven Publish plugin in gradle/libs.versions.toml to their latest stable releases.
  • Regenerate the Gradle wrapper to 9.6.1 (via gradlew wrapper) since AGP 9.3.1 requires Gradle >= 9.5.0.
  • xmlutil serialization is intentionally left at 0.91.3 — 1.0.0 restructured the XML {} config DSL and breaks GpxParser/KmlParser (isCollectingNSAttributes no longer resolves with an implicit receiver). Bumping it needs a dedicated migration, tracked separately.
  • Bump GitHub Actions: actions/checkout to v7 (also fixes release-rc.yml, which was still pinned to v5 while every other workflow used v6), actions/setup-go to v7, actions/setup-python to v7, peter-evans/create-pull-request to v8, madrapps/jacoco-report to v1.8.0.

Test plan

  • ./gradlew :maps-utils:dependencies --configuration releaseRuntimeClasspath resolves cleanly
  • ./gradlew :library:assembleDebug succeeds
  • Kotlin compiles clean across demo (both standard and navigation flavors), clustering, heatmaps, data, ui, visual-testing
  • Unit tests pass: data, library, clustering, visual-testing
  • Fresh wrapper bootstrap verified (gradlew --version after clearing the local wrapper cache) resolves to Gradle 9.6.1
  • All modified workflow YAML files parse successfully

kikoso added 2 commits August 5, 2026 13:54
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.
@kikoso
kikoso requested a review from a team as a code owner August 5, 2026 11:55
kikoso added 2 commits August 5, 2026 14:42
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.
@googlemaps-bot

googlemaps-bot commented Aug 5, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage

Overall Project 40.3% 🍏

There is no coverage information present for the Files changed

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
dkhawk merged commit 9fb6564 into main Aug 5, 2026
12 checks passed
@dkhawk
dkhawk deleted the chore/update-dependencies branch August 5, 2026 14:22
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.
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.

3 participants