| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161535034
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
to use.
Part of #2219.
Change-Id: Id6dfe6ec102f609bb19461242a098bf977be29ae
PiperOrigin-RevId: 161527986
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161527470
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
PiperOrigin-RevId: 161520675
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
PiperOrigin-RevId: 161512574
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
dependency.
RELNOTES: None.
PiperOrigin-RevId: 161504700
|
|
|
|
|
|
|
| |
Fixed https://github.com/bazelbuild/bazel/issues/3344#issuecomment-314167833
RELNOTES: None
PiperOrigin-RevId: 161500109
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
That's the only way to provide sane behavior both in Skylark and in Java.
RELNOTES: None.
PiperOrigin-RevId: 161496153
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
A backwards incompatible change for CLI.
RELNOTES: Rollback of https://github.com/bazelbuild/bazel/commit/458990b0c155130e242117e2bfc5ebfdf787d2e2
PiperOrigin-RevId: 161457646
|
|
|
|
| |
PiperOrigin-RevId: 161432622
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
PiperOrigin-RevId: 161415544
|
|
|
|
| |
PiperOrigin-RevId: 161414631
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161395570
|
|
|
|
|
|
|
| |
Fixes #3345.
RELNOTES: None.
PiperOrigin-RevId: 161395466
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
It appeared in the docs that the function had no
argument.
Fixes https://github.com/bazelbuild/bazel/issues/3339
RELNOTES: none
PiperOrigin-RevId: 161388878
|
|
|
|
|
|
|
|
| |
Also report test warnings, if any, for completed test actions in
the build event protocol.
RELNOTES: None
PiperOrigin-RevId: 161384061
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161383469
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
This flag was experimental but is now always-on.
RELNOTES: None.
PiperOrigin-RevId: 161234569
|
|
|
|
|
|
|
|
| |
Skydoc can use these arguments to obtain documentation instead of (or in
addition to) Python-style docstrings.
RELNOTES: None.
PiperOrigin-RevId: 161233014
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
correct //tools/cpp:toolchain and //tools/jdk:jdk.
PiperOrigin-RevId: 161227981
|
|
|
|
|
|
|
| |
Part of #2219.
Change-Id: Ia0effac6e6c362c04c6501b21dde89e9e5b154a4
PiperOrigin-RevId: 161216492
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
This helped me find a bug in a rewrite of the remote worker, which is
independent of this change.
PiperOrigin-RevId: 161204914
|
|
|
|
|
|
| |
Platform rule.
PiperOrigin-RevId: 161203491
|
|
|
|
|
|
|
| |
This is so that we can eventually route the information it now contains through JavaRuntimeProvider.
RELNOTES: None.
PiperOrigin-RevId: 161196809
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Allows profiles for both GCC and LLVM builds to co-exist in the same zip file.
RELNOTES: none
PiperOrigin-RevId: 161196188
|
|
|
|
|
|
|
| |
Show meaningful message instead.
RELNOTES: None.
PiperOrigin-RevId: 161196096
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
Prepare the Chunker for an upcoming refactoring, where it will no longer
support multiple input sources and digest filtering.
RELNOTES: None.
PiperOrigin-RevId: 161189759
|