Releases: uber/okbuck
v0.17.2
V0.17.1
V0.17.0
Enhancements
We are excited to announce support for the Gradle Transform API in Okbuck. Okbuck now supports porting over gradle transform classes to be run during the buck build. You can configure it as follows
okBuck {
...
experimental {
transform = true
}
transform {
transforms = [
'another-app' : [
[
transform : "FULL_QUALIFIED_CLASS_NAME",
configFile: "CONFIG_FILE_PATH" // optional
]
],
]
}
}
dependencies {
transform TRANSFORM_DEPENDENCY
}
Okbuck transform CLI can create a transform in two ways.
- A class name with an empty constructor
- A class name with a
java.io.File
argument constructor
The file can contain anything in it. The transform can then read the file and parse it in whichever format it wants it in. The file is a way to pass in configuration that is traditionally done via gradle project/extensions.
Notes
- The android bootclasspath is already passed in the transform invocation as a referenced input jar.
- The transform step runs before the dex step. Applying a transform disables predexing, slowing down the build. So it is better to create a separate
buildType
and apply transforms on it so regular development can still be fast. - Huge shoutout to @malbano for working on this feature.
V0.16.3
V0.16.1
V0.16.0
Enhancements
- Add ability to reference resources between main and flavor res directories. This means main and buildType/flavor resources can reference each other correctly. You need to use facebook/buck@3319cd6 or later in
.buckversion
to get support for this feature and continue using okbuck. This also greatly simplifies the number ofandroid_resource
rules and now okbuck only creates one per target regardless of the number of itsres
andasset
directories. #361 - Only resolve subset of useful configurations during okbuck. The android gradle plugin creates many configurations for every buildType and flavor combination. Even standard configurations may not always be used by projects i.e they may only declare dependencies on a few configurations per project. This change filters out configurations that are useful for building and ignores resolving all possible configurations to speedup okbuck time. #366
- Bumped default retrolambda version to 2.5.0
- Use same proguard jar as the android gradle plugin in buck. #363
Bug fixes
- Better isolation of apt and provided dependencies across targets. This means
apt
andprovided
dependencies will no longer leak totestApt
andtestProvided
etc. #365
Breaking Changes
- You need to use facebook/buck@3319cd6 or later in
.buckversion
to continue using okbuck. - If you were using any custom definitions in your
.buckconfig
like
[buildfile]
includes = //custom/DEFS
You will need to move such files to the okbuck extension in the root build.gradle
like so
okbuck {
extraDefs += project.file('custom/DEFS')
}
This is required because okbuck now ships with its own build file definitions and writes them to the buckconfig.local
config file. Configuring okbuck correctly will prevent your configuration from being overwritten.
V0.15.7
Enhancements
- Better watchman queries in the wrapper (#359). To get this benefit, please regenerate your wrappers using
./gradlew buckWrapper
. The improvements include faster detection of changes to decide when to run okbuck
Bugfixes
- Always manifest merge if its an application (1525632). This is required if using the new manifest merger in buck to prevent it from writing bad class names to the manifest when they are not specified as fully qualified.