Skip to content

0.20.0

Compare
Choose a tag to compare
@jmfayard jmfayard released this 23 Aug 16:50
· 1020 commits to main since this release

Version 0.20.0 (2021-08-23)

Announcement

We are now ready to accept dependency notation contributions for high-quality and popular dependencies from the Kotlin ecosystem!

Look for issues with the Dependency notations and up-for-grabs tags to find one you can directly contribute to, or submit a new issue to ask for a new one to be added. We updated the contributing guide on the website, it now has a guide dedicated to it here.

New features

  • refreshVersions will now add ## unused comments on top of unused entries in the versions.properties file after you run the refreshVersions task, so you know which ones are obsolete and can be removed.
  • The new rejectVersionsIf { … } predicate available in the refreshVersions { … } extension in your settings.gradle[.kts] file will allow you to filter any kind of versions you don't want to know about. It can be handy to filter snapshots out for example.
  • Most of our dependency notations now provide more flexibility with 3 new extension functions: withVersionPlaceholder(), withVersion(…), and withoutVersion().

Change (potentially breaking)

  • If you use a BoM from the built-in dependency notations, it must always appear before dependencies from the group it controls, or you'll see an error message that will fail the Gradle build. We do this because we can't switch on usage of the BoM for linked dependencies that have already been evaluated by Gradle.

Improvements

The refreshVersionsMigrate will now use the built-in dependency notations if they match existing dependencies.

New dependency notations:

  • AndroidX:
    • benchmark.macroJunit4
    • core.splashscreen
    • games:
      • activity
      • controller
      • framePacing
      • performanceTuner
      • textInput
    • navigation.testing
    • wear.compose:
      • foundation
      • material
    • window
      • java
      • rxJava2
      • rxJava3
      • testing
  • COIL:
    • compose
    • composeBase
  • Firebase:
    • cloudMessagingDirectBoot
    • Firebase.mlModelDownloaderKtx
    • Firebase.mlModelDownloader
  • Kodein.di (new group with many dependencies)
  • Kotlin.test (which is compatible with multiplatform projects since Kotlin 1.5)
  • KotlinX.html (compatible with multiplatform projects)
  • Ktor.features.serialization
  • Http4k (new group with many dependencies)
  • Splitties.alertdialogMaterial
  • Square
    • okHttp3.bom
    • okHttp3 (shortcut to existing okHttp3.okHttp)
    • retrofit2.converter.wire
    • retrofit2 (shortcut to existing retrofit2.retrofit)
  • Spring (new group with many dependencies)