Okbuck Versions Save

OkBuck is a gradle plugin that lets developers utilize the Buck build system on a gradle project.

v0.50.0

4 years ago

Enhancements

  • Rename external dependency to OExternalDependency (#893)
  • Add support for exported with versioned deps (#894)
    • Exported deps can be enabled even if the project has multiple versions of the same dependency.
    • The resolved dependency graph might not work with BUCK since buck sorts the classpath as a string without taking version information into account.
    • This might not work for android projects as it uses configuration.getResolvedConfiguration() API which fails on android projects. In that case use ResolutionAction.LATEST extension property to enable using the latest version of every dependency.
okbuck {
    externalDependency {
        enableExportedDeps = true
        // If using android projects
        resolutionAction = "latest"
    }
}
  • Add ability for strict visibility of 3rdparty deps (#895)
    • It makes only directly defined deps visible publically, others will have only local visibility.
    • This only takes into effect only if exported deps is enabled.
okbuck {
    externalDependency {
        strictVisibility = true
        enableExportedDeps = true
    }
}

Bug Fixes

  • Use weak references for dep cache (#897)

v0.49.0

4 years ago

Enhancements

  • Adding integration tests target to main tests (#878)
  • Stricter check for changing dependencies (#881)

Potential Breaking Changes

  • If enforcement of changing dependencies is enabled, the configuration may need to be adjusted to account for new changing dependencies

Changing dependencies like [2.2,) are not visible after configuration resolution but can still cause non hermetic builds. See gradle docs

This version adds a new extension to pick a fixed version when encountering any such dependencies before resolution and during validation. It also adds the ability to ignore changing dependencies if they are resolved with other gradle resolution mechanisms

Example configuration:

okbuck {
    dynamicDependencyVersionMap = [
        "com.google.guava:guava:19+" : "24.1.1-jre",
        "com.google.guava:guava:[10.+,)" : "24.1.1-jre",
        "com.google.guava:guava:[14.0, 18.0]" : "18.0",
        "ml.dmlc:xgboost4j-spark:0.7-SNAPSHOT" : "0.7",
    ]
    dynamicDependenciesToIgnore = [
        "ml.combust.mleap:mleap-xgboost-spark_2.11:0.10.0-SNAPSHOT",
    ]
}

v0.48.8

4 years ago

Enhancements

  • Added custom rules for integration tests (#877)

v0.48.7

4 years ago

Enhancements

  • Integration tests support (#871) (see PR for steps to enable generation of integration test targets)

Bugfixes

  • Don't populate resources or sources in jvm rules if it doesn't contain any valid file. (#867)

v0.48.6

4 years ago

Enhancements

  • Cache computed sha256 of external dependencies (#863)

Bugfixes

  • Fix argument size bug while linting (#860)
  • Ensure that test env dict is printed in sorted manner. (#862)

v0.48.3

4 years ago

Enhancements

  • Simplify generated buck files using android_module rules (#851)

Bugfixes

  • Handle empty lint xml config properly for macro rule (#855)

v0.48.2

4 years ago

Enhancements

  • Added support for reading multiDexEnabled from build type based config (#829)
  • Add support for composing api deps in external_deps. (#832)
  • Add support for exported_deps for aar & jar prebuilts. (#836)

Bugfixes

  • Do not check for lint manifest attributes (#846)
  • Delete transform folder only if it is being created (#848)
  • Handle empty lint xml config properly (#849)

Potential Breaking Changes

  • Compose external dependency processors in external dependency's buck file (#844)
  • autoValue extensions need to pre predefined so that okbuck can work without having to infer auto value dependencies & its extensions by looking at the project's apt configuration.
okbuck {
    externalDependencies {
        autoValueConfigurations = [
            "autoValueAnnotations",
            "autoValueGson",
            "autoValueParcel",
        ]
    }
}

def autoValueDeps = [deps.apt.autoValue, deps.apt.autoValueAnnotations]
def autoValueGsonDeps = autoValueDeps + [deps.apt.autoValueGson]
def autoValueParcelDeps = autoValueDeps + [deps.apt.autoValueParcel]

afterEvaluate {
    dependencies {
        toolsExtraDepCache deps.external.saxon

        autoValueAnnotations autoValueDeps
        autoValueGson autoValueGsonDeps
        autoValueParcel autoValueParcelDeps
    }
}

  • Auto value processors now take the configuration name instead of previous md5 suffixed names.
processor-auto-value-annotations

instead of

processor_com.google.auto.value-auto-value-1.6__525046afa7fcbcf1dcd36f17908d83ff

v0.47.0

5 years ago

Enhancements

  • Add a generated header to okbuck generated buck files (#809)
  • Update Robolectric artifact coordinates for P (#811)
  • Adding arm64-v8a as a supported ABI to okbuck (#814)
  • Windows Support! (#808) (Thanks @KapJI !)

Bugfixes

  • Stop forcing kotlin version (#806)
  • Kotlin 1.3.20 and fix configuration check exception (#802)

Potential Breaking Changes

v0.46.3

5 years ago

Bugfixes

  • Infer sources using ResolvedArtifactResult instead of doing filesystem check (#805)
  • Fix rules overrides bug (#804)

v0.46.2

5 years ago

Bugfixes

  • Enable download.in_build buckconfig if downloadInBuck is set (#793)
  • Don't include any file: maven repository in the generated maven_repositories list (#787)
  • Don't setup kotlin home if disabled (#784)