Skip to content

Migrate to Gradle version catalogs for configuration cache compatibility#115

Merged
fglock merged 1 commit intomasterfrom
feature/gradle-version-catalog-migration
Jan 2, 2026
Merged

Migrate to Gradle version catalogs for configuration cache compatibility#115
fglock merged 1 commit intomasterfrom
feature/gradle-version-catalog-migration

Conversation

@fglock
Copy link
Copy Markdown
Owner

@fglock fglock commented Jan 2, 2026

Summary

This PR migrates the project from the old dependency update plugins to Gradle Version Catalogs, which are fully compatible with Gradle's configuration cache.

Changes

  • Removed incompatible plugins: and
  • Added configuration cache compatible plugin:
  • Created version catalog: for centralized dependency management
  • Updated build.gradle: All dependencies now use version catalog references (e.g., libs.asm, libs.junit.jupiter.api)
  • Updated Configure.pl: Changed from useLatestVersions to versionCatalogUpdate command
  • Updated .gitignore: Allow tracking of libs.versions.toml
  • Moved documentation: DEPENDENCY_UPDATES.mddev/design/DEPENDENCY_UPDATES.md with updated instructions

Benefits

Configuration cache fully enabled - No need to disable features or use --no-configuration-cache flag
Cleaner dependency management - All versions centralized in one TOML file
Type-safe references - IDE autocomplete for dependencies
Modern best practice - Gradle's recommended approach for dependency management
Easier updates - Simple command: ./gradlew versionCatalogUpdate

Testing

  • ✅ Build successful with configuration cache enabled
  • ✅ All tests pass
  • ✅ Version catalog update task works correctly
  • Configure.pl --upgrade works with new command

Usage

# Check and update dependencies
./gradlew versionCatalogUpdate

# Interactive mode
./gradlew versionCatalogUpdate --interactive

# Format version catalog
./gradlew versionCatalogFormat

See dev/design/DEPENDENCY_UPDATES.md for complete documentation.

- Replace ben-manes.versions and use-latest-versions plugins with nl.littlerobots.version-catalog-update
- Create gradle/libs.versions.toml for centralized dependency management
- Update build.gradle to use version catalog references (libs.*)
- Update Configure.pl to use versionCatalogUpdate command
- Update .gitignore to track libs.versions.toml
- Move DEPENDENCY_UPDATES.md to dev/design/ with updated documentation

Benefits:
- Full configuration cache compatibility (no need to disable features)
- Cleaner, more maintainable dependency management
- Type-safe dependency references with IDE autocomplete
- Modern Gradle best practice approach
@fglock fglock force-pushed the feature/gradle-version-catalog-migration branch from b66596e to 4284385 Compare January 2, 2026 08:53
@fglock fglock merged commit b576505 into master Jan 2, 2026
2 checks passed
@fglock fglock deleted the feature/gradle-version-catalog-migration branch January 2, 2026 09:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant