Gradle buildSrcVersions v0.40.1 Release Notes

Release Date: 2022-02-06 // 4 months ago
  • ๐Ÿ›  Fixes

    • ๐Ÿ‘Œ Improved support of Gradle configuration cache. In the previous release, if you ran the refreshVersions task twice in a row with configuration cache enabled, the second run would fail, even in warning mode. It's now fixed.
    • ๐Ÿ‘€ To make refreshVersions compatible with GCS (Google Cloud Storage) hosted maven repositories (which can be helpful for company/team internal libraries), we were using the official library from Google. Unfortunately, this led to dependency hell to some of our users because it then requires a specific version of Guava, which could be different from the one required by other plugins, and the one from refreshVersions would prevail. So, to resolve these problems, we replaced our implementation with one that reuses Gradle's built-in GcsClient, and we're very happy with that because it also has the benefit of reducing the total size of refreshVersions when we include its dependencies. Note that this is using internal Gradle APIs, but we've seen that they didn't change in 5 years, and the code path is executed only if you have gcs backed repositories in your project.

    ๐Ÿ†• New dependency notations:

    • AndroidX.glance.wearTiles
    • AndroidX.wear.tiles.material
    • Google.android.maps
      • compose
      • utils
      • utils.ktx
      • ktx
      • rx
      • places
        • ktx
        • rx
    • ReactiveX
      • rxJava2
        • rxAndroid
        • rxKotlin
      • rxJava3
        • rxAndroid
        • rxKotlin
    • JakeWharton
      • rxBinding3
        • appcompat
        • core
        • drawerLayout
        • leanback
        • material
        • recyclerview
        • slidingPaneLayout
        • swipeRefreshLayout
        • viewPager2
        • viewPager
      • rxBinding4
        • appcompat
        • core
        • drawerLayout
        • leanback
        • material
        • recyclerview
        • slidingPaneLayout
        • swipeRefreshLayout
        • viewPager2
        • viewPager
      • rxRelay2
      • rxRelay3

    Credits

    Thanks to Mike Gray for the contribution in adding ReactiveX, RxBinding, and RxRelay dependency notations!


Previous changes from v0.40.0

  • ๐Ÿ†• New features

    • ๐Ÿ”ง We are very happy to announce that refreshVersions now supports Gradle configuration cache! Gradle configuration is all about saving time, which is also the mission of refreshVersions, albeit in a different situation, so it made a lot of sense to not step on that feature Gradle engineers worked hard on. Note that the refreshVersions task itself is not compatible with configuration cache because it's impossible with the current Gradle APIs.
    • Error tolerance: The refreshVersions task will no longer fail if there's a problem getting versions from a repository. Now, it will add contextual comments in the versions.properties file, so you know what failed, and don't get fully blocked next time jcenter or another repository undergoes an outage. This should also help if you're running the refreshVersions task through an unstable internet connection and some network calls fail because of that.

    ๐Ÿ†• New dependency notations:

    • Google.modernStorage:
      • bom
      • permissions
      • photoPicker
      • storage
    • ๐Ÿ”Œ Google.android.openSourceLicensesPlugin
    • Google.android.playServices:
      • appset
      • auth.apiPhone
      • auth.blockstore
      • basement
      • cronet
      • fido
      • openSourceLicenses
      • passwordComplexity
      • recaptcha
      • tagmanager
    • ๐Ÿ”Œ Google.android.versionMatcherPlugin

    Credits

    Thanks to Kamalesh for the contribution in adding dependency notations!