Skip to content

Update all dependencies#840

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/all
Open

Update all dependencies#840
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/all

Conversation

@renovate

@renovate renovate Bot commented Mar 17, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change Age Confidence
actions/checkout action major v6v7 age confidence
gradle (source) minor 9.4.19.6.1 age confidence
com.google.protobuf:protoc (source) dependencies minor 4.34.04.35.1 age confidence
androidx.wear.tiles:tiles-tooling-preview (source) dependencies patch 1.6.01.6.1 age confidence
androidx.wear.tiles:tiles-tooling (source) dependencies patch 1.6.01.6.1 age confidence
androidx.wear.tiles:tiles-testing (source) dependencies patch 1.6.01.6.1 age confidence
androidx.wear.tiles:tiles-renderer (source) dependencies patch 1.6.01.6.1 age confidence
androidx.wear.tiles:tiles (source) dependencies patch 1.6.01.6.1 age confidence
com.diffplug.spotless plugin minor 8.7.08.8.0 age confidence
androidx.sqlite:sqlite-async (source) dependencies patch 2.7.0-rc012.7.0 age confidence
androidx.sqlite:sqlite-bundled (source) dependencies patch 2.7.0-rc012.7.0 age confidence
androidx.sqlite:sqlite-framework (source) dependencies patch 2.7.0-rc012.7.0 age confidence
io.github.takahirom.roborazzi plugin minor 1.64.01.68.0 age confidence
io.github.takahirom.roborazzi:roborazzi-junit-rule dependencies minor 1.64.01.68.0 age confidence
io.github.takahirom.roborazzi:roborazzi-compose dependencies minor 1.64.01.68.0 age confidence
io.github.takahirom.roborazzi:roborazzi dependencies minor 1.64.01.68.0 age confidence
androidx.room3 (source) plugin patch 3.0.0-rc013.0.0 age confidence
androidx.room3:room3-testing (source) dependencies patch 3.0.0-rc013.0.0 age confidence
androidx.room3:room3-sqlite-wrapper (source) dependencies patch 3.0.0-rc013.0.0 age confidence
androidx.room3:room3-livedata (source) dependencies patch 3.0.0-rc013.0.0 age confidence
androidx.room3:room3-guava (source) dependencies patch 3.0.0-rc013.0.0 age confidence
androidx.room3:room3-rxjava3 (source) dependencies patch 3.0.0-rc013.0.0 age confidence
androidx.room3:room3-paging (source) dependencies patch 3.0.0-rc013.0.0 age confidence
androidx.room3:room3-compiler (source) dependencies patch 3.0.0-rc013.0.0 age confidence
androidx.room3:room3-common (source) dependencies patch 3.0.0-rc013.0.0 age confidence
androidx.room3:room3-runtime (source) dependencies patch 3.0.0-rc013.0.0 age confidence
androidx.wear.compose.remote:remote-material3 (source) dependencies patch 1.0.0-alpha061.0.0-alpha07 age confidence
androidx.wear.protolayout:protolayout-material3 (source) dependencies patch 1.4.01.4.1 age confidence
androidx.wear.protolayout:protolayout-material (source) dependencies patch 1.4.01.4.1 age confidence
androidx.wear.protolayout:protolayout-expression (source) dependencies patch 1.4.01.4.1 age confidence
androidx.wear.protolayout:protolayout (source) dependencies patch 1.4.01.4.1 age confidence
com.android.billingclient:billing-ktx dependencies minor 9.0.09.1.0 age confidence
org.mockito.kotlin:mockito-kotlin dependencies major 5.3.16.3.0 age confidence
com.google.maps.android:maps-compose dependencies patch 8.3.08.3.1 age confidence
com.google.devtools.ksp (source) plugin patch 2.3.92.3.10 age confidence
com.google.dagger.hilt.android plugin minor 2.59.22.60.1 age confidence
com.google.dagger:hilt-android-compiler dependencies minor 2.59.22.60.1 age confidence
com.google.dagger:hilt-android dependencies minor 2.59.22.60.1 age confidence
com.github.bumptech.glide:compose dependencies patch 1.0.0-beta091.0.0-beta10 age confidence
androidx.glance.wear:wear-core (source) dependencies patch 1.0.0-alpha121.0.0-alpha13 age confidence
androidx.glance.wear:wear (source) dependencies patch 1.0.0-alpha121.0.0-alpha13 age confidence
com.google.firebase:firebase-bom dependencies minor 34.15.034.16.0 age confidence
com.google.firebase:firebase-ai dependencies minor 17.13.017.14.0 age confidence
com.google.android.engage:engage-core dependencies minor 1.5.121.6.0 age confidence
androidx.compose.remote:remote-tooling-preview (source) dependencies patch 1.0.0-alpha131.0.0-alpha14 age confidence
androidx.compose.remote:remote-creation-compose (source) dependencies patch 1.0.0-alpha131.0.0-alpha14 age confidence
androidx.compose.remote:remote-core (source) dependencies patch 1.0.0-alpha131.0.0-alpha14 age confidence
androidx.compose.ui:ui-test-junit4 (source) dependencies patch 1.11.31.11.4 age confidence
androidx.compose.ui:ui-test (source) dependencies patch 1.11.31.11.4 age confidence
androidx.compose.ui:ui (source) dependencies patch 1.11.31.11.4 age confidence
androidx.compose.material:material-ripple (source) dependencies patch 1.11.31.11.4 age confidence
androidx.compose.material:material (source) dependencies patch 1.11.31.11.4 age confidence
androidx.compose.foundation:foundation-layout (source) dependencies patch 1.11.31.11.4 age confidence
androidx.compose.foundation:foundation (source) dependencies patch 1.11.31.11.4 age confidence
androidx.compose.animation:animation-graphics (source) dependencies patch 1.11.31.11.4 age confidence
androidx.hilt:hilt-navigation-compose (source) dependencies minor 1.3.01.4.0 age confidence
androidx.navigation3:navigation3-ui (source) dependencies patch 1.1.31.1.4 age confidence
androidx.navigation3:navigation3-runtime (source) dependencies patch 1.1.31.1.4 age confidence
androidx.glance:glance-preview (source) dependencies patch 1.3.0-alpha011.3.0-alpha02 age confidence
androidx.glance:glance-appwidget-preview (source) dependencies patch 1.3.0-alpha011.3.0-alpha02 age confidence
androidx.glance:glance-testing (source) dependencies patch 1.3.0-alpha011.3.0-alpha02 age confidence
androidx.glance:glance-material3 (source) dependencies patch 1.3.0-alpha011.3.0-alpha02 age confidence
androidx.glance:glance-appwidget-testing (source) dependencies patch 1.3.0-alpha011.3.0-alpha02 age confidence
androidx.glance:glance-appwidget (source) dependencies patch 1.3.0-alpha011.3.0-alpha02 age confidence
androidx.core:core-pip (source) dependencies patch 1.0.0-alpha021.0.0-alpha03 age confidence
androidx.compose.ui:ui-test-junit4-accessibility (source) dependencies patch 1.11.31.11.4 age confidence
androidx.compose:compose-bom dependencies patch 2026.06.002026.06.01 age confidence
androidx.xr.glimmer:glimmer-google-fonts (source) dependencies patch 1.0.0-alpha141.0.0-alpha15 age confidence
androidx.xr.glimmer:glimmer (source) dependencies patch 1.0.0-alpha141.0.0-alpha15 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

actions/checkout (actions/checkout)

v7.0.0

Compare Source

v7

Compare Source

gradle/gradle (gradle)

v9.6.1

Compare Source

v9.6.0

Compare Source

v9.5.1: 9.5.1

Compare Source

The Gradle team is excited to announce Gradle 9.5.1.

Here are the highlights of this release:

  • Task provenance in reports and failure messages
  • Type-safe accessors for precompiled Kotlin Settings plugins

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
atm1020,
mataha,
Adam,
Attila Kelemen,
Benedikt Ritter,
Björn Kautler,
Caro Silva Rode,
CHANHAN,
Dmitry Nezavitin,
Eng Zer Jun,
KugelLibelle,
Madalin Valceleanu,
Markus Gaisbauer,
Oliver Kopp,
Philip Wedemann,
ploober,
Roberto Perez Alcolea,
Rohit Anand,
Suvrat Acharya,
Ujwal Suresh Vanjare,
Victor Merkulov

Upgrade instructions

Switch your build to use Gradle 9.5.1 by updating your wrapper:

./gradlew wrapper --gradle-version=9.5.1 && ./gradlew wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

v9.5.0: 9.5.0

Compare Source

The Gradle team is excited to announce Gradle 9.5.0.

Here are the highlights of this release:

  • Task provenance in reports and failure messages
  • Type-safe accessors for precompiled Kotlin Settings plugins

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
atm1020,
mataha,
Adam,
Attila Kelemen,
Benedikt Ritter,
Björn Kautler,
Caro Silva Rode,
CHANHAN,
Dmitry Nezavitin,
Eng Zer Jun,
KugelLibelle,
Madalin Valceleanu,
Markus Gaisbauer,
Oliver Kopp,
Philip Wedemann,
ploober,
Roberto Perez Alcolea,
Rohit Anand,
Suvrat Acharya,
Ujwal Suresh Vanjare,
Victor Merkulov

Upgrade instructions

Switch your build to use Gradle 9.5.0 by updating your wrapper:

./gradlew wrapper --gradle-version=9.5.0 && ./gradlew wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

takahirom/roborazzi (io.github.takahirom.roborazzi)

v1.68.0

Compare Source

Compose Testing v2 (ui-test-junit4 v2) support (experimental)

If you've upgraded to Compose 1.11.0, where the v2 testing APIs (androidx.compose.ui.test.junit4.v2) are the default and the v1 rules are deprecated, Roborazzi now works with the v2 rule factories out of the box — createAndroidComposeRule from either package just works with RoborazziRule, captureRoboImage, and generated preview tests.

If you have a custom ComposePreviewTester, you can also delete the unchecked cast that used to be required:

override fun options(): ComposePreviewTester.Options = super.options().copy(
  testLifecycleOptions = ComposePreviewTester.Options.JUnit4TestLifecycleOptions(
    composeRuleFactory = {
      // v1 or v2 createAndroidComposeRule both work; no cast needed anymore
      createAndroidComposeRule<RoborazziActivity>()
    },
    ...
  )
)
What you might need to change

Most users need no changes. The exception: the options APIs now accept the ComposeTestRule / ComposeContentTestRule interfaces instead of the concrete AndroidComposeTestRule<...> type, so composeTestRule.activityRule is no longer reachable through them. Roborazzi finds your rule's activity automatically; if it can't, it fails loudly (instead of silently capturing the wrong activity) and tells you to pass the scenario yourself:

  • composeTestRule(rule) { activityScenario } for direct capture calls
  • JUnit4TestLifecycleOptions.activityScenarioProvider for generated preview tests

The new sample-compose-v2 module shows both, running against stable Compose 1.11.0.

Compatibility

Libraries compiled against 1.67.0 keep working — the old entry points are preserved as hidden binary-compat bridges. If you compile against 1.68.0, typical code compiles as-is (or gets simpler, as above). Known remaining binary-level changes on these @ExperimentalRoborazziApi surfaces: JUnit4TestParameter.getComposeTestRule's return type and the data-class copy signatures of JUnit4TestLifecycleOptions / RoborazziComposeTestRuleOption; recompiling resolves them.

@PreviewWrapper previews now appear correctly in screenshots

If you use Compose UI 1.11's @PreviewWrapper to wrap previews in a theme or background, those wrappers now show up in your Roborazzi preview screenshots with no extra setup — just use ComposablePreviewScanner 0.9.0 or later (#​823):

class DarkThemeWrapperProvider : PreviewWrapperProvider {
  @&#8203;Composable
  override fun Wrap(content: @&#8203;Composable () -> Unit) {
    MaterialTheme(colorScheme = darkColorScheme()) { content() }
  }
}

@&#8203;PreviewWrapper(DarkThemeWrapperProvider::class)
@&#8203;Preview
@&#8203;Composable
fun WrappedPreview() { ... }

This is verified by a sample preview test, and the docs have a new PreviewWrapper support section. Huge thanks to @​sergio-sastre for implementing the automatic wrapping in ComposablePreviewScanner 0.9.0!

What's Changed

Full Changelog: takahirom/roborazzi@1.67.0...1.68.0

v1.67.0

Compare Source

New experimental feature - Record a video of your UI

You can now record how a UI evolves over virtual time -- animations, transitions, gestures, and any other time-driven change -- as an animated image that plays back in real time. Because Roborazzi runs under Robolectric's virtual clock, designers and reviewers can watch a transition or gesture actually play out frame by frame, instead of inferring motion from a strip of static screenshots.

Unlike captureRoboGif(), which only records visually distinct states with a fixed 1-second delay, recordRoboVideo() pauses the Compose main clock and drives it frame by frame, so intermediate animation frames are captured with faithful timing. Interactions in the block run with the clock paused; call delay() in the scope to advance virtual time while frames are recorded. After the block returns, recording keeps going until the UI settles, so a block that only performs a click still records the whole animation that click starts.

@&#8203;OptIn(ExperimentalRoborazziApi::class)
@&#8203;Test
fun recordVideo() {
  composeTestRule.setContent {
    AnimatedBoxContent()
  }
  composeTestRule.onNodeWithTag("root")
    .recordRoboVideo(
      composeRule = composeTestRule,
      filePath = "build/outputs/roborazzi/video.gif",
      videoOptions = RoboVideoOptions(fps = 10),
    ) {
      composeTestRule.onNodeWithTag("toggle").performClick()
      delay(300)
      composeTestRule.onNodeWithTag("toggle").performClick()
      delay(300)
    }
}

A few things to know:

  • The output format is chosen by the file extension. .gif produces a GIF (256 colors; the default), and .png produces a lossless, full-color APNG (Animated PNG) -- prefer .png when color fidelity matters. Only these animated-image formats are supported for now; the "video" name was chosen deliberately so real video formats (e.g. mp4) can be added later without renaming the API.
  • Timing granularity differs by format. GIF stores frame delays in centiseconds (10ms resolution), so prefer an fps whose frame step (1000 / fps) is a multiple of 10ms (e.g. 10, 20, 25, 50) for exact GIF timing. APNG encodes the step exactly.
  • RoboVideoOptions exposes fps (default 10), settleTimeoutMillis (extra virtual time to keep recording while the UI is still changing after the block ends; default 3000), and backgroundColor (ARGB fill for the fixed recording viewport when frames have different sizes; default white).
  • This is record-only and experimental (@ExperimentalRoborazziApi). When the Roborazzi task runs in compare/verify mode it is a complete no-op -- the block is not executed and no image is recorded or verified.
Whole-screen recording with recordScreenRoboVideo()

recordScreenRoboVideo() records all window roots instead of a single node, mirroring how captureScreenRoboImage() relates to captureRoboImage(). Prefer it when you want a stable, device-sized viewport for every frame, or when you need to capture window overlays such as dialogs added mid-recording or touch/tap indicators -- these live on separate window roots and are invisible to a node-scoped recording.

recordScreenRoboVideo(
  composeRule = composeTestRule,
  filePath = "build/outputs/roborazzi/video_screen.gif",
  videoOptions = RoboVideoOptions(fps = 10),
) {
  composeTestRule.onNodeWithTag("toggle").performClick()
  delay(300)
}
Recording gestures

Because the recorder idles the Robolectric main Looper in lockstep with the Compose main clock, suspend-based gesture drivers make progress while frames are recorded. For example, you can drive a swipe with saket/touch-robot from a LaunchedEffect, use recordScreenRoboVideo() so the touch indicator overlay is captured, and just pump virtual time in the block:

composeTestRule.setContent {
  // A composable whose LaunchedEffect drives a touch-robot swipe on the root.
  DraggableBoxContent()
}
recordScreenRoboVideo(
  composeRule = composeTestRule,
  filePath = "build/outputs/roborazzi/swipe.gif",
) {
  // Pump virtual time so the LaunchedEffect gesture progresses while frames are captured.
  delay(1000)
}
touch_robot_swipe_screen

https://redirect.github.com/takahirom/roborazzi/pull/863/changes#diff-42e66fda923fc339b289fbb6468a18e795d5bf16a09ecf97ccd9596329afe7e8R91

See the how-to guide for full details.

Maintenance - Bump AndroidX Compose to 1.8.3

The AndroidX Compose pins used by the samples and tests were bumped from 1.7.x to 1.8.3. This enables using libraries built against Compose 1.8+ (such as touch-robot, whose bytecode calls Composer.shouldExecute, introduced in runtime 1.8.0). The JetBrains Compose Multiplatform version and Kotlin are untouched -- they are a separate axis.

Bugfix - Custom ComposePreviewTester docs

AndroidComposePreviewTester is final, so the previously documented subclassing approach didn't compile. The docs now show a minimal working setup using Kotlin class delegation (by AndroidComposePreviewTester(...)), and the example is compile-verified as a sample in the Gradle plugin integration-test project. Thanks @​hiSandog for the feedback on making the docs example concrete and testable!

What's Changed

Full Changelog: takahirom/roborazzi@1.66.0...1.67.0

v1.66.0

Compare Source

New feature - iOS (Compose Multiplatform) screenshot testing now shares the full Roborazzi pipeline

Roborazzi's iOS support has been rebuilt on top of the same image pipeline used on Android and Desktop. Previously, captureRoboImage on iOS was a separate implementation that only wrote a PNG and did a basic comparison. Now, iOS goes through the common RoborazziOptions pipeline, so most options you already use on Android work on iOS too:

composeUiTest.captureRoboImage(
  filePath = "ios_screenshot.png",
  roborazziOptions = RoborazziOptions(
    compareOptions = RoborazziOptions.CompareOptions(
      resultValidator = ThresholdValidator(0.01f),
    ),
  ),
) {
  MyComposeScreen()
}

What now works on iOS:

  • Comparison options: changeThreshold, resultValidator, custom imageComparator (via dropbox/differ), and resizeScale
  • Comparison images: failed comparisons generate the familiar reference | diff | new image, including ComparisonStyle.Grid with grid lines and Reference/Diff/New labels, matching the JVM layout
  • Reports: results are written into the standard Roborazzi report JSON, with contextData and custom RoborazziReporters (the roborazzi.contextdata flag is honored on iOS too)
  • Record/Compare/Verify tasks: recordRoborazziIos* / compareRoborazziIos* / verifyRoborazziIos* behave consistently with other targets

Current limitations on iOS (see the feature matrix for details):

  • Output format is PNG only (WebP is not supported)
  • Dump mode and applyDeviceCrop are not applicable
  • PixelBitConfig.Rgb565 falls back to 8888 with a warning
  • The automatically-added default context data (test class name) is JVM-only
  • Highly translucent pixels (alpha near 0) may lose some color precision due to CoreGraphics' premultiplied alpha (pinned down by characterization tests)

iOS support remains experimental, and behavior may be adjusted in future releases.

Note: if you already have recorded iOS golden images, please re-record them (recordRoborazzi*) after upgrading — the capture and encoding path has changed, so existing baselines may report differences.

Thanks to @​eyedol and @​vladcudoidem for building out the original iOS diffing and reporting infrastructure that this release builds upon, and thank you @​jl-jonas and @​kartikprakash1 for reporting iOS issues.

Bugfix - New golden images were misreported as "Changed" in recording tasks

When a recording task wrote a golden image for the first time, the report classified it as Changed instead of Added. The recording flow saves the actual image to the golden path before deciding the result status, so the existence check always saw the file as present. The check is now captured before any write, so newly added images are reported as Added correctly.

Bugfix - Descriptive error when AI assertions are used without configuration

Calling AI assertions without configuring aiAssertionOptions used to crash with an unhelpful NullPointerException. It now throws a descriptive error explaining that aiAssertionOptions needs to be set up.

What's Changed

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM (* 0-3 * * *)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot enabled auto-merge (squash) March 17, 2026 01:02
@renovate renovate Bot requested review from kkuan2011 and yrezgui as code owners March 17, 2026 01:02
@renovate renovate Bot force-pushed the renovate/all branch 3 times, most recently from 6d63750 to e0cffe1 Compare March 18, 2026 21:58
@renovate renovate Bot force-pushed the renovate/all branch 11 times, most recently from 3642b22 to 58cf231 Compare March 25, 2026 22:26
@renovate renovate Bot force-pushed the renovate/all branch 8 times, most recently from 3129112 to e078b5d Compare April 2, 2026 07:14
@renovate renovate Bot force-pushed the renovate/all branch 2 times, most recently from b626af9 to d4a6f2e Compare April 7, 2026 13:30
@renovate renovate Bot changed the title Update all dependencies fix(deps): update all dependencies Apr 7, 2026
@renovate renovate Bot changed the title fix(deps): update all dependencies Update all dependencies Apr 8, 2026
@renovate renovate Bot force-pushed the renovate/all branch 15 times, most recently from 7628abc to 1d66b16 Compare April 24, 2026 17:34
@renovate renovate Bot force-pushed the renovate/all branch 11 times, most recently from 083fdfb to 0f41ddd Compare May 5, 2026 01:56
@renovate renovate Bot force-pushed the renovate/all branch from 0f41ddd to 8f02c3d Compare May 5, 2026 20:44
Comment thread datastore/build.gradle.kts Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to bump this to 37.

@yrezgui

yrezgui commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

@android/devrel-xr There's an issue with the XR unit tests, can you look into it?

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