| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
RELNOTES: speedup of incremental dexing tools
PiperOrigin-RevId: 164926895
|
|
|
|
|
|
|
|
|
|
| |
ConfigurationFactory.
This is a prerequisite to removing ConfigurationFactory (which is only used for static configurations). We still need List<ConfigurationFragmentFactory> to supply ConfigurationFragmentFunction.
Eventually even that will go away (for fully trimmed builds). But we're not there yet.
PiperOrigin-RevId: 164890139
|
|
|
|
|
|
|
|
|
|
| |
Refactorings:
* Change data binding to have configurable archive generation
* Extract a ZipBuilder class from the ZipBuilderVisitor to provide a general purpose archiving class.
* Small changes to visibility AaptCommandLineBuilder for reuse in the aapt2 code.
RELNOTES: None
PiperOrigin-RevId: 164880571
|
|
|
|
|
| |
RELNOTES: The `print` function now prints debug messages instead of warnings.
PiperOrigin-RevId: 164880003
|
|
|
|
|
|
|
|
|
| |
Apart from updating CustomCommandLineTest this CL is entirely automated.
We also sneak in a rename of addFormat -> addFormatted.
RELNOTES: None
PiperOrigin-RevId: 164870140
|
|
|
|
|
|
|
|
| |
These are depended upon by analysis code, so need to live in the same library
as lib.analysis. Moving them here makes it possible to split the build-base
library into separate libraries for analysis, execution, and rules.
PiperOrigin-RevId: 164847161
|
|
|
|
|
|
|
| |
All prefetching now goes through AbstractSpawnStrategy's implementation of
SpawnExecutionPolicy. Make sure the sandbox runners also do this consistently.
PiperOrigin-RevId: 164836877
|
|
|
|
|
|
|
| |
This is part of splitting up the build-base library into separate libraries for
analysis, exec, and rules.
PiperOrigin-RevId: 164835678
|
|
|
|
| |
PiperOrigin-RevId: 164827022
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
RELNOTES: None
PiperOrigin-RevId: 164775289
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first in a series of changes stripping out Bazel's
static configuration code.
This change removes the ability to request static configurations but
not the (now orphaned) logic behind them. Because that logic is
all over the code base, it will be removed in layers in followup
changes.
PiperOrigin-RevId: 164769846
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 164755768
|
|
|
|
|
|
|
| |
Memory is saved by sharing the format string and label object instances, instead of constructing new strings for each action.
RELNOTES: None
PiperOrigin-RevId: 164731899
|
|
|
|
|
|
|
|
|
| |
Old ordering names ("stable", "compile", "naive_link", "link") are deprecated
and won't be available if --incompatible_disallow_set_constructor=true is set.
Use "default", "postorder", "preorder", and "topological" correspondingly
instead.
PiperOrigin-RevId: 164728439
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of having custom ArgvFragments for every combination of desired things, we make a combined "interpreter" of argvs. This saves memory and simplifies things as we do not have to allocate a strategy instance per call to args (instead pushing a single shared instance, followed by the args).
The generic interpreter does have a lot of branching compared to the bespoke implementations, but because the branch is always the same for long stretches the branch predictor should easily be able to handle it with minimal overhead (~1 cycle per branch IIRC).
This CL also elevates that we either want a NestedSet or an ImmutableCollection to the surface of the API, so consumers understand the cost when they call it with a non-immutable collection. Most of the changes in clients is due to this.
To cut down on CL churn, @Deprecated forwarding methods are added to CustomCommandLine. These will be removed in a separate CL using IDE inlining.
RELNOTES: None
PiperOrigin-RevId: 164725370
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Important: the simplified API now defaults to forwarding interrupts to
subprocesses. I did audit all the call sites, and I think this is a safe change
to make.
- Properly support timeouts with all implementations
- Simplify the API
- only provide two flavours of blocking calls, which require no input and
forward interrupts; this is the most common usage
- provide a number of async calls, which optionally takes input, and a flag
whether to forward interrupts
- only support input streams, no byte arrays or other 'convenience features'
that are rarely needed and unnecessarily increase the surface area
- use java.time.Duration to specify timeout; for consistency, interpret a
timeout of <= 0 as no timeout (i.e., including rather than excluding 0)
- KillableObserver and subclasses are no longer part of the public API, but
still used to implement timeouts if the Subprocess.Factory does not support
them
- Update the documentation for Command
- Update all callers; most callers now use the simplified API
PiperOrigin-RevId: 164716782
|
|
|
|
|
| |
RELNOTES: none
PiperOrigin-RevId: 164646858
|
|
|
|
|
|
| |
RELNOTES: none
PiperOrigin-RevId: 164620306
|
|
|
|
|
|
|
|
|
| |
This is part of splitting up the build-base library into separate libraries for
analysis, exec, and rules. Unfortunately, there are a number of reverse deps
from analysis code to Skylark classes, so moving these is the only way to make
progress.
PiperOrigin-RevId: 164612957
|
|
|
|
| |
PiperOrigin-RevId: 164590595
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
RELNOTES: None
PiperOrigin-RevId: 164590392
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Windows, Bazel will always use params files for
some BusyBox tools, because some flags of these
tools expect values with special characters in
them.
We need this change so Bazel can safely pass such
flags to the BusyBox on Windows.
See https://github.com/bazelbuild/bazel/issues/3264
RELNOTES: none
PiperOrigin-RevId: 164582899
|
|
|
|
| |
PiperOrigin-RevId: 164577062
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change is needed due to the fact that java_import or other custom rules (genrules or Skylark) do not propagate coverage information. The lack of coverage data is caused by the fact that it is retrieved from compilation information and it is passed around through providers as Artifact(s) (also known as instrumentation metadata). The problem with the current implementation is that there is no way of retrieving instrumentation metadata from arbitrary jars provided by java_import or other custom rules.
The instrumentation metadata in the current implementation is a separate jar that contains uninstrumented classes for offline Jacoco instrumentation.
This change addresses that problem by having just one jar instead of 2 (the build jar and the instrumentation jar), adding the uninstrumented classes in the build jar and completely removing any other instrumentation metadata.
Implementation details:
* For each build jar there is a .txt file created that contains the relative path of each Java file. This file will also be included in the final build jar. It is used for recreating the correct path for each covered file when included in the coverage report.
* java_binary/java_test will set 2 environment variables:
1) JACOCO_METADATA_JARS - replaces the previous JACOCO_METADATA_JAR that was a jar that merged all the uninstrumented classes on the classpath in one jar. The new environment variable holds the paths of the runtime classpath jars - only some of them contain uninstrumented classes, letting the Jacoco coverage runner to filter and analyze them.
2) JACOCO_MAIN_CLASS - The main class to be called for the current coverage run. Previously this information was embedded in the JACOCO_METADATA_JAR's manifest.
PiperOrigin-RevId: 164562533
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this change, PlaceholderIdFieldInitializerBuilder attempted to exactly
mimic the behavior of Aapt and Gradle in assigning resource IDs. However,
nothing should be relying on that specific behavior.
Even if code for some reason is relying on that behavior (by, for example,
doing math on a resource ID to get another resource ID), this code is currently
only used to compile library resource files, which are not actually used in
finished android_binary targets.
This change removes the part that relies on a specific ordering of
ResourceTypes; it instead just relies on the names and ordering within
ResourceType. This makes things a bit simpler and also ensures new resource
types added to the ResourceType enum will be picked up automatically.
In particular, this change will allow us to use the new Font resource type as
soon as it is released in android_ide_common.
RELNOTES: none
PiperOrigin-RevId: 164497262
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 164481927
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in preparation for a change[]
Previously calls to @CheckReturnValue-annotated methods were ignored in tests
that used ExpectedException. The enforcement is being changed to only ignore
calls that immediately follow a call to ExpectedException#expect to improve
performance.
Also note that using `assertThrows` or `expectThrows` instead of
`ExpectedException` is now strongly recommended:
[]
Tested:
TAP --sample for global presubmit queue
[]
PiperOrigin-RevId: 164457920
|
|
|
|
|
|
|
| |
This is part of splitting up the build-base library into separate libraries for
analysis, exec, and rules.
PiperOrigin-RevId: 164456961
|
|
|
|
|
|
|
| |
This is part of splitting up the build-base library into separate libraries for
analysis, exec, and rules.
PiperOrigin-RevId: 164446955
|
|
|
|
|
|
|
| |
I.e., ('a', 'b') * 3 == ('a', 'b', 'a', 'b', 'a', 'b'), like lists.
RELNOTES: None
PiperOrigin-RevId: 164403099
|
|
|
|
|
|
|
|
|
| |
Previously, you could modify a frozen MutableList indirectly via its iterator(). This CL wraps the underlying list with a Collections.unmodifiableList when obtaining the iterator, and likewise for other methods that return views over Skylark data structures.
This also eliminates the SkylarkList#getContents method in favor of just using the SkylarkList object itself.
RELNOTES: None
PiperOrigin-RevId: 164402129
|
|
|
|
|
|
|
|
|
|
| |
This change enables alternate evaluation strategies.
Drive-by fix to GraphTester, making TestFunction static because it has
no dependencies on its outer class, and adding #unsetConstantValue.
RELNOTES: None.
PiperOrigin-RevId: 164327055
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Roll-forward.
unknown commit fixed the internal protoc to also accept full paths, just as the external one does. Fixes #2265
*** Original change description ***
Automated rollback of commit bcd23553f38f54fd4846aa507c827a4ee40cfab4.
*** Reason for rollback ***
RELNOTES: None
PiperOrigin-RevId: 164324424
|
|
|
|
|
|
|
|
|
| |
register_toolchains.
Fixes #3429.
Change-Id: Iae5632c4b866994a849032bbc2757a6a5151cc6a
PiperOrigin-RevId: 164304020
|
|
|
|
|
|
|
|
| |
Fixes #3469
Fixes #3258
RELNOTES: Bazel Android support now requires build-tools 26.0.1 or later.
PiperOrigin-RevId: 164301571
|
|
|
|
|
|
|
| |
manually turn off HTTP internal reconnection so HTTP can utilize MAX_REDIRECTS, etc.
RELNOTES: None.
PiperOrigin-RevId: 164294282
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notification keywords published BES include:command_name and protocol_name.
These keywords can be used by subscribers to filter BES streams of interest.
This change also cleans up use of deprecated fields in in
PublishBuildToolEventStreamRequest.
RELEASE_NOTES: None.
Change-Id: I331fc9a818728ad6986230ebdea7d4019e8e49fc
PiperOrigin-RevId: 164285745
|
|
|
|
| |
PiperOrigin-RevId: 164281027
|
|
|
|
|
|
| |
RELNOTES: update dexing tools to Android SDK 26.0.1
PiperOrigin-RevId: 164278101
|
|
|
|
|
|
| |
--test_env isn't moved in this CL since it's exposed to Skylark via BuildConfiguration, making it a somewhat riskier refactor.
PiperOrigin-RevId: 164266168
|
|
|
|
|
|
|
| |
Make them not crash.
RELNOTES: None.
PiperOrigin-RevId: 164265379
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change https://github.com/bazelbuild/bazel/commit/646cfd81793fc3b87979089aab873310d14e95e6 moved copts to the build variable and in order to keep the
ordering of the flags as before the copts feature needs to be the last feature
in the toolchain. Osx crosstool generator sometimes appended additional
features, that broke this assumption. This cl makes sure copts is the last
feature. In addition, flags directly from action_config will be added first, not
last as they were before.
RELNOTES: Flags from action_config get added first to the command line first,
before the flags from features.
PiperOrigin-RevId: 164257469
|
|
|
|
|
|
|
|
|
|
|
| |
BES and Remote Execution have separate implementations of gRPC channel
creation, authentication and TLS. We should merge them, to avoid
duplication and bugs. One such bug is #3640, where the BES code had a
different implementation for Google Application Default Credentials.
RELNOTES: The Build Event Service (BES) client now properly supports
Google Applicaton Default Credentials.
PiperOrigin-RevId: 164253879
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Deprecate the --libraries flag of the
GENERATE_BINARY_R tool in favour of --library.
The new flag is multi-value and uses "," as the
pair-separator instead of ":".
The value converter still supports ":"-separated
pairs as well, but looks for "," first.
Old format:
--libraries=key1:value1,key2:value2,...
New format:
--library=key1,value1 --library=key2,value2
Motivation:
- the ":"-separator prevents using absolute paths
on Windows
The old flag is still supported, but will be
removed after 2018-02-28 (about 6 months from
now).
Also in this commit:
- add a new method to CustomCommandLine.Builder
to lazily construct the command line for the
--library flag
See https://github.com/bazelbuild/bazel/issues/3264
RELNOTES: none
PiperOrigin-RevId: 164246506
|
|
|
|
|
|
|
|
|
|
| |
This cl introduces new action_config named 'strip' for the strip action. While
at it, it fixes support for executionRequirements.
Fixed #209
RELNOTES: 'strip' action is now configured via feature configuration
PiperOrigin-RevId: 164110478
|
|
|
|
|
|
| |
The other test configuration options will follow in subsequent CLs to keep size manageable.
PiperOrigin-RevId: 164068510
|
|
|
|
| |
PiperOrigin-RevId: 164066205
|
|
|
|
|
|
|
|
|
| |
We now use a unified way to check provider requirements everywhere.
Reland of https://github.com/bazelbuild/bazel/commit/c32e1b1efcd703b3780de47fba62974123593d71.
RELNOTES: None.
PiperOrigin-RevId: 164038621
|
|
|
|
| |
PiperOrigin-RevId: 164013246
|
|
|
|
|
|
|
|
|
| |
Also throw IllegalArgumentException instead of AssertionError.
A follow-up CL will look to eliminate the SkylarkMutable#checkMutable(Location, Environment) override in favor of checkMutable(Location, Mutability). This will make it easier to manipulate Skylark values in specialized contexts aside from normal evaluation.
RELNOTES: None
PiperOrigin-RevId: 163978262
|