Skip to content

Commit 0ea0247

Browse files
authored
Sort collector function calls in actual map builders (#5446)
Fixes reproducible builds: https://youtrack.jetbrains.com/issue/CMP-8933 ## Release Notes ### Fixes - Resources - Fixed resources generated code to be reproducible between different machines.
1 parent 773762c commit 0ea0247

File tree

7 files changed

+549
-6
lines changed

7 files changed

+549
-6
lines changed

gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResourceCollectorsTask.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ internal abstract class GenerateActualResourceCollectorsTask : IdeaImportTask()
8181
val funNames = inputFiles.mapNotNull { inputFile ->
8282
if (inputFile.nameWithoutExtension.contains('.')) {
8383
val (fileName, suffix) = inputFile.nameWithoutExtension.split('.')
84-
val type = ResourceType.values().firstOrNull { fileName.startsWith(it.accessorName, true) }
84+
val type = ResourceType.entries.firstOrNull { fileName.startsWith(it.accessorName, true) }
8585
val name = "_collect${suffix.uppercaseFirstChar()}${fileName}Resources"
8686

8787
if (type == null) {
@@ -98,7 +98,9 @@ internal abstract class GenerateActualResourceCollectorsTask : IdeaImportTask()
9898
logger.warn("Unknown file name: `$inputFile`")
9999
null
100100
}
101-
}.groupBy({ it.first }, { it.second })
101+
}
102+
.groupBy({ it.first }, { it.second })
103+
.mapValues { (_, values) -> values.sorted() }
102104

103105
val pkgName = packageName.get()
104106
val resClassName = resClassName.get()

gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,6 +647,10 @@ class ResourcesTest : GradlePluginTestBase() {
647647
assertEqualTextFiles(file("$buildPath/String0.commonMain.kt"), file("expected/String0.commonMain.kt"))
648648
assertEqualTextFiles(file("$buildPath/String100.commonMain.kt"), file("expected/String100.commonMain.kt"))
649649
}
650+
gradle(":generateActualResourceCollectorsForDesktopMain").checks {
651+
val desktopPath = "build/generated/compose/resourceGenerator/kotlin/desktopMainResourceCollectors/app/group/huge/generated/resources"
652+
assertEqualTextFiles(file("$desktopPath/ActualResourceCollectors.kt"), file("expected/ActualResourceCollectors.kt"))
653+
}
650654
}
651655

652656
private fun assertDirectoriesContentEquals(actual: File, expected: File) {

gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceCollectors/my/lib/res/ActualResourceCollectors.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ public actual val MyRes.allDrawableResources: Map<String, DrawableResource> by l
1919

2020
public actual val MyRes.allStringResources: Map<String, StringResource> by lazy {
2121
val map = mutableMapOf<String, StringResource>()
22-
_collectDesktopMainString0Resources(map)
2322
_collectCommonMainString0Resources(map)
23+
_collectDesktopMainString0Resources(map)
2424
return@lazy map
2525
}
2626

gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash-windows/desktopMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ internal actual val Res.allDrawableResources: Map<String, DrawableResource> by l
1919

2020
internal actual val Res.allStringResources: Map<String, StringResource> by lazy {
2121
val map = mutableMapOf<String, StringResource>()
22-
_collectDesktopMainString0Resources(map)
2322
_collectCommonMainString0Resources(map)
23+
_collectDesktopMainString0Resources(map)
2424
return@lazy map
2525
}
2626

gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/desktopMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ internal actual val Res.allDrawableResources: Map<String, DrawableResource> by l
1919

2020
internal actual val Res.allStringResources: Map<String, StringResource> by lazy {
2121
val map = mutableMapOf<String, StringResource>()
22-
_collectDesktopMainString0Resources(map)
2322
_collectCommonMainString0Resources(map)
23+
_collectDesktopMainString0Resources(map)
2424
return@lazy map
2525
}
2626

gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ internal actual val Res.allDrawableResources: Map<String, DrawableResource> by l
1919

2020
internal actual val Res.allStringResources: Map<String, StringResource> by lazy {
2121
val map = mutableMapOf<String, StringResource>()
22-
_collectDesktopMainString0Resources(map)
2322
_collectCommonMainString0Resources(map)
23+
_collectDesktopMainString0Resources(map)
2424
return@lazy map
2525
}
2626

0 commit comments

Comments
 (0)