Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/.java-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
17
20 changes: 13 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,8 @@ on: [push, pull_request, merge_group]

jobs:
build:
name: JDK ${{ matrix.java_version }}
runs-on: ubuntu-latest

strategy:
matrix:
java_version: [11]

steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -19,13 +14,24 @@ jobs:
uses: gradle/actions/wrapper-validation@v4

- name: Setup gradle
uses: gradle/gradle-build-action@v3
uses: gradle/actions/setup-gradle@v4

- name: Install JDK ${{ matrix.java_version }}
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: ${{ matrix.java_version }}
java-version-file: .github/workflows/.java-version

- name: Install Graphviz
run: sudo apt-get update && sudo apt-get install -y graphviz

- name: Build with Gradle
run: ./gradlew build --stacktrace

- name: Upload reports
uses: actions/upload-artifact@v4
if: always()
with:
name: check-reports
path: "./build/reports"
if-no-files-found: warn
4 changes: 2 additions & 2 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
java-version-file: .github/workflows/.java-version

- name: Setup gradle
uses: gradle/gradle-build-action@v3
uses: gradle/actions/setup-gradle@v4

- name: Publish release
run: ./gradlew publishAllPublicationsToMavenCentralRepository
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish-snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
java-version-file: .github/workflows/.java-version

- name: Setup gradle
uses: gradle/gradle-build-action@v3
uses: gradle/actions/setup-gradle@v4

- name: Retrieve version
run: |
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.gradle/
.kotlin/
build/
out/

Expand Down
7 changes: 4 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ validatePlugins {
codeQualityTools {
ktlint {
toolVersion = "0.47.1"
enabled = false
}
detekt {
enabled = false
Expand Down Expand Up @@ -67,7 +68,7 @@ dependencies {
api "guru.nidi:graphviz-java:0.18.1"

testImplementation 'junit:junit:4.13.2'
testImplementation "com.android.tools.build:gradle:7.3.1"
testImplementation "com.android.tools.build:gradle:8.10.0"
testImplementation "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion"

// https://github.com/gradle/gradle/issues/16774#issuecomment-893493869
Expand All @@ -79,10 +80,10 @@ dependencies {
testRuntimeOnly(files(toolingApiBuildersJar))
}

sourceCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17

wrapper {
gradleVersion = '7.6.4'
gradleVersion = '8.14'
distributionType = Wrapper.DistributionType.ALL
}

Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 2 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
37 changes: 22 additions & 15 deletions gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 14 additions & 12 deletions gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ sealed interface DependencyContainer {
internal operator fun invoke(dependency: GradleResolvedDependency) = ResolvedDependency(dependency)
}

data class Project internal constructor(
data class Project(
internal val project: GradleProject,
) : DependencyContainer, GradleProject by project

data class ResolvedDependency internal constructor(
data class ResolvedDependency(
internal val resolvedDependency: GradleResolvedDependency,
) : DependencyContainer, GradleResolvedDependency by resolvedDependency
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ open class DependencyGraphGeneratorPlugin : Plugin<Project> {
it.generator = generator
it.group = "reporting"
it.description = "Generates a dependency graph${generator.name.nonEmptyPrepend(" for ")}"
it.outputDirectory = File(project.buildDir, "reports/dependency-graph/")
it.outputDirectory = File(project.buildDirectory, "reports/dependency-graph/")
}
}

Expand All @@ -22,7 +22,7 @@ open class DependencyGraphGeneratorPlugin : Plugin<Project> {
it.projectGenerator = projectGenerator
it.group = "reporting"
it.description = "Generates a project dependency graph${projectGenerator.name.nonEmptyPrepend(" for ")}"
it.outputDirectory = File(project.buildDir, "reports/project-dependency-graph/")
it.outputDirectory = File(project.buildDirectory, "reports/project-dependency-graph/")
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ internal class ProjectDependencyGraphGenerator(
.flatMap { configuration ->
configuration.dependencies
.withType(ProjectDependency::class.java)
.map { ProjectDependencyContainer(project, it.dependencyProject, configuration) }
.map { ProjectDependencyContainer(project, project.project(it.path), configuration) }
}
.forEach {
dependencies.add(it)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.vanniktech.dependency.graph.generator.ProjectTarget.MULTIPLATFORM
import org.gradle.api.Project
import org.gradle.api.artifacts.Configuration
import org.gradle.api.artifacts.ProjectDependency
import java.io.File

internal fun String.nonEmptyPrepend(prepend: String) =
if (isNotEmpty()) prepend + this else this
Expand Down Expand Up @@ -34,3 +35,6 @@ internal fun Project.target(): ProjectTarget {
}

internal fun Configuration.isImplementation() = name.lowercase().endsWith("implementation")

internal val Project.buildDirectory: File
get() = layout.buildDirectory.asFile.get()
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class DependencyGraphGeneratorPluginTest {
assertEquals(true, task.generator === Generator.ALL)
assertEquals("reporting", task.group)
assertEquals("Generates a dependency graph", task.description)
assertEquals(File(singleProject.buildDir, "reports/dependency-graph/").toString(), task.outputDirectory.toString())
assertEquals(File(singleProject.buildDirectory, "reports/dependency-graph/").toString(), task.outputDirectory.toString())
}

@Test fun taskPropertiesProject() {
Expand All @@ -51,11 +51,11 @@ class DependencyGraphGeneratorPluginTest {
assertEquals(true, task.projectGenerator === ProjectGenerator.ALL)
assertEquals("reporting", task.group)
assertEquals("Generates a project dependency graph", task.description)
assertEquals(File(singleProject.buildDir, "reports/project-dependency-graph/").toString(), task.outputDirectory.toString())
assertEquals(File(singleProject.buildDirectory, "reports/project-dependency-graph/").toString(), task.outputDirectory.toString())
}

@Test fun integrationTestGradle742() {
integrationTest("7.4.2")
@Test fun integrationTestGradle814() {
integrationTest("8.14")
}

@Suppress("Detekt.LongMethod") private fun integrationTest(gradleVersion: String) {
Expand Down Expand Up @@ -280,7 +280,7 @@ class DependencyGraphGeneratorPluginTest {

val result = GradleRunner.create().withDebug(true)
.withPluginClasspath()
.withGradleVersion("7.4.2")
.withGradleVersion("8.14")
.withProjectDir(testProjectDir.root)
.withArguments("generateDependencyGraph", "generateProjectDependencyGraph", "app:generateProjectDependencyGraph", "-Dorg.gradle.jvmargs=-Xmx2048m", "--stacktrace")
.build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,10 @@ class DependencyGraphGeneratorTest {

androidProjectExtension = androidProject.extensions.getByType(AppExtension::class.java)
androidProjectExtension.compileSdkVersion(27)
androidProjectExtension.namespace = "com.foo.bar"
val manifestFile = File(androidProject.projectDir, "src/main/AndroidManifest.xml")
manifestFile.parentFile.mkdirs()
manifestFile.writeText("""<manifest package="com.foo.bar"/>""")
manifestFile.writeText("""<manifest/>""")
}

@Test fun singleProjectAllNoTestDependencies() {
Expand Down