@bazel-io bazel-io released this May 26, 2017 · 7368 commits to master since this release

Assets 53

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
    google/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
  • 9261809:
    Remove process-tools.cc which I forgot to delete during the last
  • 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
    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
  • 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
  • More stable naming scheme for lambda classes in desugared android
  • 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
  • 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
  • Evaluation of commands on TargetsBelowDirectory patterns
    (e.g. //foo/...) matching packages that fail to load now report
    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
    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
  • 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
  • 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
    resources as compressed inside the APK.
  • Removed --experimental_use_jack_for_dexing and libname.jack
    output of
  • blaze canonicalize-flags now takes a --show_warnings flag
  • Changing --invocation_policy will no longer force a server
  • 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:
  • 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
    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
  • 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.