ben-manes / gradle-versions-plugin

Gradle plugin to discover dependency updates
Apache License 2.0
3.86k stars 199 forks source link

Enhancing the Report #771

Open nagkumar opened 1 year ago

nagkumar commented 1 year ago

Currently, it does give the report like this, but it would be nice to further enhance how many subprojects it has scanned, related to each subproject, what are the upgrades needed along with this summary that it gives currently.


------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------

The following dependencies are using the latest milestone version:
 - com.diffplug.spotless:com.diffplug.spotless.gradle.plugin:6.18.0
 - com.github.ben-manes.versions:com.github.ben-manes.versions.gradle.plugin:0.46.0
 - com.google.code.gson:gson:2.10.1
 - com.jcraft:jsch:0.1.55
 - com.puppycrawl.tools:checkstyle:9.3
 - io.codenotary:immudb4j:1.0.0
 - io.nats:jnats:2.16.10
 - junit:junit:4.13.2
 - org.apache.curator:curator-framework:5.4.0
 - org.apache.httpcomponents:httpclient:4.5.14
 - org.apache.kafka:kafka-clients:3.4.0
 - org.assertj:assertj-core:3.24.2
 - org.immutables:value:2.9.3
 - org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.20
 - org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.8.20
 - org.json:json:20230227
 - org.postgresql:postgresql:42.6.0
 - org.projectlombok:lombok:1.18.26
 - org.testcontainers:junit-jupiter:unspecified
 - org.testcontainers:kafka:unspecified
 - org.testcontainers:neo4j:unspecified
 - org.testcontainers:postgresql:unspecified
 - org.testcontainers:selenium:unspecified
 - org.testcontainers:solr:unspecified
 - org.testcontainers:testcontainers:unspecified
 - se.patrikerdes.use-latest-versions:se.patrikerdes.use-latest-versions.gradle.plugin:0.2.18

The following dependencies have later milestone versions:
 - ch.qos.logback:logback-classic [1.3.5 -> 1.4.7]
     http://logback.qos.ch
 - com.google.guava:guava [30.1.1-android -> 31.1-jre]
     https://github.com/google/guava
 - com.hazelcast:hazelcast [5.2.3 -> 5.3.0-BETA-2]
     http://www.hazelcast.com/
 - com.squareup.okhttp3:okhttp [4.10.0 -> 5.0.0-alpha.11]
     https://square.github.io/okhttp/
 - io.cucumber:cucumber-java [7.11.1 -> 7.11.2]
     https://cucumber.io/
 - io.cucumber:cucumber-junit [7.11.1 -> 7.11.2]
     https://cucumber.io/
 - org.apache.solr:solr-solrj [8.11.2 -> 9.2.0]
     https://solr.apache.org/
 - org.jetbrains.kotlin:kotlin-allopen [1.8.20 -> 1.8.21]
     https://kotlinlang.org/
 - org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable [1.8.20 -> 1.8.21]
     https://kotlinlang.org/
 - org.jetbrains.kotlin:kotlin-stdlib-jdk8 [1.8.20 -> 1.8.21]
     https://kotlinlang.org/
 - org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin [1.8.10 -> 1.8.21]
     https://kotlinlang.org/
 - org.jetbrains.kotlin.plugin.spring:org.jetbrains.kotlin.plugin.spring.gradle.plugin [1.8.20 -> 1.8.21]
     https://kotlinlang.org/
 - org.junit.jupiter:junit-jupiter [5.9.2 -> 5.9.3]
     https://junit.org/junit5/
 - org.neo4j.driver:neo4j-java-driver [4.4.11 -> 5.7.0]
     https://github.com/neo4j/neo4j-java-driver
 - org.postgresql:postgresql [42.3.8 -> 42.6.0]
     https://jdbc.postgresql.org
 - org.seleniumhq.selenium:selenium-chrome-driver [4.1.4 -> 4.9.0]
     https://selenium.dev/
 - org.seleniumhq.selenium:selenium-firefox-driver [4.1.4 -> 4.9.0]
     https://selenium.dev/
 - org.seleniumhq.selenium:selenium-remote-driver [4.6.0 -> 4.9.0]
     https://selenium.dev/
 - org.slf4j:slf4j-api [1.7.36 -> 2.0.7]
     http://www.slf4j.org
 - org.springframework.boot:org.springframework.boot.gradle.plugin [2.7.10 -> 3.0.6]
     https://spring.io/projects/spring-boot
 - org.springframework.boot:spring-boot-starter [2.7.10 -> 3.0.6]
     https://spring.io/projects/spring-boot
 - org.springframework.boot:spring-boot-starter-data-jpa [2.7.10 -> 3.0.6]
     https://spring.io/projects/spring-boot
 - org.springframework.boot:spring-boot-starter-data-redis [2.7.10 -> 3.0.6]
     https://spring.io/projects/spring-boot
 - org.springframework.boot:spring-boot-starter-test [2.7.10 -> 3.0.6]
     https://spring.io/projects/spring-boot
 - org.springframework.boot:spring-boot-starter-web [2.7.10 -> 3.0.6]
     https://spring.io/projects/spring-boot
 - org.testng:testng [7.5 -> 7.7.1]
     https://testng.org
 - redis.clients:jedis [4.3.2 -> 5.0.0-alpha1]
     https://github.com/redis/jedis

Gradle release-candidate updates:
 - Gradle: [8.0.2 -> 8.1.1]
ben-manes commented 1 year ago

When you apply this plugin to a project it will aggregate itself and the child projects into a report. This generally means you apply it to the root project, the : in the title above. If you apply it to subprojects then you will also see reports like :app, :library, :a:b:c. As most multi-project builds use only 2-level trees, you would get the individual subproject reports scoped to just themselves and an aggregate.

This typically isn't desirable because managing dependencies that diverge across subprojects is annoying. Instead maintaining a centralized manifest, like a bom or version catalog, lets you update a single location and have consistent versions.