Skip to content

Releases: slackhq/keeper

0.16.1

Choose a tag to compare

@ZacSweers ZacSweers released this 28 Jun 20:47
  • Fix: Support running on Windows.
  • Build against Gradle 8.8.
  • Build against AGP 8.5.0.
  • Build against Kotlin 1.9.24.

Special thanks to @mikehardy for contributing to this release!

What's Changed

New Contributors

Full Changelog: 0.16.0...0.16.1

0.16.0

Choose a tag to compare

@ZacSweers ZacSweers released this 09 May 17:00
  • Enhancement: Support for AGP 8.4.0. AGP 8.4.0 is the minimum supported version now.
  • Update Gradle to 8.7.
  • Remove support for keeper.disableTestProguardFiles as this API can no longer with with newer AGP versions.

Special thanks to @lwasyl and @alexvanyo for contributing to this release!

HELP WANTED: This project is no longer used by Slack. If your company uses this plugin and is interested in maintaining a fork, see #144.

What's Changed

New Contributors

Full Changelog: 0.15.0...0.16.0

0.15.0

Choose a tag to compare

@ZacSweers ZacSweers released this 25 Jul 18:14
  • Enhancement: Support AGP 8.1.0. AGP 8.1.0 is the minimum required version now due to breaking API changes.
  • Update Gradle to 8.2.1.

What's Changed

Full Changelog: 0.14.0...0.15.0

0.14.0

Choose a tag to compare

@ZacSweers ZacSweers released this 15 Apr 22:01
  • Enhancement: Support AGP 8.0. AGP 7.x and lower are no longer supported.
  • Enhancement: Use new AGP APIs for retrieving all compiled classes, better supporting configuration cache.
  • Enhancement: Better support configuration cache in Gradle 8.x in general.
  • Enhancement: Add new keeper.disableTestProguardFiles flag gradle property to optionally disable merging in test proguard files.
  • Enhancement: InferAndroidTestKeepRules no longer extends JavaExec.
  • Enhancement: PrintUses support is removed entirely.
  • Fix: Use artifactFiles instead of resolvedArtifacts for resolving proguard files.

All changes

Full Changelog: 0.13.0...0.14.0

0.13.0

Choose a tag to compare

@ZacSweers ZacSweers released this 09 Dec 19:25
  • Enhancement: Use Gradle 7.5's new ArtifactCollection APIs to for better task input wiring. This allows us to remove the previous hack where we used the target Configuration as an internal property. This also improves configuration caching support. Gradle 7.5 is now the minimum required Gradle version.
  • Enhancement: Use AGP's new Component.runtimeConfiguration API. AGP 7.3 is now the minimum required AGP version.
  • Enhancement: Removed KGP and kotlin-dsl dependencies. Keeper inappropriately included implementation dependencies on these two and no longer does. This is a breaking change for users who were using these dependencies in their build scripts and you should add them separately if you're using them.
  • Removed: PrintUses is no longer supported as this API has been removed from R8 and now only TraceReferences is used.
  • Removed: Removed deprecated enableL8RuleSharing and traceReferences.enabled properties in the Keeper gradle extension.

0.12.0

Choose a tag to compare

@ZacSweers ZacSweers released this 02 Feb 22:07
a0416dd

New: Update to AGP 7.1 APIs

Keeper now requires AGP 7.1.0 or higher and has been reworked to use AGP's new extension APIs. As
such, the variantFilter API has now been removed.

In order to enable Keeper on a particular variant, you must register the KeeperVariantMarker
extension in AGP's VariantBuilder API like so:

androidComponents {
  beforeVariants { builder ->
    if (shouldRunKeeperOnVariant()) {
      builder.optInToKeeper() // Helpful extension function
    }
  }
}

Or in Groovy

androidComponents {
  beforeVariants { builder ->
    if (shouldRunKeeperOnVariant(builder)) {
      builder.registerExtension(KeeperVariantMarker.class, KeeperVariantMarker.INSTANCE)
    }
  }
}

Keeper's default behavior with no configuration effectively be a no-op, which isn't what you want!

Other updates

  • Remove shaded ZipFlinger APIs, ZipFlinger is now used directly
  • Update Kotlin to 1.6.10

0.11.2

Choose a tag to compare

@ZacSweers ZacSweers released this 27 Jan 21:45
8612cfa
  • Fix: Fix a configuration caching issue when L8 rule sharing is enabled.

0.11.1

Choose a tag to compare

@ZacSweers ZacSweers released this 31 Aug 19:13
d5538a4

Fix: Keeper's intermediate jar creation tasks previously accepted dependencies inputs based on content only. This caused build caching issues across multiple machines with Gradle remote cache enabled because it would then attempt to use the previous build's absolute path to those dependency jars and subsequently fail. This is now fixed by reworking this logic internally a bit and using absolute path sensitivity for that input. This should ensure that caching still works like before across the same machine/paths but will properly be out of date when the absolute paths change across different machines.

0.11.0

Choose a tag to compare

@ZacSweers ZacSweers released this 29 Jul 15:20
  • Minimum supported AGP version is now 7.0.0. It may work on older versions but YMMV.
  • Update embedded ZipFlinger to 7.0.0 and update to its new Path constructors.
  • Update to Kotlin 1.5.21

0.10.0

Choose a tag to compare

@ZacSweers ZacSweers released this 13 Jun 15:36
53569ae
  • Core Library Desugaring is now fully supported. See its
    section in on the project
    site for more details!
  • The keeper.enableL8RuleSharing Gradle API is now deprecated and does nothing. L8 support is
    automatically enabled if android.compileOptions.coreLibraryDesugaringEnabled is true in AGP.