Releases: bazelbuild/rules_android
Releases · bazelbuild/rules_android
v0.6.0
Using Bzlmod with Bazel 6 or greater
- (Bazel 6 only) Enable with
common --enable_bzlmod
in.bazelrc
. - Add to your
MODULE.bazel
file:
bazel_dep(name = "rules_android", version = "0.6.0")
Using WORKSPACE
Paste this snippet into your WORKSPACE.bazel
file:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "rules_android",
sha256 = "af84b69ab3d16dd1a41056286e6511f147a94ccea995603e13e934c915c1631c",
strip_prefix = "rules_android-0.6.0",
url = "https://github.com/bazelbuild/rules_android/releases/download/v0.6.0/rules_android-v0.6.0.tar.gz",
)
# Android rules dependencies
load("@rules_android//:prereqs.bzl", "rules_android_prereqs")
rules_android_prereqs()
##### rules_java setup for rules_android #####
load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies")
rules_java_dependencies()
# note that the following line is what is minimally required from protobuf for the java rules
# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl
load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility
proto_bazel_features(name = "proto_bazel_features")
# register toolchains
load("@rules_java//java:repositories.bzl", "rules_java_toolchains")
rules_java_toolchains()
##### rules_jvm_external setup for rules_android #####
load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")
rules_jvm_external_deps()
load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")
rules_jvm_external_setup()
##### rules_android setup #####
load("@rules_android//:defs.bzl", "rules_android_workspace")
rules_android_workspace()
# Android SDK setup
load("@rules_android//rules:rules.bzl", "android_sdk_repository")
android_sdk_repository(
name = "androidsdk",
)
register_toolchains(
"@rules_android//toolchains/android:android_default_toolchain",
"@rules_android//toolchains/android_sdk:android_sdk_tools",
)
In BUILD
Load the rules from rules_android
:
load("@rules_android//rules:rules.bzl", "android_binary", "android_library")
android_binary(
...
)
android_library(
...
)
Release notes
Highlights:
- Compatibility with {Bazel 7, Bazel 8} x {bzlmod, WORKSPACE} x {Linux, Mac, Windows}
- Starlark implementations of all Android rules
- Note:
android_ndk_repository
is migrated to https://github.com/bazelbuild/rules_android_ndk, andandroid_instrumentation_test
is migrated to https://github.com/bazelbuild/rules_utp
- Note:
- Starlark implementations of all Android providers
- Bazel Android Tools are migrated from the Bazel repo to the rules_android repo
--experimental_enable_android_migration_apis
and--experimental_google_legacy_api
are no longer required- Fully integrated mobile-install v3 and its related tools
- Support Java 11+ compilation
Other Changes:
- Support ANDROID_HOME paths relative to the workspace
- Generate a split APK per native architecture in fat builds.
- Updated to newer versions of rules_java, protobuf, rules_jvm_external, rules_robolectric, and others rules
v0.6.0-alpha1
Using Bzlmod with Bazel 6 or greater
- (Bazel 6 only) Enable with
common --enable_bzlmod
in.bazelrc
. - Add to your
MODULE.bazel
file:
bazel_dep(name = "rules_android", version = "0.6.0-alpha1")
Using WORKSPACE
Paste this snippet into your WORKSPACE.bazel
file:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "rules_android",
sha256 = "fe3d8c4955857b44019d83d05a0b15c2a0330a6a0aab990575bb397e9570ff1b",
strip_prefix = "rules_android-0.6.0-alpha1",
url = "https://github.com/bazelbuild/rules_android/releases/download/v0.6.0-alpha1/rules_android-v0.6.0-alpha1.tar.gz",
)
# Android rules dependencies
load("@rules_android//:prereqs.bzl", "rules_android_prereqs")
rules_android_prereqs()
##### rules_java setup for rules_android #####
load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies")
rules_java_dependencies()
# note that the following line is what is minimally required from protobuf for the java rules
# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl
load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility
proto_bazel_features(name = "proto_bazel_features")
# register toolchains
load("@rules_java//java:repositories.bzl", "rules_java_toolchains")
rules_java_toolchains()
##### rules_jvm_external setup for rules_android #####
load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")
rules_jvm_external_deps()
load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")
rules_jvm_external_setup()
##### rules_android setup #####
load("@rules_android//:defs.bzl", "rules_android_workspace")
rules_android_workspace()
# Android SDK setup
load("@rules_android//rules:rules.bzl", "android_sdk_repository")
android_sdk_repository(
name = "androidsdk",
)
register_toolchains(
"@rules_android//toolchains/android:android_default_toolchain",
"@rules_android//toolchains/android_sdk:android_sdk_tools",
)
In BUILD
Load the rules from rules_android
:
load("@rules_android//rules:rules.bzl", "android_binary", "android_library")
android_binary(
...
)
android_library(
...
)
v0.5.1
Using Bzlmod with Bazel 6 or greater
- (Bazel 6 only) Enable with
common --enable_bzlmod
in.bazelrc
. - Add to your
MODULE.bazel
file:
bazel_dep(name = "rules_android", version = "0.5.1")
Using WORKSPACE
Paste this snippet into your WORKSPACE.bazel
file:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "rules_android",
sha256 = "b1599e4604c1594a1b0754184c5e50f895a68f444d1a5a82b688b2370d990ba0",
strip_prefix = "rules_android-0.5.1",
url = "https://github.com/bazelbuild/rules_android/releases/download/v0.5.1/rules_android-v0.5.1.tar.gz",
)
load("@rules_android//:prereqs.bzl", "rules_android_prereqs")
rules_android_prereqs()
load("@rules_android//:defs.bzl", "rules_android_workspace")
rules_android_workspace()
load("@rules_android//rules:rules.bzl", "android_sdk_repository")
android_sdk_repository(
name = "androidsdk",
)
register_toolchains(
"@rules_android//toolchains/android:android_default_toolchain",
"@rules_android//toolchains/android_sdk:android_sdk_tools",
)
In BUILD
Load the rules from rules_android
:
load("@rules_android//rules:rules.bzl", "android_binary", "android_library")
android_binary(
...
)
android_library(
...
)
Full Changelog: v0.5.0...v0.5.1
v0.5.0
Using Bzlmod with Bazel 6 or greater
- (Bazel 6 only) Enable with
common --enable_bzlmod
in.bazelrc
. - Add to your
MODULE.bazel
file:
bazel_dep(name = "rules_android", version = "0.5.0.bcr.1")
Using WORKSPACE
Paste this snippet into your WORKSPACE.bazel
file:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "rules_android",
sha256 = "fc6b022e97c2d5893aa3dd01b480f37cd386d82fc7e14edbcba393cd390a244e",
strip_prefix = "rules_android-0.5.0",
url = "https://github.com/bazelbuild/rules_android/releases/download/v0.5.0/rules_android-v0.5.0.tar.gz",
)
load("@rules_android//:prereqs.bzl", "rules_android_prereqs")
rules_android_prereqs()
load("@rules_android//:defs.bzl", "rules_android_workspace")
rules_android_workspace()
load("@rules_android//rules:rules.bzl", "android_sdk_repository")
android_sdk_repository(
name = "androidsdk",
)
register_toolchains(
"@rules_android//toolchains/android:android_default_toolchain",
"@rules_android//toolchains/android_sdk:android_sdk_tools",
)
In BUILD
Load the rules from `rules_android`:
load("@rules_android//rules:rules.bzl", "android_binary", "android_library")
android_binary(
...
)
android_library(
...
)
What's Changed
- Clean up rules_android WORKSPACE by @ted-xie in #55
- [SNAP FORK][UPSTREAMED] Enable support for M1 macs by @mauriciogg in #60
- Fixing CI failures by @comius in #73
- Set visibility of merge_feature_manifests.par to public by @Bencodes in #79
- Add com.android.tools.build:gradle to MODULE.bazel by @Bencodes in #85
- Add ijwb and aswb directories to the gitignore by @Bencodes in #84
- Add rules_java explicitly to WORKSPACE by @ted-xie in #88
- Pass string values to execution_requirements by @Bencodes in #87
- Delete accidental extra rules_java dep by @ted-xie in #89
- Fix typos in filter_zip by @mauriciogg in #82
- Build/test more targets in BazelCI by @ted-xie in #120
- [SNAP FORK][UPSTREAMED] Fix idl tool by @mauriciogg in #61
- Pass min_sdk_version to R8 by @Bencodes in #129
- Increase R8 allowed max memory usage by @Bencodes in #140
- Support additional rule providers in make_rule by @Bencodes in #95
- Support multi platform in android_local_test unit tests by @jylinv0 in #160
- Simplify javabin path resolution by @Bencodes in #152
- Support passing additional toolchains to the make_rule for android_local_test by @Bencodes in #150
- Fix reference to deps attr by @nkoroste in #177
- Declare rules_python deps by @katre in #175
New Contributors
- @mauriciogg made their first contribution in #60
- @Bencodes made their first contribution in #79
- @jylinv0 made their first contribution in #160
- @nkoroste made their first contribution in #177
Full Changelog: https://github.com/bazelbuild/rules_android/commits/v0.5.0
v0.1.1
Initial Release
Initial release of Bazel Android Skylark Rules.
Each Skylark rule is a thin wrapper around the corresponding native rule.