diff options
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r-- | CHANGELOG.md | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d07101093..5869daaab3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,242 @@ +## Release 0.7.0 (2017-10-18) + +``` +Baseline: 5cc6246d429f7d9119b97ce263b4fd6893222e92 + +Cherry picks: + + e79a1107d90380501102990d82cbfaa8f51a1778: + Windows,bootstrapping: fix build_windows_jni.sh +``` + +Incompatible changes: + + - The --output=location flag to 'bazel query' cannot be used with + query expressions that involve the 'buildfiles' or 'loadfiles' + operators. This also applies to 'genquery' rules. + - Operators for equality, comparison, 'in' and 'not in' are no + longer associative, + e.g. x < y < z is now a syntax error. Before, it was parsed + as: (x < y) < z. + - In strings, octal sequences greater than \377 are now forbidden + (e.g. "\\600"). + Previously, Blaze had the same behavior as Python 2, where + "\\450" == "\050". + - Using tabulation for identation is now fobidden in .bzl files + - `load` is now a language keyword, it cannot be used as an + identifier + - lvalues must have define at least one variable (i.e. we forbid + `[] = f()`). + - Fixed a bug whereby multiple load() statements could appear on + the same line + - -extra_checks:off is no longer supported; use + -XepDisableAllChecks instead + - java_common.java_toolchain_attr is removed. Depend on the + java_toolchain_alias() rule to accomplish the same thing. + - cc_common.cc_toolchain_attr and java_common.java_runtime_attr are + not supported anymore and were replaced with the + cc_toolchain_alias() and java_runtime_alias() rules. + - Noop flag --deprecated_generate_xcode_project deleted. + - Objects in Skylark are converted to strings in a more descriptive + and less harmful way (they don't leak information that shouldn't + be accessed by Skylark code, e.g. nondeterministic memory addresses + of objects). + - `set` is deprecated in BUILD and .bzl files, please use `depset` + instead. Ordering names have also been changed, please use "default", + "postorder", "preorder", and "topological" instead of "stable", + "compile", "naive_link", and "link" correspondingly. + - Integer overflow (on signed 32 bit numbers) in BUILD/bzl files is + an error. + - Keyword-only syntax in a function definition is now forbidden + e.g. `def foo(a, *, b)` or `def foo(a, *b, c)` + - --incompatible_comprehension_variables_do_not_leak defaults to + "true." + Iteration variable becomes inaccessible after a list/dict + comprehension. + - @bazel_tools//tools/build_defs/docker:docker.bzl is no longer + available, please see https://github.com/bazelbuild/rules_docker. + +New features: + + - Zipped LLVM profiles are now supported. + - LIPO maps to ThinLTO for LLVM builds. + - Change to handle LLVM FDO zipped profile contents correctly. + - Do not disable fully dynamic linking with ThinLTO when invoked + via LIPO options. + - There is now a 'siblings' query function. See the query + documentation for more details. + - Added the print_action command, which outputs the + actions needed to build a given target in the form of an + ExtraActionSummary proto in text format. + - android_binary now supports proguard_apply_dictionary to specify + a custom dictionary to use for choosing names to obfuscate + classes and members to. + +Important changes: + + - Windows: bazel clean --expunge works + - First argument of 'load' should be a label. Path syntax is + deprecated (label should start with '//' or ':'). + - Octal prefix '0' is deprecated in favor of '0o' (use 0o777 + instead of 0777). + - The extension_safe attribute of apple_binary no longer validates + transitive dependencies are compiled against extension_safe APIs. + - Parentheses around the tuple are now mandatory in [a for b in c + if 1, 2] + - Adjust the thresholds for --test_verbose_timeout_warnings so that + it can recommending timeout increases and won't recommend + timeouts that are too close to the actual timeout. + - Iterating on a `depset` object is deprecated. If you need an + iterable, call the `.to_list()` method first. + - Bazel now uses tools from action_configs in Crosstool by default + (as oposed to using top level tools). + - Incremental dexing errors on combination of --multidex=off and + either --main-dex-list or --minimal-main-dex. + - When using the dictionary literal syntax, it is now an error to + have duplicated keys (e.g. {'ab': 3, 'ab': 5}). + - New property on android_sdk: aapt2 + Choose the version of aapt on android_binary + - Add idl_preprocessed attribute to android_library, so that + preprocessed aidl files can be passed to android_library for + compiling + - Bazel's remote_worker backend for remote execution supports + sandboxing on Linux now. Check + https://github.com/bazelbuild/bazel/blob/master/src/tools/remote_w + orker/README.md for details. + - Allows flags that expand to take values. + - Make querying attributes formed by selector lists of list types + more efficient by no longer listing every possible combination of + attribute value but by more compactly storing the possible values + of the list. + - writing build events to a file is no longer experimental + - set --rewrite_calls_to_long_compare to false by default. + - ObjC and C++ coverage feature is unified under name 'coverage' + - Enable --incremental_dexing for Android builds by default. Note + that some dexopts are incompatible with incremental dexing, + including --force-jumbo. + - Evaluation will soon use checked arithmetics and throw an error + instead of overflow/underflow. + - Implicit iteration in the CROSSTOOL has been removed, use + explicit 'iterate_over' message. + - Add option for Android specific grte_top + - Crosstool patches are only applied if the toolchain doesn't define + 'no_legacy_features' feature. + - 'platform_type' is now a mandatory attribute on apple_binary and + apple_static_library rules. + If this change breaks your build, feel free to add platform_type + = 'ios' to any apple_binary and apple_static_library + targets in your project, as this was the previous default + behavior. + - Remove apple_watch2_extension build rule. Users should be using + the skylark watchos_application and watchos_extension rules. + https://github.com/bazelbuild/rules_apple has details. + - Check stderr to detect if connected to a terminal. Deprecate + --isatty. + - Commands that shut down the server (like "shutdown") now ensure + that the server process has terminated before the client process + terminates. + - Remove apple_watch1_extension and apple_watch_extension_binary + rules. Users should be using the skylark watchos_application and + watchos_extension rules. + https://github.com/bazelbuild/rules_apple has details. + - Windows: Wrapper-less CROSSTOOL becomes default now. + set USE_MSVC_WRAPPER=1 if you still want to use wrapper script. + - Ignore --glibc in the Android transition. + - Remove --experimental_android_use_singlejar_for_multidex. + - nocopts now also filter copts + - 'strip' action is now configured via feature configuration + - The Build Event Service (BES) client now properly supports + Google Applicaton Default Credentials. + - Flags from action_config get added first to the command line + first, before the flags from features. + - update dexing tools to Android SDK 26.0.1 + - Bazel Android support now requires build-tools 26.0.1 or later. + - `bazel info output_path` no longer relies on the root directory + filename being equal to the workspace name. + - The `print` function now prints debug messages instead of + warnings. + - speedup of incremental dexing tools + - --announce_rc now controls whether bazelrc startup options are + printed to stderr. + - Removing a few unused objc_provider keys. + - Improved logging when workers have to be restarted due to its + files having changed. + - Top-level `if` statements are now forbidden. + - Java protos are compiled to Java 7 bytecode. + - All Android builds now use the desugar tool to support some Java + 8 features by default. To disable, use the --nodesugar_for_android flag. + - Skylark-related options may now appear as "common" command + options in the .bazelrc + - Python is now required to build bazel. + - New --build_runfile_manifests flag controls production of + runfiles manifests. + - Enable debug info for Java builds + - Allow java_lite_proto_library in the deps of android rules. + - .so files in APKs will be memory-page aligned when + android_binary.nocompress_extensions contains ".so" and + --experimental_android_use_nocompress_extensions_on_apk is + specified. + - Skylark providers can specify allowed fields and their + documentation. + - Support ctx.actions.args() for more efficient Skylark command + line construction. + - The remote HTTP/1.1 caching client (--remote_rest_cache) now + distinquishes between action cache and CAS. The request URL for + the action cache is prefixed with 'ac' and the URL for the CAS + is prefixed with 'cas'. + - `JavaInfo` is a preferred alias to `java_common.provider`. + - J2ObjC version updated to 2.0.3. + - A new Java coverage implementation is available. Makes possible + coverage for Skylark JVM rules. + - Make proguard_apply_dictionary also apply to class and package + obfuscation, not just class members. + - android_binary.nocompress_extensions now applies to all files in + the APK, not just resources and assets. + - The apple_genrule rule that is distributed with Bazel has been + deleted. Users who wish to use genrules with Xcode's + DEVELOPER_DIR set should use the rules in + https://github.com/bazelbuild/rules_apple instead. + - The swift_library rule that is distributed with Bazel has been + deleted. Users who wish to compile Swift should use the rules in + https://github.com/bazelbuild/rules_apple instead. + - The Build Event Protocol's File.uri field is now properly + encoded according to RFC2396. + - Deprecated: Using the android_library.deps attribute to + implicitly export targets to dependent rules. If your code is + using this feature, Bazel will raise a warning. To fix, please + use android_library.exports to explicitly specify exported + targets. Run with + --experimental_allow_android_library_deps_without_srcs=false to + ensure forward compatibility when this feature is removed in a + future release. + - java_common.create_provider is now supported with creating ijars + by default. This introduces incompatibilities for existing users. + Please set use_ijar=False if you don't want to use ijars. + - Tests can now write files to TEST_UNDECLARED_OUTPUTS_DIR and + TEST_UNDECLARED_OUTPUTS_ANNOTATIONS_DIR and these will be + reflected under bazel-testlogs. + - remove unused --host_incremental_dexing flag + - Stop using --undefined dynamic_lookup in Apple links. Enables + unresolved symbol errors. + - All test output files included for cached, uncached, and multiple + attempt tests. + - Android rules no longer restrict the manifest file to be named + "AndroidManifest.xml". + - Boolean flag values will now get normalized to 1 or 0 in + canonicalize-flags output. + - added experimental --use_new_category_enum to the help command to + output options grouped by the new type of category. + - Expose output jars and jdeps in java_common.provider, when + available. + - android_library targets are no longer allowed to use deps to + export targets implicitly; please use android_library.exports + instead. + - New depset API + - apple_binary and apple_static_library no longer support + compilation attributes such as 'srcs'. If this breaks any + existing targets, you may migrate all such attributes to a new + objc_library target and depend on that objc_library target via + the 'deps' attribute of apple_binary or apple_static_library. + ## Release 0.6.1 (2017-10-05) ``` @@ -1818,3 +2057,4 @@ Initial release. + |