A Gradle plugin that infers Proguard/R8 keep rules for androidTest sources.
APACHE-2.0 License
Bot releases are visible (Hide)
8.7
.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 https://github.com/slackhq/keeper/discussions/144.
Full Changelog: https://github.com/slackhq/keeper/compare/0.15.0...0.16.0
Published by ZacSweers about 1 year ago
8.2.1
.Full Changelog: https://github.com/slackhq/keeper/compare/0.14.0...0.15.0
Published by ZacSweers over 1 year ago
keeper.disableTestProguardFiles
flag gradle property to optionally disable merging in test proguard files.InferAndroidTestKeepRules
no longer extends JavaExec
.PrintUses
support is removed entirely.artifactFiles
instead of resolvedArtifacts
for resolving proguard files.Full Changelog: https://github.com/slackhq/keeper/compare/0.13.0...0.14.0
Published by ZacSweers almost 2 years ago
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.Component.runtimeConfiguration
API. AGP 7.3 is now the minimum required AGP version.PrintUses
is no longer supported as this API has been removed from R8 and now only TraceReferences
is used.enableL8RuleSharing
and traceReferences.enabled
properties in the Keeper gradle extension.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
1.6.10
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.
keeper.enableL8RuleSharing
Gradle API is now deprecated and does nothing. L8 support isandroid.compileOptions.coreLibraryDesugaringEnabled
is true in AGP.