Releases: bjoernmayer/gradle-project-dependents
1.2.0
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
What's Changed
- chore: update Gradle wrapper to 9.4.0 and AssertJ to 3.27.7 by @bjoernmayer in #2
- Version catalog by @bjoernmayer in #3
- Add Github Action for Gradle Check by @bjoernmayer in #4
- Bellsoft Liberica JVM by @bjoernmayer in #6
- chore: update Kotlin and library versions by @bjoernmayer in #5
Full Changelog: 1.0.0...1.1.0
1.0.0
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
dependentstask
Proper Task Tracking
- Replaced
upToDateWhen { false }with the proper@UntrackedTaskannotation - 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
ProjectDependentsandConfigurationclasses - Added unit tests for
DependentsGraphconversion - Added functional tests for all features including depth option
- Refactored all printers to use a shared
DependentsGraphmodel - 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-jsondependency - Updated
org.gradle.toolchains.foojay-resolver-conventionto 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
Fix outputs getting mixed when executing the task for multiple projects
Full Changelog: 0.3.2...0.3.3
0.3.2
What's Changed
- Make sure that task runs always by @bjoernmayer in #1
New Contributors
- @bjoernmayer made their first contribution in #1
Full Changelog: 0.3.1...0.3.2
0.3.1
- Work around gradle, that cannot serialize a value class
Full Changelog: 0.3.0...0.3.1
0.3.0
- Update Gradle to 8.11
- Sort dependents and configurations
- Add yaml report
Full Changelog: 0.2.1...0.3.0
0.2.1
- Fix printing logic of already shown connections
- Fix closing folder icon
Full Changelog: 0.2.0...0.2.1
0.2.0
- Add plugin configuration to exclude configurations from printed graph
Full Changelog: 0.1.0...0.2.0