Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Declare input directories as files to avoid issues when they don't exist #374

Merged
merged 3 commits into from
May 24, 2024

Conversation

lukas-mercari
Copy link
Contributor

I sometimes get this error:

* What went wrong:
A problem was found with the configuration of task ':sample-android:testDebugUnitTest' (type 'AndroidUnitTest').
  - Type 'com.android.build.gradle.tasks.factory.AndroidUnitTest' property '$1' specifies directory '/Users/lukas/Dev/test/roborazzi/sample-android/build/outputs/roborazzi' which doesn't exist.

    Reason: An input file was expected to be present but it doesn't exist.

    Possible solutions:
      1. Make sure the directory exists before the task is called.
      2. Make sure that the task which produces the directory is declared as an input.

    For more information, please refer to https://docs.gradle.org/8.4/userguide/validation_problems.html#input_file_does_not_exist in the Gradle documentation.

It's a bit hard to reproduce, since I believe the configuration cache needs to kick in, but the following steps usually work:

// Make a change to the tests in `sample-android`.
./gradlew :sample-android:recordRoborazziDebug --build-cache
rm -rf ./sample-android/build
./gradlew :sample-android:recordRoborazziDebug --build-cache
rm -rf ./sample-android/build
./gradlew :sample-android:recordRoborazziDebug --build-cache

I believe the issue is essentially what is described in gradle/gradle#2016.

@takahirom
Copy link
Owner

Thank you for your investigation. I believe the contents of the output directory are changed during the build process, causing the test to fail.

checkIfOutputIsUsed
java.lang.AssertionError: Expected count: 0, actual count: 1 summary:ResultSummary(total=1, recorded=0, added=0, changed=1, unchanged=0)
at io.github.takahirom.roborazzi.RoborazziGradleProject.checkResultCount(RoborazziGradleProject.kt:327)
at io.github.takahirom.roborazzi.RoborazziGradleProject.checkResultCount$default(RoborazziGradleProject.kt:312)
at io.github.takahirom.roborazzi.RoborazziGradleProjectTest.checkIfOutputIsUsed(RoborazziGradleProjectTest.kt:204)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

https://github.com/takahirom/roborazzi/blob/main/include-build/roborazzi-gradle-plugin/src/integrationTest/java/io/github/takahirom/roborazzi/RoborazziGradleProjectTest.kt#L204

if (!it.outputDir.get().asFile.exists()) {
it.outputDir.get().asFile.mkdirs()
}
test.infoln("Roborazzi: Set input dir ${it.outputDir.get()} to test task")
it.outputDir
it.outputDir.files(".")
Copy link
Owner

Choose a reason for hiding this comment

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

I was wondering if this implementation will encounter the same problem, but does it work?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I re-tested it locally, and it seems to work!

@@ -301,20 +301,20 @@ abstract class RoborazziPlugin : Plugin<Project> {
.configureEach { test ->
val resultsDir = resultDirFileProperty.get().asFile
if (restoreOutputDirRoborazziTaskProvider.isPresent) {
test.inputs.dir(restoreOutputDirRoborazziTaskProvider.map {
test.inputs.files(restoreOutputDirRoborazziTaskProvider.map {
Copy link
Owner

Choose a reason for hiding this comment

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

Could you please add a comment and a link here to explain why we use files instead of a directory?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done! Btw, I believe we can now clean up the following three lines that create the output dir if it doesn't exist -- let me do that in a follow up though.

@lukas-mercari
Copy link
Contributor Author

@takahirom Sorry, I ran out of time to finish this today. Unfortunately I don't have a good idea on how gradle works, so all changes take me a bit of time. 😄 Let me double check the behaviour in the next days, possibly also in combination with what we conclude in #363.

Judging from my local runs it works for resolving the error I mentioned in the description -- and thus I can reproduce the issue that #366 fixes again.

@takahirom
Copy link
Owner

@lukas-mercari Thanks! Let me know if you think we should release these PRs.
#374
#366

@takahirom
Copy link
Owner

@lukas-mercari
If you feel like we're getting stuck, I think it's okay to release these changes as they are. I'd rather improve things gradually than aim for perfection. What do you think? If you need more time, that's fine too.

@lukas-mercari
Copy link
Contributor Author

@takahirom Sorry, it got delayed a bit since I went travelling! 🙇 Indeed I think it'd make sense to merge the two PRs.

@lukas-mercari lukas-mercari marked this pull request as ready for review May 23, 2024 13:11
@takahirom
Copy link
Owner

Thanks!

@takahirom takahirom merged commit 8902f7f into takahirom:main May 24, 2024
5 checks passed
github-merge-queue bot referenced this pull request in slackhq/circuit May 24, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[io.github.takahirom.roborazzi](https://togithub.com/takahirom/roborazzi)
| plugin | minor | `1.16.1` -> `1.17.0` |
|
[io.github.takahirom.roborazzi:roborazzi-junit-rule](https://togithub.com/takahirom/roborazzi)
| dependencies | minor | `1.16.1` -> `1.17.0` |
|
[io.github.takahirom.roborazzi:roborazzi-compose](https://togithub.com/takahirom/roborazzi)
| dependencies | minor | `1.16.1` -> `1.17.0` |
|
[io.github.takahirom.roborazzi:roborazzi](https://togithub.com/takahirom/roborazzi)
| dependencies | minor | `1.16.1` -> `1.17.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>takahirom/roborazzi (io.github.takahirom.roborazzi)</summary>

###
[`v1.17.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.17.0)

[Compare
Source](https://togithub.com/takahirom/roborazzi/compare/1.16.1...1.17.0)

##### Bug Fixes

- There seemed to be a pattern where ActivityScenario's close was not
being called when tests failed, causing leaks, so I used a use block to
ensure it is closed properly.
[@&#8203;yschimke](https://togithub.com/yschimke), thank you for
pointing out this issue.
- At companies that use Roborazzi on a large scale, there were issues
with the output dir not being restored properly due to Configuration
cache and other factors, so I simplified the design to make problems
less likely to occur.
- There were occasional errors reporting that a directory did not exist,
and I've added code to address this issue.
[@&#8203;lukas-mercari](https://togithub.com/lukas-mercari), thank you
for your contribution.

##### What's Changed

- Use the `use` block to prevent leaks by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/376](https://togithub.com/takahirom/roborazzi/pull/376)
- Declare input directories as files to avoid issues when they don't
exist by [@&#8203;lukas-mercari](https://togithub.com/lukas-mercari) in
[https://github.com/takahirom/roborazzi/pull/374](https://togithub.com/takahirom/roborazzi/pull/374)
- Fix output image consistency issue by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/366](https://togithub.com/takahirom/roborazzi/pull/366)
- \[CI] Update toolchain to Java 17 for all modules by
[@&#8203;mannodermaus](https://togithub.com/mannodermaus) in
[https://github.com/takahirom/roborazzi/pull/365](https://togithub.com/takahirom/roborazzi/pull/365)
. Thank you for managing our build process,
[@&#8203;mannodermaus](https://togithub.com/mannodermaus)!
- \[Sample] fix(deps): update dependency
androidx.compose.material:material to v1.6.7 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/342](https://togithub.com/takahirom/roborazzi/pull/342)
- fix(deps): update dependency org.robolectric:robolectric to v4.12.2 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/369](https://togithub.com/takahirom/roborazzi/pull/369)
- \[CI] Exclude `io.github.takahirom.roborazzi` dependency from Renovate
updates by [@&#8203;sanao1006](https://togithub.com/sanao1006) in
[https://github.com/takahirom/roborazzi/pull/372](https://togithub.com/takahirom/roborazzi/pull/372)

##### New Contributors

- [@&#8203;mannodermaus](https://togithub.com/mannodermaus) made their
first contribution in
[https://github.com/takahirom/roborazzi/pull/365](https://togithub.com/takahirom/roborazzi/pull/365)

**Full Changelog**:
takahirom/roborazzi@1.16.1...1.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzYuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM3Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
chrisbanes referenced this pull request in chrisbanes/haze May 25, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[io.github.takahirom.roborazzi](https://togithub.com/takahirom/roborazzi)
| `1.13.0` -> `1.18.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.takahirom.roborazzi/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.takahirom.roborazzi/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.takahirom.roborazzi/1.13.0/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.takahirom.roborazzi/1.13.0/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[io.github.takahirom.roborazzi:roborazzi-junit-rule](https://togithub.com/takahirom/roborazzi)
| `1.13.0` -> `1.18.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.takahirom.roborazzi:roborazzi-junit-rule/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.takahirom.roborazzi:roborazzi-junit-rule/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.takahirom.roborazzi:roborazzi-junit-rule/1.13.0/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.takahirom.roborazzi:roborazzi-junit-rule/1.13.0/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[io.github.takahirom.roborazzi:roborazzi-compose-desktop](https://togithub.com/takahirom/roborazzi)
| `1.13.0` -> `1.18.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.takahirom.roborazzi:roborazzi-compose-desktop/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.takahirom.roborazzi:roborazzi-compose-desktop/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.takahirom.roborazzi:roborazzi-compose-desktop/1.13.0/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.takahirom.roborazzi:roborazzi-compose-desktop/1.13.0/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[io.github.takahirom.roborazzi:roborazzi-compose](https://togithub.com/takahirom/roborazzi)
| `1.13.0` -> `1.18.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.takahirom.roborazzi:roborazzi-compose/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.takahirom.roborazzi:roborazzi-compose/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.takahirom.roborazzi:roborazzi-compose/1.13.0/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.takahirom.roborazzi:roborazzi-compose/1.13.0/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[io.github.takahirom.roborazzi:roborazzi](https://togithub.com/takahirom/roborazzi)
| `1.13.0` -> `1.18.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.takahirom.roborazzi:roborazzi/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.takahirom.roborazzi:roborazzi/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.takahirom.roborazzi:roborazzi/1.13.0/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.takahirom.roborazzi:roborazzi/1.13.0/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>takahirom/roborazzi (io.github.takahirom.roborazzi)</summary>

###
[`v1.18.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.18.0)

[Compare
Source](https://togithub.com/takahirom/roborazzi/compare/1.17.0...1.18.0)

##### Migrating from `java.io.File` to `kotlinx-io`

Roborazzi previously used `java.io.File` for saving and loading files.
Although Roborazzi supports iOS, sharing much of the logic is
challenging when using `java.io.File`. Therefore, we have migrated to
`kotlinx-io`.
We are attentive to the Kotlin versions our users employ. We upgraded
from version 1.9.21 to 1.9.22 due to a dependency on kotlinx-io. Since
Kotlin 1.9.22 was released last year, it should be compatible with most
projects.
Thank you, [@&#8203;eyedol](https://togithub.com/eyedol), for your
outstanding contribution! Your efforts are greatly appreciated.

    |    \--- org.jetbrains.kotlinx:kotlinx-io-core:0.3.3
    |         +--- org.jetbrains.kotlinx:kotlinx-io-bytestring:0.3.3
    |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 (*)
    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 (*)

##### What's Changed

- Migrate from java.io to kotlinx-io by
[@&#8203;eyedol](https://togithub.com/eyedol) in
[https://github.com/takahirom/roborazzi/pull/368](https://togithub.com/takahirom/roborazzi/pull/368)
- Use kotlinx-io 0.3.3 to avoid updating Kotlin by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/381](https://togithub.com/takahirom/roborazzi/pull/381)

##### New Contributors

- [@&#8203;eyedol](https://togithub.com/eyedol) made their first
contribution in
[https://github.com/takahirom/roborazzi/pull/368](https://togithub.com/takahirom/roborazzi/pull/368)

**Full Changelog**:
takahirom/roborazzi@1.17.0...1.18.0

###
[`v1.17.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.17.0)

[Compare
Source](https://togithub.com/takahirom/roborazzi/compare/1.16.1...1.17.0)

##### Bug Fixes

- There seemed to be a pattern where ActivityScenario's close was not
being called when tests failed, causing leaks, so I used a use block to
ensure it is closed properly.
[@&#8203;yschimke](https://togithub.com/yschimke), thank you for
pointing out this issue.
- At companies that use Roborazzi on a large scale, there were issues
with the output dir not being restored properly due to Configuration
cache and other factors, so I simplified the design to make problems
less likely to occur.
- There were occasional errors reporting that a directory did not exist,
and I've added code to address this issue.
[@&#8203;lukas-mercari](https://togithub.com/lukas-mercari), thank you
for your contribution.

##### What's Changed

- Use the `use` block to prevent leaks by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/376](https://togithub.com/takahirom/roborazzi/pull/376)
- Declare input directories as files to avoid issues when they don't
exist by [@&#8203;lukas-mercari](https://togithub.com/lukas-mercari) in
[https://github.com/takahirom/roborazzi/pull/374](https://togithub.com/takahirom/roborazzi/pull/374)
- Fix output image consistency issue by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/366](https://togithub.com/takahirom/roborazzi/pull/366)
- \[CI] Update toolchain to Java 17 for all modules by
[@&#8203;mannodermaus](https://togithub.com/mannodermaus) in
[https://github.com/takahirom/roborazzi/pull/365](https://togithub.com/takahirom/roborazzi/pull/365)
. Thank you for managing our build process,
[@&#8203;mannodermaus](https://togithub.com/mannodermaus)!
- \[Sample] fix(deps): update dependency
androidx.compose.material:material to v1.6.7 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/342](https://togithub.com/takahirom/roborazzi/pull/342)
- fix(deps): update dependency org.robolectric:robolectric to v4.12.2 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/369](https://togithub.com/takahirom/roborazzi/pull/369)
- \[CI] Exclude `io.github.takahirom.roborazzi` dependency from Renovate
updates by [@&#8203;sanao1006](https://togithub.com/sanao1006) in
[https://github.com/takahirom/roborazzi/pull/372](https://togithub.com/takahirom/roborazzi/pull/372)

##### New Contributors

- [@&#8203;mannodermaus](https://togithub.com/mannodermaus) made their
first contribution in
[https://github.com/takahirom/roborazzi/pull/365](https://togithub.com/takahirom/roborazzi/pull/365)

**Full Changelog**:
takahirom/roborazzi@1.16.1...1.17.0

###
[`v1.16.1`](https://togithub.com/takahirom/roborazzi/releases/tag/1.16.1)

[Compare
Source](https://togithub.com/takahirom/roborazzi/compare/1.16.0...1.16.1)

##### Bugfix

We removed the setting for the test task's input directory in 1.16.0,
but it caused incorrect results in the compare tests. Therefore, I
reverted the changes to the test input directory. This bug is now
covered by Roborazzi's integration tests.

##### What's Changed

- Fix issue where input images are overwritten and add test by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/364](https://togithub.com/takahirom/roborazzi/pull/364)

**Full Changelog**:
takahirom/roborazzi@1.16.0...1.16.1

###
[`v1.16.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.16.0)

[Compare
Source](https://togithub.com/takahirom/roborazzi/compare/1.15.0...1.16.0)

##### Improvements

- [@&#8203;lukas-mercari](https://togithub.com/lukas-mercari) informed
me that we can optimize our build-cache strategy by eliminating outdated
cache invalidation logic. With this adjustment, Roborazzi's integration
test time was reduced from 10 minutes to 6 minutes by utilizing caches.
Thanks for the excellent improvement suggestion. This might also help
other users' projects. Roborazzi's integration tests cover several use
cases, but if you encounter any issues related to caching, please let me
know.
- We have been supporting iOS since the previous version of Roborazzi
and want to share code with the iOS sourceset as much as possible.
Therefore, we migrated from Gson to Kotlinx.serialization 1.6.3. Thank
you for your contribution,
[@&#8203;sanao1006](https://togithub.com/sanao1006)
- Roborazzi has been supporting accessibility dumps for Android, and we
have now added the capability to check the disabled status within these
dumps. Thank you for your contribution,
[@&#8203;lukas-mercari](https://togithub.com/lukas-mercari) !

<img width="723" alt="image"
src="https://github.com/takahirom/roborazzi/assets/1386930/1a324aae-7541-410a-a5d1-b04181d875ba">

##### What's Changed
* Remove unneeded cache invalidation by
@&#8203;takahir[https://github.com/takahirom/roborazzi/pull/362](https://togithub.com/takahirom/roborazzi/pull/362)ll/362
* Include Disabled semantic property in accessibility explanation by
@&#8203;lukas-merca[https://github.com/takahirom/roborazzi/pull/361](https://togithub.com/takahirom/roborazzi/pull/361)ll/361
* [Docs] Add "Why do my screenshot tests fail inconsistently across
different operating systems" section by
@&#8203;takahir[https://github.com/takahirom/roborazzi/pull/353](https://togithub.com/takahirom/roborazzi/pull/353)ll/353
* Migrate from Gson to KotlinX.Serialization by
@&#8203;sanao10[https://github.com/takahirom/roborazzi/pull/350](https://togithub.com/takahirom/roborazzi/pull/350)ll/350
* [Sample] fix(deps): update androidx.navigation to v2.7.7 by
@&#8203;renova[https://github.com/takahirom/roborazzi/pull/337](https://togithub.com/takahirom/roborazzi/pull/337)ll/337
* [Sample] fix(deps): update dependency
androidx.compose.material3:material3 to v1.2.1 by
@&#8203;renova[https://github.com/takahirom/roborazzi/pull/341](https://togithub.com/takahirom/roborazzi/pull/341)ll/341
* [CI] chore(deps): update gradle/gradle-build-action action to v2.12.0
by
@&#8203;renova[https://github.com/takahirom/roborazzi/pull/356](https://togithub.com/takahirom/roborazzi/pull/356)ll/356

**Full Changelog**:
takahirom/roborazzi@1.15.0...1.16.0

###
[`v1.15.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.15.0)

[Compare
Source](https://togithub.com/takahirom/roborazzi/compare/1.14.0...1.15.0)

##### Improvements

- Resolved a Race Condition in Roborazzi Gradle Integration Tests: In
version 1.14.0, we identified an intermittent issue where images from
Roborazzi did not always appear in the output directory during certain
test scenarios, particularly when test results were cached. Despite
efforts to resolve this in 1.14.0, the issue persisted due to its
elusive nature. In this release, we have successfully addressed this
problem, ensuring that images are now consistently placed in the output
directory under similar conditions. This improvement has been verified
through our integration tests. This issue may occur in user projects, so
we recommend updating to this version.
We continue to refine our testing processes to prevent similar issues in
future releases.

##### What's Changed

- Update CompileSdk 34 by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/344](https://togithub.com/takahirom/roborazzi/pull/344)
- Add debug code for flaky test by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/346](https://togithub.com/takahirom/roborazzi/pull/346)
- Fix issue where finalizedTask is skipped unexpectedly by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/347](https://togithub.com/takahirom/roborazzi/pull/347)
- Improve performance for race condition workaround by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/348](https://togithub.com/takahirom/roborazzi/pull/348)
- Improve performance for race condition workaround2 by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/349](https://togithub.com/takahirom/roborazzi/pull/349)
- \[CI]Pin dependencies by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/329](https://togithub.com/takahirom/roborazzi/pull/329)
- \[CI]Update actions/checkout action to v3.6.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/334](https://togithub.com/takahirom/roborazzi/pull/334)
- \[CI]Update actions/setup-java action to v3.13.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/335](https://togithub.com/takahirom/roborazzi/pull/335)
- \[CI]Update dawidd6/action-download-artifact action to v2.28.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/338](https://togithub.com/takahirom/roborazzi/pull/338)
- \[Sample]Update dependency androidx.appcompat:appcompat to v1.6.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/339](https://togithub.com/takahirom/roborazzi/pull/339)
- \[Sample]Update dependency androidx.constraintlayout:constraintlayout
to v2.1.4 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/330](https://togithub.com/takahirom/roborazzi/pull/330)

**Full Changelog**:
takahirom/roborazzi@1.14.0...1.15.0

###
[`v1.14.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.14.0)

[Compare
Source](https://togithub.com/takahirom/roborazzi/compare/1.13.0...1.14.0)

##### Bug fixes

Cache-related Flakiness in Comparison Results: We've identified and
resolved an intermittent issue where cached data could sometimes prevent
users from seeing comparison results in Roborazzi.

[https://github.com/takahirom/roborazzi/pull/323](https://togithub.com/takahirom/roborazzi/pull/323)

##### What's Changed

- \[CI]Configure Renovate by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/317](https://togithub.com/takahirom/roborazzi/pull/317)
- \[CI]Pin JetBrains/writerside-github-action action to
[`5a6920d`](https://togithub.com/takahirom/roborazzi/commit/5a6920d) by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/318](https://togithub.com/takahirom/roborazzi/pull/318)
- \[CI]Update actions/checkout digest to
[`0ad4b8f`](https://togithub.com/takahirom/roborazzi/commit/0ad4b8f) by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/319](https://togithub.com/takahirom/roborazzi/pull/319)
- Update composeMultiplatform to v1.6.2 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/321](https://togithub.com/takahirom/roborazzi/pull/321)
- \[Test]Update dependency com.ashampoo:kim to v0.17.7 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/takahirom/roborazzi/pull/322](https://togithub.com/takahirom/roborazzi/pull/322)
- Fix issue where cache restoration fails by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/323](https://togithub.com/takahirom/roborazzi/pull/323)
- \[Test]fix typo in RoborazziGradleProject.kt by
[@&#8203;sanao1006](https://togithub.com/sanao1006) in
[https://github.com/takahirom/roborazzi/pull/325](https://togithub.com/takahirom/roborazzi/pull/325)
- \[CI]Remove renovate rule by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[https://github.com/takahirom/roborazzi/pull/328](https://togithub.com/takahirom/roborazzi/pull/328)

##### New Contributors

- [@&#8203;renovate](https://togithub.com/renovate) made their first
contribution in
[https://github.com/takahirom/roborazzi/pull/317](https://togithub.com/takahirom/roborazzi/pull/317)

**Full Changelog**:
takahirom/roborazzi@1.13.0...1.14.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
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.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/chrisbanes/haze).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM2OC4xMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
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.

2 participants