Releases: slackhq/keeper
0.16.1
- 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
- Multiplatform worfklow with windows fix by @mikehardy in #149
- Misc repo infra updates by @ZacSweers in #150
New Contributors
- @mikehardy made their first contribution in #149
Full Changelog: 0.16.0...0.16.1
0.16.0
- 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
- Update dependencies and raise min AGP/R8 version by @ZacSweers in #126
- Update default R8 to 8.2.38 by @lwasyl in #130
- Workaround disallow changes by splitting configuration file setup by @alexvanyo in #138
- Fix main and update things by @ZacSweers in #141
New Contributors
Full Changelog: 0.15.0...0.16.0
0.15.0
- 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
- Update to AGP 8.1 by @ZacSweers in #123
Full Changelog: 0.14.0...0.15.0
0.14.0
- 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 extendsJavaExec
. - Enhancement:
PrintUses
support is removed entirely. - Fix: Use
artifactFiles
instead ofresolvedArtifacts
for resolving proguard files.
All changes
- Switch to ktfmt by @ZacSweers in #114
- Update to AGP 8/Gradle 8 by @ZacSweers in #117
Full Changelog: 0.13.0...0.14.0
0.13.0
- 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 targetConfiguration
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 onlyTraceReferences
is used. - Removed: Removed deprecated
enableL8RuleSharing
andtraceReferences.enabled
properties in the Keeper gradle extension.
0.12.0
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
0.11.1
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.