commit | 80a07b5917b83add77587f06cf676cbb6808b414 | [log] [tgz] |
---|---|---|
author | Bazel Release System <noreply@google.com> | Wed Feb 01 19:53:35 2017 +0100 |
committer | Yun Peng <pcloudy@google.com> | Wed Feb 01 19:53:35 2017 +0100 |
tree | 80fb210b076d8524eba24286083d8a748e8aac5b | |
parent | 985537983d085dd24d3a0b8cf1927a7b3f2d5be8 [diff] |
Release 0.4.4 (2017-02-01) Baseline: 4bf8cc30a Cherry picks: + ef1c6fd33: msvc_tools.py.tpl: Change default runtime library to static Incompatible changes: - Only targets with public visibility can be bound to something in //external: . - The deprecated -x startup option has been removed. - docker_build: change the repository names embedded by docker_build. You can revert to the old behavior by setting legacy_repository_naming=True. - The string methods strip(), lstrip(), and rstrip() now by default remove the same whitespace characters as Python 3 does, and accept None as an argument. - Deprecated globals HOST_CFG and DATA_CFG are removed. Use strings "host" and "data" instead. - repository_ctx environment is now affected by --action_env flag (value from the client environment will be replaced by value given on the command line through --action_env). - All executable labels must also have a cfg parameter specified. - Removed the cmd_helper.template function. The function was equivalent to: def template(items, template): return [template.format(path = i.path, short_path = i.short_path) for i in items] - Tuples that end with a trailing comma must now be inside parens, e.g. (1,) instead of 1, - The traversal orders for depsets have been renamed. The old names are deprecated and will be removed in the future. New names: "stable" -> "default", "compile" -> "postorder", "link" -> "topological", "naive_link" -> "preorder". New features: - Skylark: you can now multiply a list by an integer to get the concatenation of N copies of this list, e.g. [a,b] * 3 = [a,b,a,b,a,b] - Allow Android aidl tool to add a jar to the program's classpath, such as if needed to support generated sources. - Add transitive proguard_specs when android_sdk.aidl_lib is specified - Windows: "/dev/null" is now a supported path, e.g. --bazelrc=/dev/null now works Important changes: - Bazel Android builds use the apksigner tool from the Android SDK build-tools. Bazel Android builds now require build-tools version 24.0.3 or later. - Android SDK external bindings for support libraries, e.g. //external:android/appcompat_v4, are removed because the support library JARs that they referenced no longer ship with the Android SDK. - aar_import rule is now documented. - An IE bug was fixed in repository_ctx.download_and_extract - Update "-I" to "-isystem" in documentation to reflect current behavior. - android_sdk_repository build_tools_version is now optional. The highest installed build-tools will be used if none is specified. - New flag --sandbox_add_mount_pair to specify customized source:target path pairs to bind mount inside the sandbox. - expose proto_library descriptor set to skylark via <dep>.proto.descriptor_set - The `set` constructor is deprecated in favor of `depset` - Autodetect gold linker in cc_configure.bzl - Remove build flag --experimental_j2objc_annotation_processing. It is on by default now. - Set clang's -mwatchos-version-min correctly using the value of --watchos_minimum_os, not --watchos_sdk_version. - singlejar can now create jar files larger than 4GB. - android_sdk_repository and android_ndk_repository now read $ANDROID_HOME and $ANDROID_NDK_HOME if the path attribute is not set. - Removed broken api levels 3, 4 and 5 from Android NDK 12. - Default --android_dynamic_mode to off. - android_sdk_repository no longer requires api_level. If one is not specified, the highest android platform installed will be used. Furthermore, android_sdk's are created for all android platforms installed and can be specified with the --android_sdk flag. - To iterate over or test for membership in a set, prefer using the new to_list() method. E.g., "for x in myset.to_list():", or "print(x in myset.to_list())". Iteration/membership-test on the raw set itself is deprecated. - Remove support for --javawarn; use e.g. --javacopt=-Xlint:all instead
{Fast, Correct} - Choose two
Bazel is a build tool that builds code quickly and reliably. It is used to build the majority of Google‘s software, and thus it has been designed to handle build problems present in Google’s development environment, including:
A massive, shared code repository, in which all software is built from source. Bazel has been built for speed, using both caching and parallelism to achieve this. Bazel is critical to Google's ability to continue to scale its software development practices as the company grows.
An emphasis on automated testing and releases. Bazel has been built for correctness and reproducibility, meaning that a build performed on a continuous build machine or in a release pipeline will generate bitwise-identical outputs to those generated on a developer's machine.
Language and platform diversity. Bazel's architecture is general enough to support many different programming languages within Google, and can be used to build both client and server software targeting multiple architectures from the same underlying codebase.
Find more background about Bazel in our FAQ.