File tree Expand file tree Collapse file tree 1 file changed +27
-12
lines changed
buildSrc/src/main/java/com/google/firebase/gradle/plugins Expand file tree Collapse file tree 1 file changed +27
-12
lines changed Original file line number Diff line number Diff line change @@ -29,24 +29,39 @@ abstract class CheckHeadDependencies : DefaultTask() {
29
29
@TaskAction
30
30
fun run () {
31
31
val projectsReleasing: Set <String > = projectsToPublish.get().map { it.artifactId.get() }.toSet()
32
- val projectsToRelease =
32
+ val errors =
33
33
projectsToPublish
34
34
.get()
35
- .flatMap {
36
- it.project.configurations
37
- .getByName(it.runtimeClasspath)
38
- .allDependencies
39
- .filter { it is ProjectDependency }
40
- .map { it.name }
41
- .toSet( )
35
+ .associate {
36
+ it.artifactId.get() to
37
+ it
38
+ .projectDependenciesByName()
39
+ .intersect(allFirebaseProjects.get())
40
+ .subtract(projectsReleasing)
41
+ .subtract( DEPENDENCIES_TO_IGNORE )
42
42
}
43
- .intersect(allFirebaseProjects.get())
44
- .subtract(projectsReleasing)
43
+ .filterValues { it.isNotEmpty() }
44
+ .map { " ${it.key} requires: ${it.value.joinToString( " , " ) } " }
45
45
46
- if (projectsToRelease .isNotEmpty()) {
46
+ if (errors .isNotEmpty()) {
47
47
throw GradleException (
48
- " Following Sdks have to release as well. Please update the release config.\n ${projectsToRelease.joinToString(" \n " )} "
48
+ " Project-level dependency errors found. Please update the release config.\n ${
49
+ errors.joinToString(
50
+ " \n "
51
+ )
52
+ } "
49
53
)
50
54
}
51
55
}
56
+
57
+ fun FirebaseLibraryExtension.projectDependenciesByName (): List <String > =
58
+ project.configurations
59
+ .getByName(runtimeClasspath)
60
+ .allDependencies
61
+ .filter { it is ProjectDependency }
62
+ .map { it.name }
63
+
64
+ companion object {
65
+ val DEPENDENCIES_TO_IGNORE : List <String > = listOf (" protolite-well-known-types" )
66
+ }
52
67
}
You can’t perform that action at this time.
0 commit comments