Skip to content

Releases: uber/okbuck

V0.15.0

25 Jan 07:44
Compare
Choose a tag to compare

Enhancements

  • Okbuck dependency cache in .okbuck now uses symlinks instead of copies of files from the gradle cache etc. when possible. This speeds up the okbuck cache setup and also significantly reduces disk usage. (#349)
  • Reduce the number of manifest merger invocations required when running okbuck. Improves the execution time of the okbuck task by only running a merger step if there are more than one manifest involved per variant. Also removed unnecessary manifest processing around setting min and target sdk versions for library modules. (#350)
  • Added ability to add lint libraries to genrules (#352). This is useful when using newer PSI based lints which can enhance the AST with proper type information when used with the --libraries flag. To make the classes of any external or project dependency available to the buck linter for analysis, they can be specified as
dependencies {
  buckLintLibray "com.example:dep:1.0.0"
  buckLintLibray project(":dep")
}

Bug fixes

  • Create aidl rules per source directory (#341)

Potential Breaking Changes

  • Moving to use symlinks instead of copies for the dependency cache could be a potentially breaking change. We have not noticed any issues during our testing, but it is something to watch out for.

v0.14.4

19 Jan 10:17
Compare
Choose a tag to compare

Enhancements

  • Converted a bunch of classes over to Java 8. Better overall performance, less groovy.

Bug fixes

  • Add project dependencies to annotation processor deps (#338)
  • Fix regression with target deps not being picked up from buckLint configurations (#339)

Potential Breaking Changes

  • Due to moving extension classes to java 8, the following syntax for configuring okbuck
okbuck {
  buildToolVersion "25.0.1"
  target "android-25"
}

Needs to be replaced with

okbuck {
  buildToolVersion = "25.0.1"
  target = "android-25"
}

Please take note of the slight change when upgrading

V0.14.3

13 Jan 01:25
Compare
Choose a tag to compare

Bug fixes

  • Fixed a memory leak by moving global static objects to the plugin instance
  • Fixed a race condition that would cause generated BUCK file contents to be different

V0.14.2

07 Jan 02:06
Compare
Choose a tag to compare

Bug fixes

  • Fixed buck lint configuration not being applied to all buck projects.

v0.14.1

07 Jan 01:16
Compare
Choose a tag to compare

Bug fixes

  • Fixed annotation processing transitive deps to not be added to the provided deps classpath. This cleans up a pollution of the compile classpath to make gradle and buck builds the same.

Potential Breaking Changes

  • Due to decoupling the annotation processing and provided classpaths, your projects may need to add the required compile/provided dependencies when missing to make builds succeed

V0.14.0

06 Jan 22:13
Compare
Choose a tag to compare

Enhancements

  • Simplified detection of source jars in the dependency cache

Bug fixes

  • Output a more descriptive error message when an error occurs due to adding a project dependency

Potential Breaking Changes

  • Android Lint, Retrolambda and Parallel mode have been moved out of experimental mode.
  • Lint rules are generated by default now. To disable this, you can use
okbuck {
  lint {
    disabled = true
  }
}

Due to this change you have to add a repositories block to your root build.gradle if you have not already

repositories {
    jcenter()
}

apply plugin: 'com.uber.okbuck'
  • Parallel okbuck is now the default. This mode creates an okbuck task per project to speed up buck file generation. Make sure you have gradle's parallel mode turned on
  • Some internal task names have been re-organized and renamed. Make sure your custom tasks still work if they depended on any of these internal task names.

V0.13.1

23 Dec 19:31
Compare
Choose a tag to compare

Enhancements

  • Improved groovy support. The groovy compiler is setup automatically for buck build now.
  • Allow importing gradleApi() and groovyLocal() within groovy gradle plugin projects without throwing an error that they are located outside the project root

Bug fixes

  • Fixed a bug with blacklisting files in java_libraries (#300)

V0.13.0

18 Dec 03:53
Compare
Choose a tag to compare

Enhancements

  • Performance improvements around repository handling for dependency cache and caching targets of projects to speedup okbuck tasks.
  • When a local project dependency with the same group and artifact id as an external dependency is discovered, it will be used as the preferred target across all generated buck rules. (See #285 for details)

Bug fixes

  • Fixed a bug with when watchman fails to list BUCK files to cleanup. buckw falls back to okbuckClean in such cases. Please regenerate the wrapper with ./gradlew buckWrapper to get this fix.
  • Fixed a regression with local dependencies. (#195)

Potential Breaking Changes

  • Project dependency substitution for external dependencies may cause buck compilation failures. (#285)
  • When using local jars/aars outside the project root, okbuck will fail. Such dependencies should be moved into the project for reproducible builds instead. (#288)

V0.12.1

14 Dec 09:31
Compare
Choose a tag to compare

Bug Fixes

  • Fixed a bug where empty list of annotation processors were being written to targets

V0.12.0

14 Dec 06:36
Compare
Choose a tag to compare

Enhancements

This release comes with a bunch of performance enhancements

  • Completely overhauled how the okbuck dependency cache works and how artifacts are resolved for projects. Most of the cache building and version resolution has been moved to the dependency cache ahead of the project level buck config generation. This gives a big speedup boost to the okbuck task, especially when parallel mode is enabled
  • okbuck now cleans up cached files that are no longer in use i.e artifacts that were replaced with different versions on subsequent builds. This should speedup evaluation of the generated BUCK rules
  • Moved annotation processor list resolution for jars to a lazily evaluated and cached model to reduce the amount of jars that need processing to get the list of annotation processor classes they contain.
  • Updated android gradle plugin version to 2.3.0-alpha3. Setting -Pandroid.enableImprovedDependenciesResolution=true in your buckw for the okbuck command should help reduce project configuration time significantly.

Bug fixes

  • Fixed a bug with android_library rules for projects that use aidl. This fixes an issue with intellij project generation with project command