Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jan 9, 2025

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 v4v6 age confidence
actions/upload-artifact action major v4v6 age confidence
github/codeql-action action major v3v4 age confidence
gradle/actions action major v4v5 age confidence
madrapps/jacoco-report action patch v1.7.1v1.7.2 age confidence
stefanzweifel/git-auto-commit-action action major v5v7 age confidence
androidx.compose.ui:ui-test-junit4 (source) dependencies minor 1.9.0-rc011.10.0 age confidence
app.cash.turbine:turbine dependencies patch 1.2.01.2.1 age confidence
com.google.truth:truth dependencies patch 1.4.41.4.5 age confidence
androidx.room (source) plugin patch 2.8.32.8.4 age confidence
androidx.room:room-gradle-plugin (source) dependencies patch 2.8.32.8.4 age confidence
androidx.room:room-runtime (source) dependencies patch 2.8.32.8.4 age confidence
androidx.room:room-ktx (source) dependencies patch 2.8.32.8.4 age confidence
androidx.room:room-compiler (source) dependencies patch 2.8.32.8.4 age confidence
io.github.takahirom.roborazzi plugin minor 1.51.01.56.0 age confidence
io.github.takahirom.roborazzi:roborazzi-accessibility-check dependencies minor 1.51.01.56.0 age confidence
io.github.takahirom.roborazzi:roborazzi dependencies minor 1.51.01.56.0 age confidence
com.squareup.retrofit2:converter-kotlinx-serialization dependencies major 2.11.03.0.0 age confidence
com.squareup.retrofit2:retrofit dependencies major 2.11.03.0.0 age confidence
com.google.protobuf plugin patch 0.9.50.9.6 age confidence
com.google.protobuf:protoc (source) dependencies minor 4.29.24.33.3 age confidence
com.google.protobuf:protobuf-kotlin-lite (source) dependencies minor 4.29.24.33.3 age confidence
com.squareup.okhttp3:logging-interceptor (source) dependencies major 4.12.05.3.2 age confidence
org.jetbrains.kotlinx:kotlinx-serialization-json dependencies minor 1.8.01.9.0 age confidence
org.jetbrains.kotlinx:kotlinx-datetime dependencies minor 0.6.10.7.1-0.6.x-compat age confidence
org.jetbrains.kotlinx:kotlinx-coroutines-test dependencies patch 1.10.11.10.2 age confidence
org.jetbrains.kotlinx:kotlinx-coroutines-guava dependencies patch 1.10.11.10.2 age confidence
org.jetbrains.kotlinx:kotlinx-coroutines-android dependencies patch 1.10.11.10.2 age confidence
org.jetbrains.kotlinx:kotlinx-coroutines-core dependencies patch 1.10.11.10.2 age confidence
androidx.hilt:hilt-work (source) dependencies minor 1.2.01.3.0 age confidence
androidx.hilt:hilt-compiler (source) dependencies minor 1.2.01.3.0 age confidence
com.google.android.gms.oss-licenses-plugin plugin patch 0.10.90.10.10 age confidence
com.google.android.gms:play-services-oss-licenses dependencies minor 17.1.017.3.0 age confidence
com.google.firebase:firebase-bom dependencies major 33.7.034.7.0 age confidence
androidx.work:work-testing (source) dependencies minor 2.10.02.11.0 age confidence
androidx.work:work-runtime-ktx (source) dependencies minor 2.10.02.11.0 age confidence
androidx.window:window-core (source) dependencies minor 1.3.01.5.1 age confidence
androidx.tracing:tracing-ktx (source) dependencies patch 1.3.0-alpha021.3.0 age confidence
androidx.test:runner dependencies patch 1.7.0-rc011.7.0 age confidence
androidx.test:rules dependencies patch 1.7.0-rc011.7.0 age confidence
androidx.test.ext:junit-ktx dependencies patch 1.3.0-rc011.3.0 age confidence
androidx.test:core dependencies patch 1.7.0-rc011.7.0 age confidence
androidx.savedstate:savedstate-compose (source) dependencies minor 1.3.11.4.0 age confidence
androidx.navigation:navigation-testing (source) dependencies minor 2.8.52.9.6 age confidence
androidx.metrics:metrics-performance (source) dependencies patch 1.0.0-beta011.0.0 age confidence
com.diffplug.spotless:spotless-plugin-gradle dependencies major 6.25.08.1.0 age confidence
androidx.lint:lint-gradle (source) dependencies patch 1.0.0-alpha031.0.0-alpha05 age confidence
androidx.hilt:hilt-lifecycle-viewmodel-compose (source) dependencies patch 1.3.0-alpha021.3.0 age confidence
androidx.test.espresso:espresso-core dependencies minor 3.6.13.7.0 age confidence
androidx.core:core-splashscreen (source) dependencies minor 1.0.11.2.0 age confidence
androidx.core:core-ktx (source) dependencies minor 1.15.01.17.0 age confidence
androidx.compose.runtime:runtime-tracing (source) dependencies minor 1.7.61.10.0 age confidence
androidx.compose.material3.adaptive:adaptive-navigation3 (source) dependencies patch 1.3.0-alpha041.3.0-alpha05 age confidence
androidx.compose.material3.adaptive:adaptive-navigation (source) dependencies minor 1.1.0-rc011.2.0 age confidence
androidx.compose.material3.adaptive:adaptive-layout (source) dependencies minor 1.1.0-rc011.2.0 age confidence
androidx.compose.material3.adaptive:adaptive (source) dependencies minor 1.1.0-rc011.2.0 age confidence
androidx.compose.foundation:foundation (source) dependencies minor 1.8.0-alpha071.10.0 age confidence
androidx.compose:compose-bom-alpha dependencies minor 2025.09.012025.12.01 age confidence
androidx.browser:browser (source) dependencies minor 1.8.01.9.0 age confidence
androidx.appcompat:appcompat (source) dependencies patch 1.7.01.7.1 age confidence
androidx.activity:activity-compose (source) dependencies minor 1.9.31.12.2 age confidence
com.android.tools:common (source) dependencies patch 31.13.131.13.2 age confidence
com.android.tools.lint:lint-tests (source) dependencies patch 31.13.131.13.2 age confidence
com.android.tools.lint:lint-checks (source) dependencies patch 31.13.131.13.2 age confidence
com.android.tools.lint:lint-api (source) dependencies patch 31.13.131.13.2 age confidence
com.android.test (source) plugin patch 8.13.18.13.2 age confidence
com.android.lint (source) plugin patch 8.13.18.13.2 age confidence
com.android.library (source) plugin patch 8.13.18.13.2 age confidence
com.android.application (source) plugin patch 8.13.18.13.2 age confidence
com.android.tools.build:gradle-api (source) dependencies patch 8.13.18.13.2 age confidence
com.android.tools:desugar_jdk_libs dependencies patch 2.1.42.1.5 age confidence
com.google.accompanist:accompanist-permissions dependencies patch 0.37.00.37.3 age confidence

Release Notes

actions/checkout (actions/checkout)

v6

Compare Source

v5

Compare Source

actions/upload-artifact (actions/upload-artifact)

v6

Compare Source

v5

Compare Source

github/codeql-action (github/codeql-action)

v4

Compare Source

gradle/actions (gradle/actions)

v5

Compare Source

madrapps/jacoco-report (madrapps/jacoco-report)

v1.7.2

Compare Source

What's Changed

Full Changelog: Madrapps/jacoco-report@v1.7.1...v1.7.2

stefanzweifel/git-auto-commit-action (stefanzweifel/git-auto-commit-action)

v7

Compare Source

Added
Changes
Dependency Updates

v6

Compare Source

Fixed
cashapp/turbine (app.cash.turbine:turbine)

v1.2.1

Compare Source

Changed
Fixed
  • Calling testIn with a CoroutineScope that does not contain a Job no longer throws IllegalStateException.
google/truth (com.google.truth:truth)

v1.4.5: 1.4.5

Compare Source

  • Changed assertions like assertThat(nullMap).isEmpty() to fail with a useful failure message instead of throwing NullPointerException (and similarly for other "bogus" values, such as negative sizes). (da5d6e9)
  • Made Kotlin's isInstanceOf(Int::class.java) (and Java's isInstanceOf(int.class)) a valid way to check for Int/Integer instances. (974ef19)
  • Improved isWithin to pretty-print numbers in its failure messages. (de78553, 07318c2)
  • Improved some assertions that print class names to print simpler names (e.g., Integer instead of java.lang.Integer). (0ba72d6)
  • Changed ExpectFailure to never generate "value of" lines based on bytecode. This slightly simplifies writing new tests with ExpectFailure and prevents future behavior changes in some ExpectFailure tests that already exist. However, it may also require changes to other existing ExpectFailure tests to remove or change any assertions about the "value of" line. (3caa0e8)
  • Our Android minSdkVersion is now 23 (Marshmallow). This follows the minimum of Google's foundational Android libraries, and we expect it to have no practical impact on users. (c85c75c)
  • Changed our GWT/J2CL artifact to omit usages of @NullMarked. This was making all our types non-null in those environments, since we don't yet use @Nullable in the GWT/J2CL artifact. (6392d37)
takahirom/roborazzi (io.github.takahirom.roborazzi)

v1.56.0

Compare Source

Added AGP 9.0 compatibility to RoborazziPlugin

Roborazzi was previously using APIs and classes that have since been deprecated, such as Variant.unitTest and TestedExtension. We have now migrated to alternative, supported classes and methods.

Behavior changes: Stabilized preview LaunchedEffect execution for Compose Preview support

Previously, screenshots occasionally differed from Android Studio Composable Preview when using LaunchedEffect. We now invoke composeTestRule.mainClock.advanceTimeByFrame() by default, so some screenshots may appear different. You can restore the previous behavior by implementing a custom tester as follows:

composeRuleFactory = { createAndroidComposeRule<RoborazziActivity>() as AndroidComposeTestRule<ActivityScenarioRule<out ComponentActivity>, *> },
What's Changed

Full Changelog: takahirom/roborazzi@1.55.0...1.56.0

v1.55.0

Compare Source

Bugfix: Fix WebP ClassCastException
What happened
  • Robolectric runs inside a custom class loader named SdkSandboxClassLoader.
  • Roborazzi's WebP support relies on ImageIO.getImageWritersByMIMEType, which internally caches writers in a static field. When the writer is first created, the code is executed by SdkSandboxClassLoader1.
  • Subsequently, when another test runs with a different SDK (e.g., 35), a second SdkSandboxClassLoader (SdkSandboxClassLoader2) is spawned. Because ImageIO's cached instance was loaded by a different class loader, attempting to cast it triggers a ClassCastException.

class com.luciad.imageio.webp.WebPWriteParam cannot be cast to class com.luciad.imageio.webp.WebPWriteParam (com.luciad.imageio.webp.WebPWriteParam is in unnamed module of loader org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader @​1dbb650b; com.luciad.imageio.webp.WebPWriteParam is in unnamed module of loader org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader @​3e48e859)

What we did

We leveraged reflection to force ImageIO.getImageWritersByMIMEType to use the System ClassLoader, thereby guaranteeing that the same class definition is shared irrespective of the current SdkSandboxClassLoader.
Many thanks to @​eygraber for reporting this bug!

What's Changed

Full Changelog: takahirom/roborazzi@1.54.0...1.55.0

v1.54.0

Compare Source

Breaking change: Report HTML and JSON paths have changed

The HTML report used to be at build/reports/roborazzi/index.html but is now located at build/reports/roborazzi/<build_variant>/index.html. This is a first step toward fixing a long-standing issue where running recordRoborazzi (instead of recordRoborazziDebug) could break test results; further work is still needed to make it fully reliable.

You should be able to fix it by adding /debug/ (or your build variant) to the path in your CI script. I believe the change is straightforward, but if you run into any cases where it's difficult please let me know.

Note: This change does not affect the paths of the generated screenshot images, so most users will not be impacted.

Thank you for your contribution, @​vladcudoidem!

Behavioral change: Fixed screenshot timing for Compose Preview Support

Previously, we used Espresso.onIdle() and ShadowLooper.idle(), but these APIs are not suitable for Compose. Consequently, screenshots could not be captured after onSizeChanged completed.

@&#8203;Preview
@&#8203;Composable
fun PreviewOnSizeChanged() {
  var size by remember { mutableStateOf("unknown") }
  Box(
    modifier = Modifier
      .size(100.dp)
      .background(Color.Blue)
      .onSizeChanged { size = "${it.width}x${it.height}" } // Now invoked! (It used to be skipped.)
  ) {
    Text(text = size, color = Color.White)
  }
}

If you encounter issues with infinite animations—such as CircularProgressIndicator—you can configure frame-based captures using @RoboComposePreviewOptions.

@&#8203;RoboComposePreviewOptions(
  manualClockOptions = [ManualClockOptions(advanceTimeMillis = 0L)]
)

Thank you for reporting this issue, @​savvasenok!

What's Changed

Full Changelog: takahirom/roborazzi@1.53.0...1.54.0

v1.53.0

Compare Source

New feature generatedTestClassCount and behavior changes to Compose Preview support

We've added the generatedTestClassCount option, which enables us to run Preview tests in parallel when you set maxParallelForks to a value greater than 1.

roborazzi {
  generateComposePreviewRobolectricTests {
    generatedTestClassCount = 4
  }
}

As the name generatedTestClassCount suggests, this option generates as many test classes as specified. It creates tests whose previewIndex % totalTestClassCount == testClassIndex. However, this option does not modify maxParallelForks, so you must also set maxParallelForks yourself to run tests in parallel. This is our policy: we never alter other plugin(AGP) settings in order to keep one single source of configuration.

Behavior changes: generatedTestClassCount now defaults to the same value as maxParallelForks. Therefore, if you already use maxParallelForks during testing, the behavior may change if your tests are non-deterministic—for example, if they depend on the order in which other tests run.

Last but not least, thanks to @​sergio-sastre for suggesting this feature, reviewing the code, and confirming the approach works!

Fix configuration-time resolution when using BOM to Compose Preview support

Fixed an error where the version verification logic triggered configuration-time resolution errors when using BOM (Bill of Materials) for dependency management.

The fix simplifies the verifyComposablePreviewScannerVersion method by removing the complex fallback logic that attempted to infer versions from test configurations. Instead, the plugin now only checks explicitly declared versions—when no version is specified (indicating BOM management), verification is skipped.

Thanks to @​igokoro for reporting this issue!

Fix iOS snapshot not creating parent directories before writing files

Fixed a critical bug where iOS snapshot tests weren't being recorded on the first run. The root cause was that NSData.writeToFile silently fails when parent directories don't exist.

The fix ensures parent directories are automatically created before writing files using NSFileManager.defaultManager.createDirectoryAtPath with withIntermediateDirectories = true. Additionally, error logging was added to report both successful and failed file operations, preventing silent failures.

Thanks to @​jl-jonas for reporting this issue!

What's Changed

Full Changelog: takahirom/roborazzi@1.52.0...1.53.0

v1.52.0

Compare Source

Support for com.android.kotlin.multiplatform.library plugin

Even though we can use androidUnitTest in Kotlin Multiplatform Plugin, there is a way to add Android target to KMP and this might become mainstream. Roborazzi did not add the task for this plugin so we added tasks like recordRoborazziAndroidHostTest. Thank you for reporting this issue @​xVemu !

Support for KMP testRuns API

When we add testRuns in build.gradle, that enables us to control dependencies for tests in KMP, Roborazzi used to fail with Cannot add task 'clearRoborazziJvm' as a task with that name already exists.. Thank you for reporting this issue as well @​xVemu !

Fix preview tests plugin when using Bom dependencies

There are patterns that we cannot build with Roborazzi due to configuration cache issues. We addressed this issue using a new API for configuration cache. Thank you for reporting this @​igokoro !

What's Changed

Full Changelog: takahirom/roborazzi@1.51.0...1.52.0

square/retrofit (com.squareup.retrofit2:converter-kotlinx-serialization)

v3.0.0

Compare Source

Changed

  • Upgrade to OkHttp 4.12 (from 3.14).

    This is the version of OkHttp that is written in Kotlin, and as a result Retrofit now has a transitive Kotlin dependency. However, this is also the supported version of OkHttp whereas the previous version was out of support for nearly 4 years.

Note: The 3.x versions of Retrofit maintain forward binary-compatibility with the 2.x versions.
This means libraries compiled against 2.x can still be used with the 3.x versions.

v2.12.0

Compare Source

New

  • First-party converters now support deferring serialization to happen when the request body is written (i.e., during HTTP execution) rather than when the HTTP request is created. In some cases this mov

Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), 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 force-pushed the renovate/all branch 2 times, most recently from 8cccfa0 to de04ce8 Compare January 9, 2025 22:12
@SimonMarquis
Copy link
Contributor

Beware, the badging check job in CI failed, but the PR mentions all checks have passed.

@renovate renovate bot force-pushed the renovate/all branch 16 times, most recently from d5a7477 to 53a829b Compare January 18, 2025 01:03
@renovate renovate bot force-pushed the renovate/all branch 10 times, most recently from 5467061 to ab3dcf7 Compare January 20, 2025 15:43
@renovate renovate bot force-pushed the renovate/all branch 27 times, most recently from d3ee9a3 to 4203c08 Compare January 10, 2026 12:56
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