aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
Commit message (Collapse)AuthorAge
* Ensure that shutdown commands end the server process before completionGravatar mschaller2017-07-12
| | | | | | | | | | | | | | | | | | | | This change ensures that the server process is terminated before the client process terminates, when evaluating a command that shuts down the server. When completing such a command, the server communicates to the client that the server will terminate itself by setting a termination_expected bit in the final RunResponse message. The client then waits up to 60s for the server process to actually terminate. If it does not, then the client SIGKILLs the server. Also makes the gRPC server stop accepting new commands before the shutdown command completes. Drive-by fix to comments on Search{Un,Null}aryOption. RELNOTES: Commands that shut down the server (like "shutdown") now ensure that the server process has terminated before the client process terminates. PiperOrigin-RevId: 161537480
* Resolve references to @main-repo//foo to //fooGravatar kchodorow2017-07-11
| | | | | | | | | | | | | | | | Bazel was creating an dummy external repository for @main-repo, which doesn't work with package paths and will cause conflicts once @main-repo//foo and //foo refer to the same path. This adds a "soft pull" option to WorkspaceNameFunction: it can either parse the entire WORKSPACE file to find the name or just the first section. That way PackageLookupFunction can find the repository name without causing a circular dependency. This should have no change of behavior and is already tested in https://github.com/bazelbuild/bazel/blob/master/src/test/shell/bazel/workspace_test.sh#L176. PiperOrigin-RevId: 161536466
* ConfigFeatureFlagProvider should be declared provider only.Gravatar dslomov2017-07-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 161535034
* Expose current java_toolchain target to Skylark.Gravatar elenairina2017-07-11
| | | | | | | | This value can be passed in Skylark to java_common.compile#java_toolchain in order to avoid incompatibility issues when the value of --java_toolchain uses a different Java version. PiperOrigin-RevId: 161528114
* Add register_toolchains function to the WORKSPACE for registering toolchains ↵Gravatar John Cater2017-07-11
| | | | | | | | | to use. Part of #2219. Change-Id: Id6dfe6ec102f609bb19461242a098bf977be29ae PiperOrigin-RevId: 161527986
* MakeVariableProvider should be declared provider only.Gravatar dslomov2017-07-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 161527470
* Make some objects SkylarkValuesGravatar vladmos2017-07-11
| | | | | | | | | Skylark's Printer.BasePrinter doesn't guarantee it will call `.toString` on objects of unknown types, and in the future that won't be the case anymore. In order to keep their current string representations objects should implement the SkylarkValue interface by providing an explicit implementation of `repr`. PiperOrigin-RevId: 161526182
* Fix options parsing javadoc typo.Gravatar gregce2017-07-11
| | | | PiperOrigin-RevId: 161520675
* Add a cc_toolchain_alias and java_runtime_alias rules so that e.g. genrules ↵Gravatar lberki2017-07-11
| | | | | | | | | | | can depend on the C++ toolchain/Java runtime being used. The naive way to do this would be via @bazel_tools//, except that that does not take configuration transitions into account and e.g. will be the same in the host and the target configurations even if different toolchains are used. Eventually, this will be supplanted by the toolchain selection mechanism. However, that is not live yet and the migration cost this will incur is not a lot; just replacing the one single instance of these undocumented rules with the reference to the toolchain type. RELNOTES: None. PiperOrigin-RevId: 161519229
* Fold OptionUsageRestrictions into OptionDocumentationCategory and ↵Gravatar ccalvarin2017-07-11
| | | | | | | | | | OptionMetadataTags. These are similar, no need to have both fields. Removing the "DOCUMENTED" default, the absence of UNDOCUMENTED will be used instead. Since requiring a documentation category for undocumented options doesn't make sense, list that as one of the OptionDocumentationCategories, but list HIDDEN and INTERNAL as part of OptionMetadata. These options should list UNDOCUMENTED as their category. PiperOrigin-RevId: 161515674
* Pass an EventHandler to OutputService.startBuildGravatar ulfjack2017-07-11
| | | | PiperOrigin-RevId: 161512574
* BuildEventWithConfiguration: represent configurations as BuildEventGravatar Klaus Aehlig2017-07-11
| | | | | | | | | | | From a BEP point of view, the only interface of a configuration we care about is its BuildEvent structure. Represent it as such, so that we can move this class to the rest of the buildeventstream module. This is a prerequisite for ActionOwners refering to configurations in the BEP. Change-Id: I6d1c1bf2951aac91607e83cad664553cd6620df8 PiperOrigin-RevId: 161510049
* Make information about the Java runtime in use available in Skylark using a ↵Gravatar lberki2017-07-11
| | | | | | | dependency. RELNOTES: None. PiperOrigin-RevId: 161504700
* Update marker version number to 3Gravatar pcloudy2017-07-11
| | | | | | | Fixed https://github.com/bazelbuild/bazel/issues/3344#issuecomment-314167833 RELNOTES: None PiperOrigin-RevId: 161500109
* Add Make variables to java_runtime and java_runtime_suite .Gravatar lberki2017-07-11
| | | | | | | This is necessary so that Make variables are not accessed from BuildConfiguration, which is in turn necessary so that we can forego package loading during configuration creation (currently we need to parse the java_runtime_suite / java_runtime rules to create the Jvm fragment) RELNOTES: None. PiperOrigin-RevId: 161496779
* Make CcToolchainProvider#equals() be the object identity.Gravatar lberki2017-07-11
| | | | | | | That's the only way to provide sane behavior both in Skylark and in Java. RELNOTES: None. PiperOrigin-RevId: 161496153
* Automated rollback of commit 458990b0c155130e242117e2bfc5ebfdf787d2e2.Gravatar Googler2017-07-11
| | | | | | | | | *** Reason for rollback *** A backwards incompatible change for CLI. RELNOTES: Rollback of https://github.com/bazelbuild/bazel/commit/458990b0c155130e242117e2bfc5ebfdf787d2e2 PiperOrigin-RevId: 161457646
* Remove dynamic configs dep on the static transition table.Gravatar gregce2017-07-11
| | | | PiperOrigin-RevId: 161432622
* Make SkylarkValue instances mutable by defaultGravatar vladmos2017-07-11
| | | | | | | | | | Simplify the code by providing the default implementation of `SkylarkValue$isImmutable` that always returns false. All objects are considered mutable unless their `isImmutable` method is overridden. This change doesn't affect the current behavior. PiperOrigin-RevId: 161422029
* Never use shell quoting in turbine params filesGravatar cushon2017-07-11
| | | | PiperOrigin-RevId: 161415544
* Remove extra commented-out line.Gravatar jcater2017-07-11
| | | | PiperOrigin-RevId: 161414631
* Make native declared providers type-safe.Gravatar dslomov2017-07-10
| | | | | RELNOTES: None. PiperOrigin-RevId: 161395570
* Update documentation on ctx.actions.declare_directory and File.Gravatar dslomov2017-07-10
| | | | | | | Fixes #3345. RELNOTES: None. PiperOrigin-RevId: 161395466
* Fix memory regression from CL/160891204.Gravatar tomlu2017-07-10
| | | | | | | | | Java compile actions create unnecessary wrapper objects around a shared constant object. We can share the ActionEnviroment between these actions. In the general spawn case there will be a lot of empty action environments. Make sure that these are shared too. RELNOTES: None PiperOrigin-RevId: 161389056
* Skylark, docs: fix docs of Label.relative(name)Gravatar laszlocsomor2017-07-10
| | | | | | | | | | It appeared in the docs that the function had no argument. Fixes https://github.com/bazelbuild/bazel/issues/3339 RELNOTES: none PiperOrigin-RevId: 161388878
* BEP: Report test warningsGravatar aehlig2017-07-10
| | | | | | | | Also report test warnings, if any, for completed test actions in the build event protocol. RELNOTES: None PiperOrigin-RevId: 161384061
* Make jvm_runtime.java_home expand Make variables.Gravatar lberki2017-07-10
| | | | | RELNOTES: None. PiperOrigin-RevId: 161383469
* Remove the functionality from alias() to point nowhere.Gravatar lberki2017-07-10
| | | | | | | | | It's never used and was broken anyway (see #getLabel()). The functionality has been laying there unused since the initial checkin in unknown commit. RELNOTES: None. PiperOrigin-RevId: 161378717
* Windows, Android BusyBox: create JunctionCreatorGravatar Laszlo Csomor2017-07-10
| | | | | | | | | | | Introduce the JunctionCreator classes that the Android BusyBox can use to work around path length limitations on Windows. See https://github.com/bazelbuild/bazel/issues/3264 Change-Id: Ia5ee39f0635dcc2690ffb1755dc56d21e7bc7536 PiperOrigin-RevId: 161378422
* Reimplement RemoteSpawnStrategy on top of RemoteSpawnRunnerGravatar ulfjack2017-07-10
| | | | | | | | | | | | | | | | | It is intentional that RemoteSpawnStrategy no longer contains any remote execution specific code. My intent is to merge all SpawnStrategy implementations into a single class (similar to the new RemoteSpawnStrategy), and delegate all the specific work to SpawnRunner implementations. However, we're not there yet, and we still need to be able to look up SpawnStrategy implementations by name through the annotations, so we still need separate classes for now. We might also want to have a shared test suite for all SpawnRunner instances that checks for basic compliance with the specification. Progress on #1531. PiperOrigin-RevId: 161377751
* BEP: Positively identify the last messageGravatar Klaus Aehlig2017-07-10
| | | | | | | | | | | Set an additional flag in the last BEP message to indicate the end of the proto sequence. While the last event is implicit from the child-relation (the sequence of protos is finished, if at least one event is seen and all announced events have occurred in the stream), an explicit marking of the last event simplifies processing. Change-Id: I6554476f975dc9e52fdb27fb3221bd27f6097ed9 PiperOrigin-RevId: 161377092
* remote: Rewrite the ByteStream upload.Gravatar buchgr2017-07-10
| | | | | | | | | | | | | | The current ByteStream upload implementation has no support for application-level flow control, which resulted in excessive buffering and OOM errors. The new implementation respects gRPCs flow control. Additionally, this code adds support for multiple uploads of the same digest. That is, if a digest (i.e. file) is uploaded several times concurrently, only one upload will be performed. RELNOTES: None. PiperOrigin-RevId: 161287337
* Look at stderr for terminal detection.Gravatar Googler2017-07-10
| | | | | | | | | | | | | | | | | | | | bazel prints all the progress to stderr, yet the decision to switch between "smart" and "dumb" output modes is done based on the stdout and stderr connected terminals. That breaks for a command like this: bazel query 'something' | wc -l Even though all the progress is still output to the terminal through stderr, bazel switches to "dumb" mode, printing progress messages one per line. It seems reasonable to make the "smart"/"dumb" output mode decision based on the stderr only. Tested: With the change "bazel query '...' | wc -l" prints "smart" progress messages. RELNOTES: Check stderr to detect if connected to a terminal. Deprecate --isatty. PiperOrigin-RevId: 161243017
* Remove objc_includes_prioritize_static_libsGravatar cparsons2017-07-10
| | | | | | | This flag was experimental but is now always-on. RELNOTES: None. PiperOrigin-RevId: 161234569
* Add doc argument to attr.*, rule, aspect, and provider.Gravatar allevato2017-07-10
| | | | | | | | Skydoc can use these arguments to obtain documentation instead of (or in addition to) Python-style docstrings. RELNOTES: None. PiperOrigin-RevId: 161233014
* Clean up string representations for artifactsGravatar vladmos2017-07-10
| | | | | | | | | If --incompatible_descriptive_string_representations is passed, artifacts are converted to strings using `str`, `repr` and `print` functions differently (more descriptive, without leaking information that shouldn't be accessible). PiperOrigin-RevId: 161230209
* Update the default values for the C++ and Java late-bound attributes to the ↵Gravatar janakr2017-07-10
| | | | | | correct //tools/cpp:toolchain and //tools/jdk:jdk. PiperOrigin-RevId: 161227981
* Add toolchain() rule for declaring toolchains with type and constraints.Gravatar John Cater2017-07-07
| | | | | | | Part of #2219. Change-Id: Ia0effac6e6c362c04c6501b21dde89e9e5b154a4 PiperOrigin-RevId: 161216492
* Clean up string representations for configured targetsGravatar vladmos2017-07-07
| | | | | | | | | If --incompatible_descriptive_string_representations is passed, configured targets are converted to strings using `str`, `repr` and `print` functions differently (more descriptive, without leaking information that shouldn't be accessible). PiperOrigin-RevId: 161212989
* Restrict writing build events to a white-listed set of commandsGravatar Klaus Aehlig2017-07-07
| | | | | | | | | It is not desirable to have a build-event stream for all invocations of blaze; so restrict the BuildEventServiceModule to be only active if the executed command is in a white list of commands for which having build events is desirable. Change-Id: Id4acf9468f67b1af7fc8ea703785df5229c69258 PiperOrigin-RevId: 161207563
* Clean up string representations for rule and aspect contextsGravatar vladmos2017-07-07
| | | | | | | | | If --incompatible_descriptive_string_representations is passed, rule and aspect contexts are converted to strings using `str`, `repr` and `print` functions differently (more descriptive, e.g. "<rule context for //pkg:rule>" instead of just "//pkg:rule"). PiperOrigin-RevId: 161205430
* Make sure to check the received digest on downloadGravatar ulfjack2017-07-07
| | | | | | | This helped me find a bug in a rewrite of the remote worker, which is independent of this change. PiperOrigin-RevId: 161204914
* Platform -> ApplePlatform, to avoid ambiguity with the newly introducedGravatar cpeyser2017-07-07
| | | | | | Platform rule. PiperOrigin-RevId: 161203491
* Remove all non-essential call sites of methods on Jvm.Gravatar lberki2017-07-07
| | | | | | | This is so that we can eventually route the information it now contains through JavaRuntimeProvider. RELNOTES: None. PiperOrigin-RevId: 161196809
* Clean up string representations for providersGravatar vladmos2017-07-07
| | | | | | | | | If --incompatible_descriptive_string_representations is passed, providers and their instances are converted to strings using `str`, `repr` and `print` functions differently (without leaking the provider's name which isn't supposed to be visible). PiperOrigin-RevId: 161196343
* Ignore unknown file types in profile zip filesGravatar Googler2017-07-07
| | | | | | | Allows profiles for both GCC and LLVM builds to co-exist in the same zip file. RELNOTES: none PiperOrigin-RevId: 161196188
* Do not NPE crash when C++ actions are not configured in crosstoolGravatar hlopko2017-07-07
| | | | | | | Show meaningful message instead. RELNOTES: None. PiperOrigin-RevId: 161196096
* Refactor RemoteSpawn{Strategy,Runner}Gravatar ulfjack2017-07-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Make the RemoteSpawnRunner match RemoteSpawnStrategy functionality, including local fallback, remote caching, and execution. This is done so we can actually finish the migration to the SpawnRunner API, for which I've had a pending change for several months now. - Never throw StatusRuntimeException from the GrpcRemoteCache or the GrpcExecutor. We almost never do, since the Retrier catches them implcitly, so a number of catch blocks were already unreachable. Carefully document the cases where we still need to handle it. - RemoteSpawnStrategy / RemoteSpawnRunner no longer catch gRPC-specific exceptions; they should be able to handle any reasonable remote caching / execution implementation (except we don't have a common interface for GrpcRemoteExecutor yet), with no dependency on gRPC as such. Note that the RemoteSpawnStrategy class will actually go away after the SpawnRunner migration (eventually). - However, ensure that we _are_ actually throwing CacheNotFoundException; the retrier implicitly catches that also, so we need to manually unwrap from RetryException. - Don't call into the EventHandler from RemoteSpawnStrategy; instead, throw an exception with the message, and let the higher levels handle the reporting (we only allow this for exception + local fallback, for which there's no good reporting API right now). PiperOrigin-RevId: 161195666
* Clean up string representations for attr and attr.*Gravatar vladmos2017-07-07
| | | | | | | | | This change is a part of global string representations cleanup using the --incompatible_descriptive_string_representations flag, however the change to attr and attr.* is not affected by the flag because string representations of these objects used to contain nondeterministic information (memory addresses). PiperOrigin-RevId: 161192934
* remote: Add a SingleSourceBuilder to the Chunker.Gravatar buchgr2017-07-07
| | | | | | | | Prepare the Chunker for an upcoming refactoring, where it will no longer support multiple input sources and digest filtering. RELNOTES: None. PiperOrigin-RevId: 161189759