| Commit message (Collapse) | Author | Age |
|
|
|
| |
PiperOrigin-RevId: 162194755
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit:
- deprecates PathListConverter
- removes ExistingPathListConverter because it was
not used in production, only tests
- deprecated List<Path> type flags that use
PathListConverter
- introduces new List<Path> type flags next to the
deprecated ones that use @Options.allowMultiple
and convert with PathConverter; the new and old
lists are concatenated, yielding the flag value
PathListConverter and all of its occurrences
should be removed after 2018-01-31 (about 6 months
from now, which is a safe enough timeframe for
everyone to upgrade Bazel so it uses the new-style
flags).
Reason for deprecation is that colon-separated
path lists don't work on Windows because paths
have colons in them.
Since the Android BusyBox is not intended to be
executed by users but by Bazel only, there's no
release notes necessary.
See https://github.com/bazelbuild/bazel/issues/3264
RELNOTES: none
PiperOrigin-RevId: 162193998
|
|
|
|
|
|
|
| |
If a reserved mnemonic is used, it is mangled.
RELNOTES:
PiperOrigin-RevId: 161970885
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In this commit:
- remove unused methods and classes
- turn CustomCommandLine.ArgvFragment into an
interface
- remove the
CustomCommandLine.TreeFileArtifactArgvFragment
abstract class; it only had one remaining
subclass
- add @Nullable annotations where nulls are fine
- add Precondition checks for non-nullable args
- simplify the interface by removing add* methods
that can be composed of other add* methods; this
makes it easier to see what the callers do with
the Builder
- remove add* methods that add a single argument
followed by a list of other elements (or a
joined string of them); these had a bug in that
they didn't check if the collection was empty
(only that it was not null), and if it was empty
then the single argument was still added though
it was not followed by any value
- fix call sites of add* methods where we
previously could have added a flag with an empty
collection
- audit every affected call site
RELNOTES: none
PiperOrigin-RevId: 161957521
|
|
|
|
|
|
|
| |
order to allow tests that depend on pruned inputs to work for both the legacy
and crosstool cases.
PiperOrigin-RevId: 161955432
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For commands that do not send a BuildFinishedEvent, we normally use the
NoBuildEvent to determine the end of the build and hence the moment
where the UI should not any more interfere with the output. For some
requests, like fetch, however, we should continue to report progress
till the very end (as there is no output to interfere with). Do so,
and also be sure that the experimental UI also reports downloads if
not explicitly in a loading or analysis phase.
While there, also group digits in the number of downloaded bytes, to
increase readability.
Change-Id: I31efeee5bdb1d29b2ecf842acb3e383e297707f8
PiperOrigin-RevId: 161935456
|
|
|
|
|
|
|
|
|
| |
DefaultInfo used to not be used when old-style and declared providers were
mixed (struct=(custom='key', providers=[DefaultInfo(...)])).
Also when a single declared provider was returned it used to be treated as an
old-style struct.
PiperOrigin-RevId: 161796415
|
|
|
|
|
|
|
|
|
|
| |
Whenever we report an action in the build event protocol that has
a configuration associated with it, report the configuration as
well in the protocol (and not only the checksum, if the configuration
is not that of one of the top-level configured targets).
Change-Id: I9b085d5381b3c3509b4f3b99c8a77bc8fba6abfe
PiperOrigin-RevId: 161789745
|
|
|
|
|
|
|
|
|
| |
rules to declare which Make variables they need.
The idea is that they would depend on the future java_runtime_alias / cc_toolchain_alias and similar rules and thus Bazel will know which Make variables they actually need instead of pulling in the whole BuildConfiguration and also making it possible to compute these Make variables during analysis instead of configuration creation.
RELNOTES: None.
PiperOrigin-RevId: 161785868
|
|
|
|
|
|
|
|
|
|
|
|
| |
(Almost) all native declared providers are accessed as such and not as
native non-declared providers (inheritors of TransitiveInfoCollaction).
There are still three providers that use
TransitiveInfoCollection.WithLegacySkylarkName mechanism, I'll address
them in the follow-up CL.
RELNOTES: None.
PiperOrigin-RevId: 161655315
|
|
|
|
|
|
|
|
| |
The method is moved to FeaturePolicyConfiguration.java so that it can be used
by unrelated parts of the code using feature policies for whitelisting.
RELNOTES:none
PiperOrigin-RevId: 161648169
|
|
|
|
|
|
|
| |
Found by searching for TODOs mentioning "Java 7". There are plenty of other instances where we can simplify, but I don't want to be responsible for a large blast radius. At least in these cases we're fixing outdated comments.
RELNOTES: None
PiperOrigin-RevId: 161570189
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161527470
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
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
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161395570
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161383469
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Show meaningful message instead.
RELNOTES: None.
PiperOrigin-RevId: 161196096
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The cachable flag was only set to false for flaky tests.
Before this CL, we did not cache flaky tests on subsequent runs, instead
rerunning them, even though this is both very expensive and inconsistent with
our normal handling, which is to cache passes but not errors.
If cache_test_results is enabled, we now also cached timed out test results.
If cache_test_results=auto (the default), we now also cache flaky tests.
We still do not cache failed tests; the TestRunnerAction checks if the previous
test result was marked as passed (which also applies to flaky tests, but not
to failed or timed-out tests).
Also add some unit tests.
PiperOrigin-RevId: 161187950
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
JavaRuntimeProvider instead of Jvm if a java_runtime rule is used.
There are a few things standing in the way of removing package loading from JvmConfigurationLoader:
- The JAVABASE/JAVA Make variables, which are a function of the contents of the package with the JVM. The plan is to make JavaRuntime a MakeVariableProvider and add an attribute to rules that do Make variable evaluation to tell which Make variables they need
- The path to the Java binary is exported to Skylark through the configuration fragment. We'll need to export an attribute to Skylark that can be used to depend on the JVM, then do the three-step dance to use that instead of the configuration and figure out what to do if --javabase is not a label.
- Jvm#getJavaExecutable() has a bunch of call sites. They need to be adjusted individually.
RELNOTES: None.
PiperOrigin-RevId: 161176462
|
|
|
|
|
|
|
| |
This removes the last dynamic dependency on the static configuration
transition table.
PiperOrigin-RevId: 161162272
|
|
|
|
|
|
|
|
| |
These are now dead code - configuration dependencies are loaded by Skyframe
and do not need to be listed ahead of time - and were only ever used in
tests.
PiperOrigin-RevId: 161146721
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a legacy dependency on the configuration transition table, which is
only needed for static configurations. Dynamic configurations didn't actually
use anything in that table: this was just a convenience interface that could
have equally been defined somewhere else. So this cl defines it somewhere else.
There's still one last dependency: Transitions.configurationHook. We'll tackle
that in a followup cl.
PiperOrigin-RevId: 161141650
|
|
|
|
| |
PiperOrigin-RevId: 161034828
|
|
|
|
|
|
|
|
|
|
| |
about it.
This is only required because PatchTransition extends Attribute.Transition,
which requires it. But it's only used for static configurations. So
PatchTransition's implicit requirement is pointless and confusing.
PiperOrigin-RevId: 161005131
|
|
|
|
|
|
|
|
|
| |
Label or a ToolchainInfo provider.
Part of #2219.
Change-Id: Ia09070717f54eea10e1ab0303253714b58768548
PiperOrigin-RevId: 160995546
|
|
|
|
|
|
|
| |
Part of #2219.
Change-Id: Ie235d0a75fc50746331b20a7f2060e6d49ae48cb
PiperOrigin-RevId: 160982987
|
|
|
|
|
|
|
|
|
| |
The memory cost of adding Skylark provider is now the same as native.
Skylark providers (declared and legacy) benefit from the same
shape-sharing optimization as native providers.
RELNOTES: None.
PiperOrigin-RevId: 160944263
|
|
|
|
|
|
|
|
|
|
| |
Some of the callers are not using the proper one from the configuration, and
are thus ignoring --action_env. Some are only using part of the configuration's
action environment. I tried to carefully not change the semantics in any case.
Semantic-changing changes come later.
PiperOrigin-RevId: 160891204
|
|
|
|
|
|
|
|
|
|
| |
If an aspect completed unsuccessfully, there are no artifacts created.
Internally, this is represented by the ArtifactsToBuild object being
a null pointer. When asked for the built artifacts correctly handle
that case and return an empty Collection.
Change-Id: Ie0b0486354bb217834254518f35c97b7c9529481
PiperOrigin-RevId: 160827964
|
|
|
|
|
|
| |
detection.
PiperOrigin-RevId: 160686932
|
|
|
|
|
|
|
|
|
|
| |
All options need to explicitly list their category and effect. If they are uncategorized, this makes the lack of information obvious. Remove defaults from the annotation to enforce this.
Also enforce the sanity check that no option should have UNKNOWN or NO_OP effects listed with other effect tags.
Includes some last default sets for options I missed in the previous mass-setting change, and some that were added since.
PiperOrigin-RevId: 160641861
|
|
|
|
|
|
|
| |
It's now easier to customize Printer if in different situations objects should
be printed differently. Also its API is cleaner now. Names of methods of SkylarkValue objects now reflect names of Skylark functions: SkylarkValue#repr and SkylarkPrintableValue#str.
PiperOrigin-RevId: 160635154
|
|
|
|
|
|
|
| |
With a few manual fixes for readability.
RELNOTES: None.
PiperOrigin-RevId: 160582556
|
|
|
|
|
|
| |
The previous implementation stores a copy of the param file's path fragment with an '@' prepended. This can add up if you have a lot of params files, but can be avoided by deferring that string expansion.
PiperOrigin-RevId: 160559793
|
|
|
|
|
|
|
|
| |
By default it just delegates to the existing #writeOutputFile, but implementations may choose to override if they have easy access to a ByteString.
Also change some DeterministicWriter implementations that do have easy access to the ByteString.
PiperOrigin-RevId: 160550028
|
|
|
|
|
|
|
|
|
|
| |
A common need is to limit access to a rule or feature - restricting
a feature which is being deprecated or controlling the rollout of a new
feature. This change adds the feature_control_policy flag, which allows
developers to easily manage this process.
RELNOTES: None.
PiperOrigin-RevId: 160454166
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are currently tracking the action environment (computed from --action_env),
and the test action environment (computed from --test_env, and not including
the action env) as two pairs of fields, and a lot of callers haven't been
updated to handle both parts (TestRunnerAction does, but many 'normal' actions
don't). However, both parts have always both be handled, and moving them into
a single abstraction makes it harder to accidentally miss one part.
We'll subsequently need to update all the action implementations to use the
new abstraction, and also update the Skylark API (or bypass it and always apply
the action environment for all actions, except we don't know which
configuration to use).
PiperOrigin-RevId: 160386181
|
|
|
|
|
|
|
|
| |
Move the default from the annotation to every mention. This makes the incompleteness explicit. Will add the defaults to test targets in a separate change.
Once all dependencies are cleaned up, the Option annotation will no longer allow options without the documentationCategory or effectTag, to prevent new options being added without categories while we migrate to the new option categorization.
PiperOrigin-RevId: 160281252
|
|
|
|
|
|
|
| |
Those may occur, e.g., if the target is simply a source file.
Change-Id: Ia64c54e8543dd93712b00428c443922c67e2b6cd
PiperOrigin-RevId: 160278149
|
|
|
|
|
|
|
| |
The size of a test is a relevant property of a test target. Report it.
Change-Id: Ia529a11f4a6920bca7d233e3493640d319cca5ae
PiperOrigin-RevId: 160268370
|
|
|
|
| |
PiperOrigin-RevId: 160191135
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While the build event protocol is mainly targeted for commands that actually
build, a minimal stream is generated for all commands. For commands like "query",
it is desirable that the stream contains the full output of the command.
To achieve this, introduce an optional second event indicating the end of the stream;
note that the NoBuildEvent has to come before the payload answer as the
experimental UI uses this event to determine the transition to the payload answer
that is passed through unchanged.
RELNOTES: None.
PiperOrigin-RevId: 159977543
|
|
|
|
|
|
| |
Part of #2219.
PiperOrigin-RevId: 159596011
|
|
|
|
|
|
| |
Cuts down on file count and makes it easier to find these methods.
PiperOrigin-RevId: 159560422
|