Skip to content

Releases: bjoernmayer/gradle-project-dependents

1.2.0

12 Mar 12:57
1b829bb

Choose a tag to compare

What's Changed

  • Rename "plugin" module to match gradle plugin id by @bjoernmayer in #7

Full Changelog: 1.1.0...1.2.0

1.1.0

11 Mar 14:00
6bf46d4

Choose a tag to compare

What's Changed

Full Changelog: 1.0.0...1.1.0

1.0.0

07 Jan 11:34
803577b

Choose a tag to compare

Release Notes - v1.0.0

We're excited to announce v1.0.0 of the Gradle Project Dependents Plugin! This major release brings significant improvements to performance, compatibility, and functionality.

✨ New Features

Multiple Output Formats

The plugin now supports four different output formats for the dependency graph:

Format Description Output File
STDOUT Tree format printed to console Console output (default)
YAML YAML representation of the graph build/projectDependents/graph.yaml
JSON JSON representation of the graph build/projectDependents/graph.json
MERMAID Mermaid flowchart in Markdown build/projectDependents/graph.md
import io.github.bjoernmayer.gradleProjectDependents.OutputFormat

projectDependents {
    outputFormats.set(setOf(OutputFormat.STDOUT, OutputFormat.JSON, OutputFormat.MERMAID))
}

Depth Limiting

New depth option allows you to limit how deep the dependency tree is traversed:

projectDependents {
    depth.set(1)  // Show only direct dependents
}

Example Project

Added a complete example project demonstrating plugin usage in a multi-module setup.

🚀 Performance Improvements

Lazy Configuration

  • Moved heavy dependency graph initialization from configuration phase to execution time
  • The dependency graph is now only built when the task actually executes, significantly improving Gradle invocation times for builds that don't run the dependents task

Proper Task Tracking

  • Replaced upToDateWhen { false } with the proper @UntrackedTask annotation
  • Added documentation explaining why the task cannot be cached

🔧 Technical Improvements

Gradle Configuration Cache Compatibility

  • Modernized the extension to use Gradle's lazy property types (Property<Boolean>, SetProperty<String>) instead of plain Kotlin vars
  • Full compatibility with Gradle's configuration cache

Code Quality

  • Added comprehensive unit tests for ProjectDependents and Configuration classes
  • Added unit tests for DependentsGraph conversion
  • Added functional tests for all features including depth option
  • Refactored all printers to use a shared DependentsGraph model
  • Removed duplicate cycle detection logic from individual printers
  • Cleaned up comparator syntax and overall code structure
  • Added missing task description

📦 Build Configuration Changes

  • Added Kotlin Serialization plugin
  • Added kotlinx-serialization-json dependency
  • Updated org.gradle.toolchains.foojay-resolver-convention to 1.0.0

📖 Documentation

  • Updated README with comprehensive documentation for all new features
  • Added examples for each output format

⬆️ Upgrade Guide

This release uses lazy properties for configuration. Update your configuration from:

// Old (pre-1.0.0)
projectDependents {
    generateYamlGraph = true
    excludedConfigurations = mutableSetOf("testImplementation")
}

To:

// New (1.0.0+)
import io.github.bjoernmayer.gradleProjectDependents.OutputFormat

projectDependents {
    outputFormats.set(setOf(OutputFormat.STDOUT, OutputFormat.YAML))
    excludedConfigurations.add("testImplementation")
}

Full Changelog: 0.3.3...1.0.0

0.3.3

27 Jan 11:18
1d294ef

Choose a tag to compare

Fix outputs getting mixed when executing the task for multiple projects

Full Changelog: 0.3.2...0.3.3

0.3.2

23 Jan 12:56
b852077

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.3.1...0.3.2

0.3.1

15 Nov 15:35
a06096c

Choose a tag to compare

  • Work around gradle, that cannot serialize a value class

Full Changelog: 0.3.0...0.3.1

0.3.0

15 Nov 15:16
01f58ec

Choose a tag to compare

  • Update Gradle to 8.11
  • Sort dependents and configurations
  • Add yaml report

Full Changelog: 0.2.1...0.3.0

0.2.1

15 Nov 08:33
4767b3b

Choose a tag to compare

  • Fix printing logic of already shown connections
  • Fix closing folder icon

Full Changelog: 0.2.0...0.2.1

0.2.0

15 Nov 08:02
f2c7440

Choose a tag to compare

  • Add plugin configuration to exclude configurations from printed graph

Full Changelog: 0.1.0...0.2.0

0.1.0

12 Nov 16:22
6ff287f

Choose a tag to compare