Closed JavierSegoviaCordoba closed 1 year ago
It is not happening with 1.2.0.
Based on git blame the method was added in https://github.com/cashapp/paparazzi/commit/61ceebf59b296acd00e163ad4f2a22e6ea5d3746 (#766) which is only in 1.3.0 tag.
'other' has different root
Hmmm, this looks similar to:
in that this implies that the receiver (of type Directory) and the argument (of type File) for app.cash.paparazzi.gradle.utils.FileUtilsKt.relativize
are located on different drives (e.g., C:\, D:) on Windows fs.
relativeToOrNull or relativeToOrSelf might come in handy here.
From experience this can happen if the %GRADLE_USER_HOME%
(or testkit in %TEMP%
) are located on a different drives. e.g. I have all my code on P:
, C:
has system with Temp and have a separate SSD for (gradle) caches at Z:
. @JavierSegoviaCordoba do you have something similar?
Yeah, have the source code in a different drive, but I only have two disk, the main one, c
and another one for the repos, d
.
@JavierSegoviaCordoba Could you please provide full error logs? Need to know which line in PrepareResourcesTask actually throw the error.
@kevinzheng-ap
Caused by: java.lang.IllegalArgumentException: 'other' has different root
at app.cash.paparazzi.gradle.utils.FileUtilsKt.relativize(FileUtils.kt:27)
at app.cash.paparazzi.gradle.utils.FileUtilsKt$joinFiles$1.invoke(FileUtils.kt:23)
at app.cash.paparazzi.gradle.utils.FileUtilsKt$joinFiles$1.invoke(FileUtils.kt:22)
at kotlin.text.StringsKt__AppendableKt.appendElement(Appendable.kt:85)
at kotlin.collections.CollectionsKt___CollectionsKt.joinTo(_Collections.kt:3490)
at kotlin.collections.CollectionsKt___CollectionsKt.joinToString(_Collections.kt:3507)
at kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(_Collections.kt:3506)
at app.cash.paparazzi.gradle.utils.FileUtilsKt.joinFiles(FileUtils.kt:22)
at app.cash.paparazzi.gradle.PrepareResourcesTask.writeResourcesFile(PrepareResourcesTask.kt:106)
PrepareResourcesTask.kt:106
in 1.3.0 points to this line:
it.write(libraryResourceDirs.joinFiles(gradleUserHomeDirectory))
gradleUserHomeDirectory
is set by
private val gradleUserHomeDirectory = projectDirectory.dir(project.gradle.gradleUserHomeDir.path)
and should be something like D:\gradle\home
(can you confirm?)
libraryResourceDirs
should be a comma-delimited list of relative paths, i.e.,
caches/transforms-3/9857af1a3795364c8daa966d0860d308/transformed/material-ripple-1.4.3/res,caches/transforms-3/b21ccc548dd99a0e96dbdaf4d800916e/transformed/material-icons-core-1.4.3/res,caches/transforms-3/9781c94dff12e752cf590064e5344ac8/transformed/animation-core-1.4.3/res,caches/transforms-3/04a9ba9108c0c2e64f038cbad2028368/transformed/animation-1.4.3/res,...
(can you confirm by checking PROJECT_ROOT/build/intermediates/paparazzi/VARIANT/resources.txt
?)
This is the content of PROJECT_ROOT/build/intermediates/paparazzi/VARIANT/resources.txt
:
com.javiersc.foo.bar
intermediates/merged_res/debug
33
platforms/android-33/
intermediates/assets/debug
com.javiersc.foo.bar,com.javiersc.shared.ui,coil.compose.singleton,org.koin.android,coil.compose.base,coil.singleton,com.google.accompanist.drawablepainter,androidx.compose.material3,androidx.compose.material.ripple,androidx.compose.material.icons,androidx.compose.material,androidx.compose.animation.core,androidx.compose.animation,androidx.compose.foundation.layout,androidx.compose.foundation,androidx.compose.ui.tooling.data,androidx.compose.ui.util,androidx.compose.ui.unit,androidx.compose.ui.text,androidx.compose.ui.geometry,androidx.compose.ui.tooling.preview,androidx.compose.ui.test.manifest,androidx.compose.ui.graphics,androidx.compose.ui.tooling,androidx.fragment.ktx,coil.base,androidx.appcompat.resources,androidx.appcompat,androidx.fragment,androidx.activity,androidx.activity.ktx,androidx.activity.compose,androidx.compose.ui,androidx.customview.poolingcontainer,androidx.palette,androidx.legacy.coreutils,androidx.loader,androidx.emoji2.viewsintegration,androidx.emoji2,androidx.lifecycle.process,androidx.lifecycle.livedata.core,androidx.lifecycle.livedata,androidx.lifecycle.livedata.core.ktx,androidx.lifecycle.viewmodel.ktx,androidx.lifecycle.viewmodel,androidx.savedstate.ktx,androidx.savedstate,androidx.lifecycle.viewmodel.savedstate,androidx.core.ktx,androidx.autofill,androidx.drawerlayout,androidx.vectordrawable.animated,androidx.vectordrawable,androidx.viewpager,androidx.customview,androidx.core,androidx.lifecycle.runtime,androidx.lifecycle.ktx,androidx.compose.runtime.saveable,androidx.compose.runtime,com.javiersc.kotlin.stdlib,androidx.annotation.experimental,androidx.interpolator,androidx.versionedparcelable,androidx.arch.core,androidx.documentfile,androidx.localbroadcastmanager,androidx.print,androidx.cursoradapter,androidx.profileinstaller,androidx.startup,androidx.tracing,androidx.exifinterface
src/main/res,src/debug/res
Ok, so this means you have no transitive dependencies which contain resource folders, so I would expect the fileCollection to be empty? 🤔
Mind stepping through a debugger on a Windows machine and seeing why FileUtils is throwing that exception? I don't have a Windows install handy.
Also, can you try 1.3.1-SNAPSHOT and see if this is fixed? My attempts to repro on CI aren't failing with a stacktrace similar to what you provided.
Ok, so this means you have no transitive dependencies which contain resource folders, so I would expect the fileCollection to be empty? 🤔
@jrodbx I think that's this one: #998
can you confirm by checking PROJECT_ROOT/build/intermediates/paparazzi/VARIANT/resources.txt?
Wait, @jrodbx, this file is written by PrepareResourcesTask
, which is failing, so we're not observing the full contents here, so:
mainPackage=com.javiersc.foo.bar
mergeResourcsOutputDir=intermediates/merged_res/debug
targetSdkVersion=33
compileSdk=platforms/android-33/
mergeAssetsOutputDir=intermediates/assets/debug
resourcePackageNames=com.javiersc.foo.bar,com.javiersc.shared.ui,coil.compose.singleton,org.koin.android,coil.compose.base,coil.singleton,com.google.accompanist.drawablepainter,androidx.compose.material3,androidx.compose.material.ripple,androidx.compose.material.icons,androidx.compose.material,androidx.compose.animation.core,androidx.compose.animation,androidx.compose.foundation.layout,androidx.compose.foundation,androidx.compose.ui.tooling.data,androidx.compose.ui.util,androidx.compose.ui.unit,androidx.compose.ui.text,androidx.compose.ui.geometry,androidx.compose.ui.tooling.preview,androidx.compose.ui.test.manifest,androidx.compose.ui.graphics,androidx.compose.ui.tooling,androidx.fragment.ktx,coil.base,androidx.appcompat.resources,androidx.appcompat,androidx.fragment,androidx.activity,androidx.activity.ktx,androidx.activity.compose,androidx.compose.ui,androidx.customview.poolingcontainer,androidx.palette,androidx.legacy.coreutils,androidx.loader,androidx.emoji2.viewsintegration,androidx.emoji2,androidx.lifecycle.process,androidx.lifecycle.livedata.core,androidx.lifecycle.livedata,androidx.lifecycle.livedata.core.ktx,androidx.lifecycle.viewmodel.ktx,androidx.lifecycle.viewmodel,androidx.savedstate.ktx,androidx.savedstate,androidx.lifecycle.viewmodel.savedstate,androidx.core.ktx,androidx.autofill,androidx.drawerlayout,androidx.vectordrawable.animated,androidx.vectordrawable,androidx.viewpager,androidx.customview,androidx.core,androidx.lifecycle.runtime,androidx.lifecycle.ktx,androidx.compose.runtime.saveable,androidx.compose.runtime,com.javiersc.kotlin.stdlib,androidx.annotation.experimental,androidx.interpolator,androidx.versionedparcelable,androidx.arch.core,androidx.documentfile,androidx.localbroadcastmanager,androidx.print,androidx.cursoradapter,androidx.profileinstaller,androidx.startup,androidx.tracing,androidx.exifinterface
localResourceDirs=src/main/res,src/debug/res
libraryResourceDirs=<empty because exception thrown while calculating value, so .use { } closed the file early>
I tried to repro on 1.3.0 branch
then I ran:
gradlew -p paparazzi -x :paparazzi:dokkaHtml :paparazzi-gradle-plugin:cleanTest :paparazzi-gradle-plugin:test --no-build-cache --tests app.cash.paparazzi.gradle.PaparazziPluginTest
.composeA11y
and checked the build log of the test:
file:///P:/projects/contrib/github-paparazzi/paparazzi/paparazzi-gradle-plugin/src/test/projects/compose-a11y/build/reports/tests/testDebugUnitTest/classes/app.cash.paparazzi.plugin.test.ComposeA11yTest.html
and I got this output:
[app.cash.paparazzi.plugin.test, intermediates/merged_res/debug, 33, platforms/android-33/, intermediates/assets/debug, app.cash.paparazzi.plugin.test,androidx.compose.material.ripple,androidx.compose.material.icons,androidx.compose.material,androidx.compose.foundation.layout,androidx.compose.animation.core,androidx.compose.ui.util,androidx.compose.ui.unit,androidx.compose.ui.text,androidx.compose.ui.graphics,androidx.compose.ui.geometry,androidx.compose.ui,androidx.compose.foundation,androidx.compose.animation,androidx.compose.runtime.saveable,androidx.compose.runtime,androidx.appcompat.resources,androidx.appcompat,androidx.fragment,androidx.emoji2.viewsintegration,androidx.emoji2,androidx.loader,androidx.activity,androidx.activity.ktx,androidx.lifecycle.viewmodel.ktx,androidx.lifecycle.ktx,androidx.lifecycle.livedata,androidx.lifecycle.process,androidx.lifecycle.livedata.core,androidx.lifecycle.viewmodel.savedstate,androidx.lifecycle.viewmodel,androidx.drawerlayout,androidx.vectordrawable.animated,androidx.vectordrawable,androidx.customview.poolingcontainer,androidx.core.ktx,androidx.viewpager,androidx.customview,androidx.autofill,androidx.core,androidx.lifecycle.runtime,androidx.savedstate.ktx,androidx.savedstate,androidx.annotation.experimental,androidx.cursoradapter,androidx.arch.core,androidx.profileinstaller,androidx.startup,androidx.tracing,androidx.versionedparcelable,androidx.interpolator, src/main/res,src/debug/res, caches/transforms-3/a157f0f77b0efdb2fda56a8398c64367/transformed/material-ripple-1.4.3/res,caches/transforms-3/2e52a2b2b1b7ca5a6f2bd7bd07a8c5b2/transformed/material-icons-core-1.4.3/res,caches/transforms-3/e589a6f222601a1892f34d13e76a511c/transformed/material-1.4.3/res,caches/transforms-3/b8410ce940f3203cdb80c56b6fe6620d/transformed/foundation-layout-1.4.3/res,caches/transforms-3/2b74692f3c96608261409ce785f1b769/transformed/animation-core-1.2.1/res,caches/transforms-3/bed197ff0573b4223bb22da1c82f7d24/transformed/ui-util-1.4.3/res,caches/transforms-3/7c217f5b1a5cb18afd8f1ab28d243df4/transformed/ui-unit-1.4.3/res,caches/transforms-3/4b1543363b8ce3e1a4805b389f555d4b/transformed/ui-text-1.4.3/res,caches/transforms-3/dc5563c45ec97fc0212fc1c04fa1c9c4/transformed/ui-graphics-1.4.3/res,caches/transforms-3/dfddf6f0e0f90b3de1b4a29454d4ebda/transformed/ui-geometry-1.4.3/res,caches/transforms-3/cc1d84fe0cac3c427c08b5f03a977f3a/transformed/ui-1.4.3/res,caches/transforms-3/5765532996f742031e40595283afe16e/transformed/foundation-1.4.3/res,caches/transforms-3/7d7207e124f4bbe20b0f8e9947039aac/transformed/animation-1.2.1/res,caches/transforms-3/592d1fe9b7fb5a53e78b95359a8acf3c/transformed/runtime-saveable-1.4.3/res,caches/transforms-3/fc894f421dd05f888dfc28959a627f28/transformed/runtime-1.4.3/res,caches/transforms-3/b65ec37bbc97251e8d685338e24e8565/transformed/appcompat-resources-1.6.1/res,caches/transforms-3/3426e56317d982307c7f1bd541c1bb3b/transformed/appcompat-1.6.1/res,caches/transforms-3/6b4747d44aed9cc32b5b9f969d2b3bb9/transformed/fragment-1.3.6/res,caches/transforms-3/46722104e293d68b45dc1a314b5dd6cf/transformed/emoji2-views-helper-1.3.0/res,caches/transforms-3/36b0e4f6b84b3fca539557e4b7645d21/transformed/emoji2-1.3.0/res,caches/transforms-3/d1c7210f5bc8d5d820472eec9a692bd2/transformed/activity-1.7.0/res,caches/transforms-3/632c1abdd2bf129375d876d8fa6360d9/transformed/activity-ktx-1.7.0/res,caches/transforms-3/0ecb5be150d2dedd58f9cb8a45bca851/transformed/lifecycle-viewmodel-ktx-2.6.1/res,caches/transforms-3/2d5fa5034c7492393bc9e868276420a1/transformed/lifecycle-runtime-ktx-2.6.1/res,caches/transforms-3/c8b99e4b4dfd4fb092fc0943d2db64e3/transformed/lifecycle-livedata-2.6.1/res,caches/transforms-3/bf79fd5f3d67cdc25e08fa327a30cefa/transformed/lifecycle-process-2.6.1/res,caches/transforms-3/ad643e17ec9b808a70b34949daaa85dd/transformed/lifecycle-livedata-core-2.6.1/res,caches/transforms-3/700829b6034d6e55d18823d22fb7719e/transformed/lifecycle-viewmodel-savedstate-2.6.1/res,caches/transforms-3/39a9c4c54782ba97ca0a16178536bc44/transformed/lifecycle-viewmodel-2.6.1/res,caches/transforms-3/f30ae580f25dade5b9a048c623bbe384/transformed/customview-poolingcontainer-1.0.0/res,caches/transforms-3/17d0263f7ff79ac2813c39c8013711c0/transformed/core-ktx-1.9.0/res,caches/transforms-3/84d9c409aee55eaefce67c266389856d/transformed/core-1.9.0/res,caches/transforms-3/2046526c99e51e283490cf9ec8865459/transformed/lifecycle-runtime-2.6.1/res,caches/transforms-3/c67e265009f821358c6f41b8659188ed/transformed/savedstate-ktx-1.2.1/res,caches/transforms-3/b86250ed7d137bbef1a6ee11b2c89ceb/transformed/savedstate-1.2.1/res,caches/transforms-3/53626b0bfa72d466bd6680f40d581ce3/transformed/annotation-experimental-1.3.0/res,caches/transforms-3/398d5bcb70720fdd51c416ec80f3d907/transformed/core-runtime-2.2.0/res,caches/transforms-3/f36d6c4c9c9b27a2aab75d7392d90252/transformed/profileinstaller-1.3.0/res,caches/transforms-3/7b61d2349bdea8daf44d8ea280f29f66/transformed/startup-runtime-1.1.1/res]
configLines[0]=app.cash.paparazzi.plugin.test
configLines[1]=intermediates/merged_res/debug
configLines[2]=33
configLines[3]=platforms/android-33/
configLines[4]=intermediates/assets/debug
configLines[5]=app.cash.paparazzi.plugin.test,androidx.compose.material.ripple,androidx.compose.material.icons,androidx.compose.material,androidx.compose.foundation.layout,androidx.compose.animation.core,androidx.compose.ui.util,androidx.compose.ui.unit,androidx.compose.ui.text,androidx.compose.ui.graphics,androidx.compose.ui.geometry,androidx.compose.ui,androidx.compose.foundation,androidx.compose.animation,androidx.compose.runtime.saveable,androidx.compose.runtime,androidx.appcompat.resources,androidx.appcompat,androidx.fragment,androidx.emoji2.viewsintegration,androidx.emoji2,androidx.loader,androidx.activity,androidx.activity.ktx,androidx.lifecycle.viewmodel.ktx,androidx.lifecycle.ktx,androidx.lifecycle.livedata,androidx.lifecycle.process,androidx.lifecycle.livedata.core,androidx.lifecycle.viewmodel.savedstate,androidx.lifecycle.viewmodel,androidx.drawerlayout,androidx.vectordrawable.animated,androidx.vectordrawable,androidx.customview.poolingcontainer,androidx.core.ktx,androidx.viewpager,androidx.customview,androidx.autofill,androidx.core,androidx.lifecycle.runtime,androidx.savedstate.ktx,androidx.savedstate,androidx.annotation.experimental,androidx.cursoradapter,androidx.arch.core,androidx.profileinstaller,androidx.startup,androidx.tracing,androidx.versionedparcelable,androidx.interpolator
configLines[6]=src/main/res,src/debug/res
configLines[7]=caches/transforms-3/a157f0f77b0efdb2fda56a8398c64367/transformed/material-ripple-1.4.3/res,caches/transforms-3/2e52a2b2b1b7ca5a6f2bd7bd07a8c5b2/transformed/material-icons-core-1.4.3/res,caches/transforms-3/e589a6f222601a1892f34d13e76a511c/transformed/material-1.4.3/res,caches/transforms-3/b8410ce940f3203cdb80c56b6fe6620d/transformed/foundation-layout-1.4.3/res,caches/transforms-3/2b74692f3c96608261409ce785f1b769/transformed/animation-core-1.2.1/res,caches/transforms-3/bed197ff0573b4223bb22da1c82f7d24/transformed/ui-util-1.4.3/res,caches/transforms-3/7c217f5b1a5cb18afd8f1ab28d243df4/transformed/ui-unit-1.4.3/res,caches/transforms-3/4b1543363b8ce3e1a4805b389f555d4b/transformed/ui-text-1.4.3/res,caches/transforms-3/dc5563c45ec97fc0212fc1c04fa1c9c4/transformed/ui-graphics-1.4.3/res,caches/transforms-3/dfddf6f0e0f90b3de1b4a29454d4ebda/transformed/ui-geometry-1.4.3/res,caches/transforms-3/cc1d84fe0cac3c427c08b5f03a977f3a/transformed/ui-1.4.3/res,caches/transforms-3/5765532996f742031e40595283afe16e/transformed/foundation-1.4.3/res,caches/transforms-3/7d7207e124f4bbe20b0f8e9947039aac/transformed/animation-1.2.1/res,caches/transforms-3/592d1fe9b7fb5a53e78b95359a8acf3c/transformed/runtime-saveable-1.4.3/res,caches/transforms-3/fc894f421dd05f888dfc28959a627f28/transformed/runtime-1.4.3/res,caches/transforms-3/b65ec37bbc97251e8d685338e24e8565/transformed/appcompat-resources-1.6.1/res,caches/transforms-3/3426e56317d982307c7f1bd541c1bb3b/transformed/appcompat-1.6.1/res,caches/transforms-3/6b4747d44aed9cc32b5b9f969d2b3bb9/transformed/fragment-1.3.6/res,caches/transforms-3/46722104e293d68b45dc1a314b5dd6cf/transformed/emoji2-views-helper-1.3.0/res,caches/transforms-3/36b0e4f6b84b3fca539557e4b7645d21/transformed/emoji2-1.3.0/res,caches/transforms-3/d1c7210f5bc8d5d820472eec9a692bd2/transformed/activity-1.7.0/res,caches/transforms-3/632c1abdd2bf129375d876d8fa6360d9/transformed/activity-ktx-1.7.0/res,caches/transforms-3/0ecb5be150d2dedd58f9cb8a45bca851/transformed/lifecycle-viewmodel-ktx-2.6.1/res,caches/transforms-3/2d5fa5034c7492393bc9e868276420a1/transformed/lifecycle-runtime-ktx-2.6.1/res,caches/transforms-3/c8b99e4b4dfd4fb092fc0943d2db64e3/transformed/lifecycle-livedata-2.6.1/res,caches/transforms-3/bf79fd5f3d67cdc25e08fa327a30cefa/transformed/lifecycle-process-2.6.1/res,caches/transforms-3/ad643e17ec9b808a70b34949daaa85dd/transformed/lifecycle-livedata-core-2.6.1/res,caches/transforms-3/700829b6034d6e55d18823d22fb7719e/transformed/lifecycle-viewmodel-savedstate-2.6.1/res,caches/transforms-3/39a9c4c54782ba97ca0a16178536bc44/transformed/lifecycle-viewmodel-2.6.1/res,caches/transforms-3/f30ae580f25dade5b9a048c623bbe384/transformed/customview-poolingcontainer-1.0.0/res,caches/transforms-3/17d0263f7ff79ac2813c39c8013711c0/transformed/core-ktx-1.9.0/res,caches/transforms-3/84d9c409aee55eaefce67c266389856d/transformed/core-1.9.0/res,caches/transforms-3/2046526c99e51e283490cf9ec8865459/transformed/lifecycle-runtime-2.6.1/res,caches/transforms-3/c67e265009f821358c6f41b8659188ed/transformed/savedstate-ktx-1.2.1/res,caches/transforms-3/b86250ed7d137bbef1a6ee11b2c89ceb/transformed/savedstate-1.2.1/res,caches/transforms-3/53626b0bfa72d466bd6680f40d581ce3/transformed/annotation-experimental-1.3.0/res,caches/transforms-3/398d5bcb70720fdd51c416ec80f3d907/transformed/core-runtime-2.2.0/res,caches/transforms-3/f36d6c4c9c9b27a2aab75d7392d90252/transformed/profileinstaller-1.3.0/res,caches/transforms-3/7b61d2349bdea8daf44d8ea280f29f66/transformed/startup-runtime-1.1.1/res
appTestDir: P:\projects\contrib\github-paparazzi\paparazzi\paparazzi-gradle-plugin\src\test\projects\compose-a11y\build
artifactsCacheDir: D:\.gradle-test-kit
androidHome: Z:\tools\sdk\android
Environment(platformDir=Z:\tools\sdk\android\platforms\android-33, appTestDir=P:\projects\contrib\github-paparazzi\paparazzi\paparazzi-gradle-plugin\src\test\projects\compose-a11y\build, resDir=P:\projects\contrib\github-paparazzi\paparazzi\paparazzi-gradle-plugin\src\test\projects\compose-a11y\build\intermediates\merged_res\debug, assetsDir=P:\projects\contrib\github-paparazzi\paparazzi\paparazzi-gradle-plugin\src\test\projects\compose-a11y\build\intermediates\assets\debug, packageName=app.cash.paparazzi.plugin.test, compileSdkVersion=33, resourcePackageNames=[app.cash.paparazzi.plugin.test, androidx.compose.material.ripple, androidx.compose.material.icons, androidx.compose.material, androidx.compose.foundation.layout, androidx.compose.animation.core, androidx.compose.ui.util, androidx.compose.ui.unit, androidx.compose.ui.text, androidx.compose.ui.graphics, androidx.compose.ui.geometry, androidx.compose.ui, androidx.compose.foundation, androidx.compose.animation, androidx.compose.runtime.saveable, androidx.compose.runtime, androidx.appcompat.resources, androidx.appcompat, androidx.fragment, androidx.emoji2.viewsintegration, androidx.emoji2, androidx.loader, androidx.activity, androidx.activity.ktx, androidx.lifecycle.viewmodel.ktx, androidx.lifecycle.ktx, androidx.lifecycle.livedata, androidx.lifecycle.process, androidx.lifecycle.livedata.core, androidx.lifecycle.viewmodel.savedstate, androidx.lifecycle.viewmodel, androidx.drawerlayout, androidx.vectordrawable.animated, androidx.vectordrawable, androidx.customview.poolingcontainer, androidx.core.ktx, androidx.viewpager, androidx.customview, androidx.autofill, androidx.core, androidx.lifecycle.runtime, androidx.savedstate.ktx, androidx.savedstate, androidx.annotation.experimental, androidx.cursoradapter, androidx.arch.core, androidx.profileinstaller, androidx.startup, androidx.tracing, androidx.versionedparcelable, androidx.interpolator], localResourceDirs=[src/main/res, src/debug/res], libraryResourceDirs=[D:\.gradle-test-kit\caches\transforms-3\a157f0f77b0efdb2fda56a8398c64367\transformed\material-ripple-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\2e52a2b2b1b7ca5a6f2bd7bd07a8c5b2\transformed\material-icons-core-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\e589a6f222601a1892f34d13e76a511c\transformed\material-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\b8410ce940f3203cdb80c56b6fe6620d\transformed\foundation-layout-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\2b74692f3c96608261409ce785f1b769\transformed\animation-core-1.2.1\res, D:\.gradle-test-kit\caches\transforms-3\bed197ff0573b4223bb22da1c82f7d24\transformed\ui-util-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\7c217f5b1a5cb18afd8f1ab28d243df4\transformed\ui-unit-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\4b1543363b8ce3e1a4805b389f555d4b\transformed\ui-text-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\dc5563c45ec97fc0212fc1c04fa1c9c4\transformed\ui-graphics-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\dfddf6f0e0f90b3de1b4a29454d4ebda\transformed\ui-geometry-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\cc1d84fe0cac3c427c08b5f03a977f3a\transformed\ui-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\5765532996f742031e40595283afe16e\transformed\foundation-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\7d7207e124f4bbe20b0f8e9947039aac\transformed\animation-1.2.1\res, D:\.gradle-test-kit\caches\transforms-3\592d1fe9b7fb5a53e78b95359a8acf3c\transformed\runtime-saveable-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\fc894f421dd05f888dfc28959a627f28\transformed\runtime-1.4.3\res, D:\.gradle-test-kit\caches\transforms-3\b65ec37bbc97251e8d685338e24e8565\transformed\appcompat-resources-1.6.1\res, D:\.gradle-test-kit\caches\transforms-3\3426e56317d982307c7f1bd541c1bb3b\transformed\appcompat-1.6.1\res, D:\.gradle-test-kit\caches\transforms-3\6b4747d44aed9cc32b5b9f969d2b3bb9\transformed\fragment-1.3.6\res, D:\.gradle-test-kit\caches\transforms-3\46722104e293d68b45dc1a314b5dd6cf\transformed\emoji2-views-helper-1.3.0\res, D:\.gradle-test-kit\caches\transforms-3\36b0e4f6b84b3fca539557e4b7645d21\transformed\emoji2-1.3.0\res, D:\.gradle-test-kit\caches\transforms-3\d1c7210f5bc8d5d820472eec9a692bd2\transformed\activity-1.7.0\res, D:\.gradle-test-kit\caches\transforms-3\632c1abdd2bf129375d876d8fa6360d9\transformed\activity-ktx-1.7.0\res, D:\.gradle-test-kit\caches\transforms-3\0ecb5be150d2dedd58f9cb8a45bca851\transformed\lifecycle-viewmodel-ktx-2.6.1\res, D:\.gradle-test-kit\caches\transforms-3\2d5fa5034c7492393bc9e868276420a1\transformed\lifecycle-runtime-ktx-2.6.1\res, D:\.gradle-test-kit\caches\transforms-3\c8b99e4b4dfd4fb092fc0943d2db64e3\transformed\lifecycle-livedata-2.6.1\res, D:\.gradle-test-kit\caches\transforms-3\bf79fd5f3d67cdc25e08fa327a30cefa\transformed\lifecycle-process-2.6.1\res, D:\.gradle-test-kit\caches\transforms-3\ad643e17ec9b808a70b34949daaa85dd\transformed\lifecycle-livedata-core-2.6.1\res, D:\.gradle-test-kit\caches\transforms-3\700829b6034d6e55d18823d22fb7719e\transformed\lifecycle-viewmodel-savedstate-2.6.1\res, D:\.gradle-test-kit\caches\transforms-3\39a9c4c54782ba97ca0a16178536bc44\transformed\lifecycle-viewmodel-2.6.1\res, D:\.gradle-test-kit\caches\transforms-3\f30ae580f25dade5b9a048c623bbe384\transformed\customview-poolingcontainer-1.0.0\res, D:\.gradle-test-kit\caches\transforms-3\17d0263f7ff79ac2813c39c8013711c0\transformed\core-ktx-1.9.0\res, D:\.gradle-test-kit\caches\transforms-3\84d9c409aee55eaefce67c266389856d\transformed\core-1.9.0\res, D:\.gradle-test-kit\caches\transforms-3\2046526c99e51e283490cf9ec8865459\transformed\lifecycle-runtime-2.6.1\res, D:\.gradle-test-kit\caches\transforms-3\c67e265009f821358c6f41b8659188ed\transformed\savedstate-ktx-1.2.1\res, D:\.gradle-test-kit\caches\transforms-3\b86250ed7d137bbef1a6ee11b2c89ceb\transformed\savedstate-1.2.1\res, D:\.gradle-test-kit\caches\transforms-3\53626b0bfa72d466bd6680f40d581ce3\transformed\annotation-experimental-1.3.0\res, D:\.gradle-test-kit\caches\transforms-3\398d5bcb70720fdd51c416ec80f3d907\transformed\core-runtime-2.2.0\res, D:\.gradle-test-kit\caches\transforms-3\f36d6c4c9c9b27a2aab75d7392d90252\transformed\profileinstaller-1.3.0\res, D:\.gradle-test-kit\caches\transforms-3\7b61d2349bdea8daf44d8ea280f29f66\transformed\startup-runtime-1.1.1\res])
to me this means that it's not just the GRADLE_USER_HOME (testkitdir) being relocated, the assumption that all the exploded res are in that folder is failing in some way.
@jrodbx while writing steps @JavierSegoviaCordoba how to debug this, I managed to reproduce it!
Based on the last step above, we can have non-transformed exploded AARs from other modules:
Which means we can't relativize everything in libraryResourceDirs
against gradleUserHomeDirectory
.
can you try 1.3.1-SNAPSHOT and see if this is fixed?
It does not reproduce with 1.3.1-SNAPSHOT
from
maven("https://oss.sonatype.org/content/repositories/snapshots/")
because libraryResourceDirs
got split up in #930 and #942
it.write(moduleResourceDirs.joinFiles(projectDirectory)) // contains packaged_res folders
it.write(aarExplodedDirs.joinFiles(gradleUserHomeDirectory)) // contains transforms-3 folders
@jrodbx I was curious why #792 (part of 1.3.0) wasn't exhibiting this, and it's probably because there's no submodules in CI. I wonder if it would worth applying something like this:
// :paparazz-gradle-plugin
tasks.withType(Test).configureEach {
dependsOn(':paparazzi:publishMavenPublicationToProjectLocalMavenRepository')
dependsOn(':paparazzi-agent:publishMavenPublicationToProjectLocalMavenRepository')
if (isCI) {
systemProperty("org.gradle.testkit.dir", new File(System.getProperty("java.io.tmpdir"), ".gradle-test-kit-paparazzi"))
}
}
with the assumption that java.io.tmpdir
will be at C:\Users\runner\...\Temp
, therefore forcing project (D:\a\repo\repo) and "GRADLE_USER_HOME" be on separate drives (roots) for tests too, not just the project build.
can you try 1.3.1-SNAPSHOT and see if this is fixed?
It does not reproduce with
1.3.1-SNAPSHOT
..
Awesome, closing as fixed.
@jrodbx I was curious why https://github.com/cashapp/paparazzi/pull/792 (part of 1.3.0) wasn't exhibiting this
Because test projects hadn't been using external aars with resources in them, but that's since been fixed.
Description I am getting this crash when the task
preparePaparazziDebugResources
is executed on Windows OSAdditional information: