0.5.0
Release 0.5.0 (2017-05-26)
Note: this release contains a bug in the compiler detection on macOS and
requires Xcode and the iOS tooling to be installed (corresponding issue #3063). If you had
Command Line Tools installed, you also need to switch to Xcode using
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
.
Baseline: f3ae88e
Cherry picks:
- c58ba09:
Release to GCS: put the final release in its own directory - 0acead4:
Update protobuf to latest master at a64497c and apply
@laszlocsomor's latest changes from
protocolbuffers/protobuf#2969 on top of it. - d0242ce:
Make symlinks consistent - d953ca8:
Clean VanillaJavaBuilder output directories - 755669f:
Pass all the environment variable to Bazel during bootstrapping - 6f04166:
Do not mark the JDK7 installer -without-jdk-installer - 7205611:
Fix #2958: Installer should not overwrite bazelrc - 511c35b:
Bootstrap: move the fail function to the top - 8470be1:
Clean up javac and Error Prone targets - 4a404de:
Update javac version to 9-dev-r4023-2 - 36ce4b4:
Update javac version to 9-dev-r4023-2 - 38949b8:
Migrate off versioned javac and Error Prone targets - 1a57d29:
Re-enabling passing -sourcepath via javacopts. - eb565f4:
Make make sure that msys build actually builds msys version - 39f328c:
Fix typo. Also do not override host_cpu for msvc. - 6248028:
Select correct JDK for windows_msys - c4f271d:
Automated g4 rollback of commit
3e5edaf. - 9261809:
Remove process-tools.cc which I forgot to delete during the last
rollback. - baca6e4:
Fix #2982: Bazel installer should not check for installed JDK if
using a bundled JDK. - 866ecc8:
Disable msys path conversion on Windows. - cc21998:
Rollforward #2 of: Basic open-source crosstool to support
targeting apple platform types. - 0f0ccc4:
Escape % in strings that will appear in Crosstool - 3b08f77:
Adding feature for linking C Run-Time library on Windows
Incompatible changes:
- Bazel's Linux sandbox no longer mounts an empty tmpfs on /tmp,
instead the existing /tmp is mounted read-write. If you prefer
to have a tmpfs on /tmp for sandboxed actions for increased
hermeticity, please use the flag --sandbox_tmpfs_path=/tmp. - Converting artifacts to strings and printing them now return
"File" instead of "Artifact" to be consistent with the type name. - The return type of depset.to_list() is now a list rather than a
frozen list. (Modifying the list has no effect on the depset.) - Bazel now prints logs in single lines to java.log
- --use_dash, --dash_url and --dash_secret are removed.
- Remote repositories must define any remote repositories they
themselves use (e.g., if @x//:foo depends on @y//:bar, @y must be
defined
in @x's WORKSPACE file). - objc_xcodeproj has been removed, use tulsi.bazel.build instead.
New features:
- If grte_top is a label, it can now follow non-configurable
redirects. - Optional coverage_files attribute to cc_toolchain
- "query --output=build" now includes select()s
- Raw LLVM profiles are now supported.
Important changes:
- Automatically generate Proguard mapping when resource shrinking
and Proguard are enabled. - New rules in Bazel: proto_library, java_lite_proto_library,
java_proto_library and cc_proto_library - Activate the "dead_strip" feature if objc binary stripping is
enabled. - More stable naming scheme for lambda classes in desugared android
code - Convert --use_action_cache to a regular option
- Per-architecture dSYM binaries are now propagated by
apple_binary's AppleDebugOutputsProvider. - Avoid factory methods when desugaring stateless lambdas for
Android - desugar calls to Objects.requireNonNull(Object o) with
o.getClass() for android - Add an --copy_bridges_from_classpath argument to android
desugaring tool - Change how desugar finds desugared classes to have it working on
Windows - Evaluation of commands on TargetsBelowDirectory patterns
(e.g. //foo/...) matching packages that fail to load now report
more
detailed error messages in keep_going mode. - Allow to have several inputs and outputs
- Repository context's execute() function can print stdout/stderr
while running. To enable, pass quiet=False. - Bazel can now be built with a bundled version of the OpenJDK.
This makes it possible to use Bazel on systems without a JDK, or
where
the installed JDK is too old. - The --jobs flag now defaults to "auto", which causes Bazel to
use a reasonable degree of parallelism based on the local
machine's
capacity. - Bazel benchmark (perf.bazel.build) supports Java and Cpp targets.
- no factory methods generated for lambda expressions on android
- The Linux sandbox no longer changes the user to 'nobody' by
default, instead the current user is used as is. The old behavior
can be
restored via the --sandbox_fake_username flag. - /tmp and /dev/shm are now writable by default inside the
Linux sandbox. - Bazel can now use the process-wrapper + symlink tree based
sandbox implementation in FreeBSD. - turn on --experimental_incremental_dexing_error_on_missed_jars by
default. - All android_binarys are now signed with both Apk Signature V1 and
V2. See https://source.android.com/security/apksigning/v2.html
for more details. - Windows MSVC wrappers: Not filtering warning messages anymore,
use --copt=-w and --host_copt=-w to suppress them. - A downloader bug was fixed that prevented RFC 7233 Range
connection resumes from working with certain HTTP servers - Introduces experimental android_device rule for configuring and
launching Android emulators. - For boolean flags, setting them to false using --no_<flag_name>
is deprecated. Use --no<flag_name> without the underscore, or
--<flag_name>=false instead. - Add --experimental_android_compress_java_resources flag to store
java
resources as compressed inside the APK. - Removed --experimental_use_jack_for_dexing and libname.jack
output of
android_library. - blaze canonicalize-flags now takes a --show_warnings flag
- Changing --invocation_policy will no longer force a server
restart. - Bazel now supports Android NDK14.
- android_binary multidex should now work without additional flags.
- Use action_config in crosstool for static library archiving,
remove ar_flag. - new option for bazel canonicalize-flags, --canonicalize_policy
- Use action_config in crosstool for static library archiving,
remove ar_flag. - android_library exports_manifest now defaults to True.
- Fix select condition intersections.
- Adds a --override_repository option that takes a repository
name and path. This forces Bazel to use the directory at that path
for the repository. Example usage:
--override_repository=foo=/home/user/gitroot/foo
. - fix idempotency issue with desugaring lambdas in interface
initializers for android - --experimental_android_use_singlejar_for_multidex is now a no-op
and will eventually be removed. - Every local_repository now requires a WORKSPACE file.
- Remove jack and jill attributes of the android_sdk rule.
- Add Skylark stubs needed to remove sysroot from CppConfiguration.
- Desugar try-with-resources so that this language feature is
available
to deveces with API level under 19. - The flag --worker_max_retries was removed. The
WorkerSpawnStrategy no longer retries execution of failed Spawns,
the reason being that this just masks compiler bugs and isn't
done for any other execution strategy either. - Bazel will no longer gracefully restart workers that crashed /
quit, instead this triggers a build failure. - android_ndk_repository now creates a cc_library
(@androidndk//:cpufeatures) for the cpufeatures library that is
bundled in the Android NDK. See
https://developer.android.com/ndk/guides/cpu-features.html for
more details. - 'output_groups' and 'instrumented_files' cannot be specified in
DefaultInfo. - You can increase the CPU reservation for tests by adding a
"cpu:" (e.g. "cpu:4" for four cores) tag to their rule in a
BUILD file. This can be used if tests would otherwise overwhelm
your system if there's too much parallelism. - Deprecate use_singlejar_for_proguard_libraryjars and force
behavior to always on.
Notice: Bazel installers contain binaries licensed under the GPLv2 with
Classpath exception. Those installers should always be redistributed along with
the source code.
Some versions of Bazel contain a bundled version of OpenJDK. The license of the
bundled OpenJDK and other open-source components can be displayed by running
the command bazel license
. The vendor and version information of the bundled
OpenJDK can be displayed by running the command bazel info java-runtime
.
The binaries and source-code of the bundled OpenJDK can be
downloaded from our mirror server.
Security: All our binaries are signed with our
public key 48457EE0.