aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Add param file support to sandboxed spawn runners.Gravatar tomlu2018-05-01
| | | | | | | Spawns can contain param files in the form of virtual action inputs. Sandboxed runners must write these prior to execution of the action. RELNOTES: None PiperOrigin-RevId: 194951208
* Wire up future to wait for in NestedSetCodecWithStore.Gravatar janakr2018-04-30
| | | | PiperOrigin-RevId: 194895469
* Allow SkyFunctions to return a sentinel value indicating that all of a ↵Gravatar janakr2018-04-30
| | | | | | | | | | node's in-progress data should be forgotten, and its evaluation should be restarted from scratch, as if it were freshly created/dirtied. To guard against this happening unexpectedly, any such events are passed to a GraphInconsistencyReceiver, which can verify that the SkyFunction is behaving properly. This is the first change in a series to permit action rewinding when it is discovered that a previously generated input file is no longer available. When an action detects that one of its inputs is unusable, it can return this sentinel value, causing it to be re-evaluated from scratch. Follow-up changes will make the node corresponding to the input, and the node corresponding to the action that generated the input, dirty when this happens, causing the upstream action to be re-run, regenerating the desired input. Currently works for builds that do not keep edges, although follow-ups may make this possible for all builds. PiperOrigin-RevId: 194863097
* Add support for reporting an error if android_test.binary_under_test ↵Gravatar cushon2018-04-30
| | | | | | | contains incompatible versions of deps RELNOTES: Add support for reporting an error if android_test.binary_under_test contains incompatible versions of deps PiperOrigin-RevId: 194857840
* Migrate annotations of SkylarkAttr to an interface class.Gravatar cparsons2018-04-30
| | | | | | | This isolates the API from the implementation. RELNOTES: None. PiperOrigin-RevId: 194850527
* Consolidating start/end lib archive expansion Take 2Gravatar Googler2018-04-30
| | | | | | | | Different places in the link logic were in charge of expanding start/end lib archives, causing discrepancies. This CL gets rid of the special iteration in Link.java and makes LibrariesToLinkCollecter solely responsible for mapping static libraries to their object files on the link command l... RELNOTES: Fixing start/end lib expansion for linking. There were many cases where archive files were still being used with toolchains that support start/end lib. This change consolidates the places that make that decision so they can be more consistent. PiperOrigin-RevId: 194847987
* Name LateBoundDefaultApi skylark type.Gravatar cparsons2018-04-30
| | | | | | | This still leaves this type documented until a later time, but it makes the type's name explicitly defined (instead of inferred from the class name) RELNOTES: None. PiperOrigin-RevId: 194838958
* Add ability for serialization to inform the SerializationContext that any ↵Gravatar janakr2018-04-30
| | | | | | remote write should block on the provided future. PiperOrigin-RevId: 194836516
* Headers specified in cc_library.textual_hdrs are passed through objc_libraryGravatar cpeyser2018-04-30
| | | | | | targets to upstream cc_library targets. PiperOrigin-RevId: 194816009
* Change action construction to use built-in param file support.Gravatar tomlu2018-04-30
| | | | | | | | | | | We want to be able to control how and when param files are used, and manual construction of param files prevents this. It should also be less code overall. For this CL, when param files are used is unchanged, their format and encoding is unchanged. The flag name is also unchanged, except in some cases it was changed from (eg.) "--flagfile foo" to "--flagfile=foo". However, the name of the param file is now derived from the primary output of the action (instead of manually controlled). RELNOTES: None PiperOrigin-RevId: 194809530
* repository_cache: touch files on cache hitGravatar Klaus Aehlig2018-04-30
| | | | | | | | ...to mark that the file as used. In this way, the file stamps in the cache can be used to indicate which files are still in use. Change-Id: I4a0f0865112da76476941e487434fffd36c0853a PiperOrigin-RevId: 194804545
* Allow JavaInfo providers without sources or exportsGravatar cushon2018-04-30
| | | | PiperOrigin-RevId: 194799276
* Support ParamFileActionInput in LocalSpawnRunner.Gravatar tomlu2018-04-30
| | | | | RELNOTES: None PiperOrigin-RevId: 194798051
* Change LocationFunction to not extend Function.Gravatar dannark2018-04-30
| | | | | | | This is necessary for subsequent changes to the apply method for diamond splitting, which will require apply() to take more than one argument. But it seems like the only reason LocationFunction ever extended Function was for tests and so this is an improvement on its own. RELNOTES: None PiperOrigin-RevId: 194796136
* Fix typo. "allpath" doesn't exist.Gravatar Googler2018-04-30
| | | | | RELNOTES: none. PiperOrigin-RevId: 194791635
* remote/http: fully read http content on error statusGravatar Jakob Buchgraber2018-04-30
| | | | | | | | | | | | | | | When the http response has a status other than 200 and also has a Content-Length header set, then wait until all content has been received before completing the user promise. In case of any errors, close the channel in order to make sure it's not reused as we don't know what data is left on the wire. Closes #5101. PiperOrigin-RevId: 194787393
* Refactor NestedSet to permit alternate NestedSetStore implementations.Gravatar cpeyser2018-04-30
| | | | PiperOrigin-RevId: 194787067
* Make runfiles usage on Windows more flexible to support remote execution.Gravatar Googler2018-04-30
| | | | | | | | | | | | | | | When trying to find a runfile on Windows: 1. First look for the runfiles MANIFEST and find runfile locations using this if it exists (current behavior). 2. If no MANIFEST file exists, look for runfiles in the runfiles directory (new behavior). As part of this, remove setting RUNFILES_MANIFEST_ONLY for the benefit of test-setup.sh. Instead of telling it what to do, it decides what to do based on the observed state of the world. Launchers still set RUNFILES_MANIFEST_ONLY for the benefit of launched programs, since some may depend on this. Fixes https://github.com/bazelbuild/bazel/issues/4962. RELNOTES: Remote execution works for Windows binaries with launchers. PiperOrigin-RevId: 194785440
* Update android_instrumentation_test docs to reflect the possibility of ↵Gravatar jingwen2018-04-30
| | | | | | | running sandboxed tests, as well note on emulator log location. RELNOTES: None. PiperOrigin-RevId: 194785423
* Add instructions to view graph locally via xdotGravatar Gabriel Staples2018-04-30
| | | | | | | | No one with sensitive data wants to get in the habit of pasting output into web pages online. This is very helpful to those who'd like to generate and view the graphs locally. Closes #4964. PiperOrigin-RevId: 194785337
* Fix broken link.Gravatar Googler2018-04-30
| | | | | | | "Sky query" is a section in this page, not a separate page. RELNOTES: none PiperOrigin-RevId: 194783815
* Set up only one link action for JavaBinary launcher with fissionGravatar Googler2018-04-30
| | | | | | | | | | | | | Change getLauncher to return both a stripped and unstripped launcher binary artifact under fission, instead of invoking getLauncher twice. This was setting up two identical link actions that required later work to filter out the redundant action in filterSharedActionsAndThrowActionConflict. This becomes extremely inefficient under ThinLTO, where each launcher link is actually 1 LTO indexing action, N LTO Backend actions, and 1 native link action. RELNOTES: None PiperOrigin-RevId: 194781580
* Automated rollback of commit dade44dab4a571acc710f0960a3afda0d7b183b3.Gravatar hlopko2018-04-30
| | | | | | | | | | | | | *** Reason for rollback *** Breaks 70k targets in nightly *** Original change description *** CppDebugPackageProvider is useful for more than just C++, so rename it. RELNOTES: None. PiperOrigin-RevId: 194773896
* Fix targets broken by ↵Gravatar laszlocsomor2018-04-30
| | | | | | | https://github.com/bazelbuild/bazel/commit/819bf38d97e6eef3c823bdae3ffcdb013d6d83e3. RELNOTES: none PiperOrigin-RevId: 194770938
* c++,runfiles: move runfiles libraryGravatar Laszlo Csomor2018-04-30
| | | | | | | | | | | | | | | | Move the half-done C++ runfiles library to `//tools/cpp/runfiles`. (The Python and Bash runfiles libraries are already under `//tools/<language>/runfiles`.) See https://github.com/bazelbuild/bazel/issues/4460 Change-Id: I1006f7f81462ea0e4b1de1adcdba89e386d4f9e7 Closes #5107. Change-Id: I1006f7f81462ea0e4b1de1adcdba89e386d4f9e7 PiperOrigin-RevId: 194763392
* runfiles,Bash: bugfix in absolute path checkingGravatar Laszlo Csomor2018-04-30
| | | | | | | | | | | | Export the variable which stores the regex pattern that matches absolute paths, otherwise this variable won't exist when we call rlocation from other scripts (that are executed, not sourced). See https://github.com/bazelbuild/bazel/issues/4460 Change-Id: Idb35ef1bc8489ee53b36b4fe21e1242ea85eeb4c PiperOrigin-RevId: 194761352
* Release 0.13.0 (2018-04-30)Gravatar Bazel Release System2018-04-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Baseline: fdee70e6e39b74bfd9144b1e350d2d8806386e05 Cherry picks: + f083e7623cd03e20ed216117c5ea8c8b4ec61948: windows: GetOutputRoot() returns GetHomeDir() + fa36d2f48965b127e8fd397348d16e991135bfb6: Automated rollback of commit 4465dae23de989f1452e93d0a88ac2a289103dd9. + 4abd2babcc50900afd0271bf30dc64055f34e100: Add error message on empty public resources + 2c957575ff24c183d48ade4345a79ffa5bec3724: test-setup: remove leading "./" from test name Incompatible changes: - Remove //tools/defaults:android_jar. Use @bazel_tools//tools/android:android_jar instead. - The flag --incompatible_show_all_print_messages is removed. Messages generated by `print` statements from any package will be displayed as DEBUG messages. - The --incompatible_disallow_uncalled_set_constructor flag is no longer available, the `set` constructor` is completely removed from Skylark. Use `depset` instead. - Variables PACKAGE_NAME and REPOSITORY_NAME are deprecated in favor of functions `package_name()` and `repository_name()`. https://docs.bazel.build/versions/master/skylark/lib/native.html#p ackage_name - BUILD_TIMESTAMP now contains seconds (and not milliseconds) since the epoch. New features: - Strings have a new .elems() method, that provides an iterator on the characters of the string. - Now you can access three functions in windows_cc_configure.bzl by: load("@bazel_tools/tools/cpp:windows_cc_configure.bzl", "<function_name>") Important changes: - CppRules: Unified action_configs for static libraries - Remove support for blaze dump --vfs. It is no longer meaningful. - Enable dependency checking for aar_import targets. - internal_bootstrap_hack has been deprecated and removed. - Properly handle tree artifacts on the link command line coming from a cc_library dependency. - Allow C++ features to make proto_library emit smaller C++ code - The 'j2objc' configuration fragment is exposed to Skylark. - Remove the default content of the global bazelrc. - In int() function, do not auto-detect base if input starts with '0'. - Users can now pass --experimental_shortened_obj_file_path=true to have a shorter object file path, the object file paths (and all other related paths) will be constructed as following: If there's no two or more source files with the same base name: <bazel-bin>/<target_package_path>/_objs/<target_name>/<source_base _name>.<extension> otherwise: <bazel-bin>/<target_package_path>/_objs/<target_name>/N/<source_ba se_name>.<extension> N = the file?s order among the source files with the same basename, starts from 0. - Move (c/cxx)opts from legacy_compile_flags to user_compile_flags - CppRules: Remove optional_*_flag fields from CROSSTOOL, they are not used, and could be expressed using features. - Introduce --incompatible_disable_objc_provider_resources to turn off all resource-related fields of the Objc provider. - Removed the statement of "What does Bazel support?" as it's limiting/misleading. Added supported host OSes to "multi-platform" paragraph. - android_library AAR output now contains proguard.txt - Bazel now displays information about remote cache hits and execution strategies used in its UI after every build and test, and adds a corresponding line "process stats" to BuildToolLogs in BEP. - Print correct build result for builds with --aspects flag. - android_binary.manifest_merger is no longer supported.
* Automated rollback of commit fd9a0958a989cac1f08f15ab5643728469f9824e.Gravatar hlopko2018-04-30
| | | | | RELNOTES: None. PiperOrigin-RevId: 194746481
* Remove the on-disk caching of Xcode locations.Gravatar jmmv2018-04-28
| | | | | | | | | | | | | | | | | | | | | | | There is no need for the cache to be on disk. Originally, there was a desire to share this cache with other tools... but this never happened. And, actually, because Bazel is in control of what it runs, it can just inject the "cached" values into those tools via flags. Instead, just store the cache in-memory. This avoids having to open and read the cache on every single action that is locally executed on a Mac. Results when building a large iOS app from a clean slate show up to a 1% wall time improvement on my Mac Pro 2013 and a reduction in the variance of the measurements. This change also gets rid of the OS check from the action execution's critical path. There is not much use in checking this: if we instantiate this by mistake, the actual calls will fail. But sometimes we want to actually run this code on non-macOS systems (e.g. for unit-testing with mocked tools), so we should allow that. And this change also ensures that XcodeLocalEnvProviderTest builds and runs... RELNOTES: None. PiperOrigin-RevId: 194681802
* Adding a check to verify the usage of the migration tag for the SkylarkGravatar Googler2018-04-27
| | | | | | | migration, when a flag is enabled. RELNOTES: PiperOrigin-RevId: 194630925
* Automated rollback of commit 52356e76a02067e9dc79b469e9b97bd017d077ab.Gravatar jingwen2018-04-27
| | | | | | | | | | | *** Reason for rollback *** Breaks Bazel CI pipeline (pre and postsubmits) on all platforms: https://buildkite.com/bazel/bazel-bazel/builds/1785 Fixes https://github.com/bazelbuild/bazel/issues/5113 RELNOTES: None. PiperOrigin-RevId: 194620643
* Preemptively propagate DexArchiveAspect to skylark _toolchain attributesGravatar kmb2018-04-27
| | | | | | This allows incremental dexing to work with any Skylark rules that have implicit runtime dependencies. Rules should define a _toolchain attribute pointing to a Skylark toolchain. The toolchain should list all implicit runtime dependencies in a "runtime" attribute. PiperOrigin-RevId: 194611124
* Output message when the build configuration changes.Gravatar tomlu2018-04-27
| | | | | RELNOTES: None PiperOrigin-RevId: 194607978
* Change action construction to use built-in param file support.Gravatar tomlu2018-04-27
| | | | | | | | | | | We want to be able to control how and when param files are used, and manual construction of param files prevents this. It should also be less code overall. For this CL, when param files are used is unchanged, their format and encoding is unchanged. The flag name is also unchanged, except in some cases it was changed from (eg.) "--flagfile foo" to "--flagfile=foo". However, the name of the param file is now derived from the primary output of the action (instead of manually controlled). RELNOTES: None PiperOrigin-RevId: 194607698
* Automatic code cleanup.Gravatar Googler2018-04-27
| | | | PiperOrigin-RevId: 194602500
* Fix a Bazel test.Gravatar cnsun2018-04-27
| | | | | RELNOTES:none. PiperOrigin-RevId: 194598332
* Add a silence mode to the deps checker. Now the checker can be used to dumpGravatar cnsun2018-04-27
| | | | | | | jdeps proto without emitting any warning or error. RELNOTES: none. PiperOrigin-RevId: 194593178
* Use TransitionResolver to get top level transitions in BuildView.Gravatar mstaib2018-04-27
| | | | | | | | | | This brings BuildView's test configured target methods in closer to the real thing, and makes tests behave better. In particular, it enables trimming transitions to work. RELNOTES: None. PiperOrigin-RevId: 194586030
* sandbox: Add support for running actions inside Docker containers.Gravatar philwo2018-04-27
| | | | | | | RELNOTES: Bazel now supports running actions inside Docker containers. To use this feature, run "bazel build --spawn_strategy=docker --experimental_docker_image=myimage:latest". PiperOrigin-RevId: 194582691
* Allow skylark rule definitions to advertise providers that targets of the ↵Gravatar cparsons2018-04-27
| | | | | | | | | | | rule must propagate This allows native aspects which specifically require advertised providers to be applied to skylark rules. Implementation to allow aspects to explicitly declare provider requirements will come later. RELNOTES: Skylark rule definitions may advertise providers that targets of the rule must propagate. PiperOrigin-RevId: 194581466
* Ensure that all aspects which (even very indirectly) callGravatar jcater2018-04-27
| | | | | | | CppHelper.getToolchainFromPlatformConstraints declare that they require a cc toolchain. PiperOrigin-RevId: 194580065
* Ensure that all rules which (even very indirectly) callGravatar jcater2018-04-27
| | | | | | | CppHelper.getToolchainFromPlatformConstraints declare that they require a cc toolchain. PiperOrigin-RevId: 194567799
* Ensure that all rules which (even very indirectly) callGravatar jcater2018-04-27
| | | | | | | CppHelper.getToolchainFromPlatformConstraints declare that they require a cc toolchain. PiperOrigin-RevId: 194561293
* Don't build Error Prone plugin during bootstrappingGravatar cushon2018-04-27
| | | | | | Follow-up to https://github.com/bazelbuild/bazel/commit/bdb75bba00dbe97e9bb99db04844096f135f59ad PiperOrigin-RevId: 194559167
* Do not add flags from linking_mode_flags section when the toolchain definesGravatar hlopko2018-04-27
| | | | | | | | | | | | | | | | corresponding features. Therefore when both linking_mode_flags { mode: DYNAMIC } and feature { name: "dynamic_linking_mode" } are provided, bazel will only take flags from the feature. The same applies to mode: STATIC and static_linkin_mode feature respectively. mode: MOSTLY_STATIC_LIBRARIES is covered under dynamic_linking_mode for action "c++-link-dynamic-library". mode: FULLY_STATIC is handled separately. This is needed to provide a way of incremental migration towards legacy-flags-free crosstool. RELNOTES: None. PiperOrigin-RevId: 194556688
* Reduce sensitivity of certain tests to exact configurations.Gravatar mstaib2018-04-27
| | | | | | | | | | Because trimming will impact these tests, rephrasing them so that they don't depend on the exact configuration (but instead the actual properties they're trying to test) allows them to pass when the trimming transition is in place. RELNOTES: None. PiperOrigin-RevId: 194552473
* Widen visibility for SkyframeExecutor.setSkylarkSemanticsGravatar mschaller2018-04-27
| | | | | | | | Allows subclasses to use different strategies for injecting Skylark semantics. RELNOTES: None. PiperOrigin-RevId: 194546199
* Add equality support to composing transitions.Gravatar mstaib2018-04-27
| | | | | RELNOTES: None. PiperOrigin-RevId: 194540141
* Remove unused bootstrap dependenciesGravatar Liam Miller-Cushon2018-04-27
| | | | | | | | Follow-up to bdb75bba00dbe97e9bb99db04844096f135f59ad Change-Id: I325ed4bf4aed5703f57d1f688d0007394b5b1d53 Closes #5105.
* Avoid creating a Composing*Transition if one of the transitions is NoTransition.Gravatar mstaib2018-04-27
| | | | | RELNOTES: None. PiperOrigin-RevId: 194536202