| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
| |
It's bad to crash with an exception, let's show proper rule error instead.
RELNOTES: None.
PiperOrigin-RevId: 162916138
|
|
|
|
|
|
| |
This removes a bunch of code duplication that I previously introduced.
PiperOrigin-RevId: 162909430
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 162906513
|
|
|
|
|
|
|
|
|
|
| |
We don't yet have a SKIPPED test status. So for now we report
"NO STATUS".
Also moved top-level constraint checking to its own file,
since its logic is getting more complicated.
PiperOrigin-RevId: 162790879
|
|
|
|
|
|
|
|
|
|
| |
an iterable of events without calling into the heavyweight MoreAsserts.
Use that in Skyframe instead of MoreAsserts.
Also delete an unused method in MoreAsserts.
PiperOrigin-RevId: 162754283
|
|
|
|
|
|
|
| |
This is more consistent with other values, and removes the need to inject it
into the constructor of the various strategy implementations.
PiperOrigin-RevId: 162729187
|
|
|
|
|
|
|
| |
Fixes #2874.
Change-Id: I636e0f6b56a1e33adfc64e90f36f76d4254d0281
PiperOrigin-RevId: 162726099
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 162715619
|
|
|
|
|
|
|
| |
This has the added benefit of improving ObjcProvider documentation generated in bazel docs.
RELNOTES: None.
PiperOrigin-RevId: 162658384
|
|
|
|
|
|
| |
The plan is to add it to ActionExecutionContext, which is also there.
PiperOrigin-RevId: 162656835
|
|
|
|
|
|
|
|
|
| |
success.
This can happen per spec, if multiple builds try to upload the same blob concurrently.
Also, added this to the RemoteWorker, per spec.
PiperOrigin-RevId: 162647548
|
|
|
|
|
|
|
| |
Part of #2219.
Change-Id: Id4929d5ddcd57b4635af5e513eb9a09f16a78e71
PiperOrigin-RevId: 162634398
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes the problem that
config_setting(
name = "a_and_b",
values = {
"define": "a=c",
"define": "b=d"
})
doesn't work as expected because BUILD parsing removes duplicate dictionary keys in accordance with Pythonic behavior. Even worse, Skylark will soon enforce this more aggressively by making this an outright error.
This change introduces the define_values attribute:
config_setting(
name = "a_and_b",
values = {
"normal_flag": "normal_value",
},
define_values = {
"a: "c",
"b": "d"
})
This is equivalent to "$ bazel build ... --normal_flag=normal_value --define a=c --define b=d" at the command line.
Also tried to clean up some ConfigSetting naming for clarity around the different kind of flags.
PiperOrigin-RevId: 162627180
|
|
|
|
|
|
|
|
|
|
| |
We don't check explicitly that these are the only two ways, but this can happen if the error transience node is a dep of a node that's being injected, or if an injected node is an "external" file that needs to depend on an external package.
The first possibility can happen if there was an IOException reading the node on the previous build.
We handle the situation by just dirtying the node, not injecting it. Actual evaluation can handle the re-stat.
PiperOrigin-RevId: 162622092
|
|
|
|
|
|
|
|
|
| |
given type.
Fixes https://github.com/katre/bazel/issues/6.
Change-Id: I6c6e303384277b013bdc27eb80743aa51f2fb98a
PiperOrigin-RevId: 162618674
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 162613289
|
|
|
|
|
|
| |
links to "deptset" and "list".
PiperOrigin-RevId: 162607082
|
|
|
|
|
|
| |
Evidently the blanket disabling for all "data" attributes doesn't apply there.
PiperOrigin-RevId: 162602015
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a partial rollback.
I restored the old flags (with PathListConverter),
added the new ones, added deprecation warnings and
annotations, and added code to concat the values
of new and old.
Existing released versions of Bazel should keep
working with the new code until 2018-01-31, i.e.
for the next ~6 months. After that I'll remove the
old flags and the PathListConverter.
*** Reason for rollback ***
Fixed broken integration with release Blaze.
*** Original change description ***
Automated rollback of commit 5752463ece84ebb4fb074888cba57412ab8d86b3.
*** Reason for rollback ***
Broke too many targets.
***
RELNOTES: none
PiperOrigin-RevId: 162587548
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--experimental_dynamic_configs=off
--experimental_dynamic_configs=notrim_partial
are now aliases for
--experimental_dynamic_configs=notrim (the default).
Also remove outdated --nodistinct_host_configuration warning.
PiperOrigin-RevId: 162549307
|
|
|
|
|
|
| |
convenience methods that didn't (IMO) carry their weight.
PiperOrigin-RevId: 162528716
|
|
|
|
|
|
|
|
| |
- Make TargetPatternPhaseKey implement SkyKey
- Move the TargetParsingCompleteEvent posting into the function
- Split the time reporting out into TargetParsingPhaseTimeEvent
PiperOrigin-RevId: 162475743
|
|
|
|
|
|
|
|
|
|
|
|
| |
TestRunner actions are special because their action outputs are
different from their spawn outputs. If there's a spawn output that's
not an action output, SymlinkExecroot can't rely on the parent
directories for that output existing in the real execroot. Thus,
copyOutputs() must ensure the real execroot has the relevant ancestral
directories before copying the output over.
Change-Id: I84fd69cd51628c51de9c8993b6a4407bbff038a0
PiperOrigin-RevId: 162470058
|
|
|
|
|
|
|
| |
A few are left, but they will require actual code changes (as opposed to changes to test cases only)
RELNOTES: None.
PiperOrigin-RevId: 162453092
|
|
|
|
| |
PiperOrigin-RevId: 162411695
|
|
|
|
| |
PiperOrigin-RevId: 162388184
|
|
|
|
|
|
| |
//src/main/java/com/google/devtools/common/options:options is now free of bazel protos, once again.
PiperOrigin-RevId: 162385612
|
|
|
|
|
|
|
| |
A subsequent CL makes TargetPatternKey implement SkyKey, and it's much nicer
if I can pass lists of TargetPatternKey to the various Skyframe APIs.
PiperOrigin-RevId: 162359843
|
|
|
|
|
|
|
| |
Part of #2219.
Change-Id: I5777e9b6cafbb7586cbbfb5b300344fd4417513d
PiperOrigin-RevId: 162359389
|
|
|
|
|
|
|
| |
Fixes https://github.com/katre/bazel/issues/4.
Change-Id: I664aaeb0d2aa4f36ecd0f1a5f13b5d7f25dcc8d6
PiperOrigin-RevId: 162355466
|
|
|
|
|
|
|
| |
This fixes the majority of Java test failures with --noexperimental_separate_genfiles_directory .
RELNOTES: None.
PiperOrigin-RevId: 162350591
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a semantic roll-forward of https://github.com/bazelbuild/bazel/commit/a76c94be7c56b93fc5a2f9ececfba7ac1f61f69c
which was rolled back in https://github.com/bazelbuild/bazel/commit/33cd68e18f554b98194b4ce924580d3333ab9217 due to
memory regressions.
In this commit:
- add @Nullable annotations to
CustomCommandLine.Builder.add* methods where it
makes sense
- add Preconditions.checkNotNull for non-nullable
arguments
- add emptiness checks for Iterables in
add(String, Iterable) style methods, to avoid
adding the argument when the Iterable is empty
and so the argument would not be followed by any
values
RELNOTES: none
PiperOrigin-RevId: 162349842
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 162344071
|
|
|
|
| |
PiperOrigin-RevId: 162336470
|
|
|
|
|
|
|
| |
We're parsing the target pattern before we create the SkyKey, so all callers of
the key creation also need to report this event.
PiperOrigin-RevId: 162326973
|
|
|
|
|
|
|
| |
genfiles directories.
RELNOTES: None.
PiperOrigin-RevId: 162325236
|
|
|
|
|
|
|
| |
We were previously duplicate-posting Postable events posted to the
Skyframe environment.
PiperOrigin-RevId: 162323598
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Caused memory regression.
*** Original change description ***
CustomCommandLine.Builder: clean up its interface
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...
***
RELNOTES: none
PiperOrigin-RevId: 162320031
|
|
|
|
|
|
|
| |
but same sources
RELNOTES: None.
PiperOrigin-RevId: 162295421
|
|
|
|
|
|
|
| |
Instead of "object of type 'Target'" a representation of the
target can be used for improved readability.
PiperOrigin-RevId: 162267961
|
|
|
|
|
|
|
| |
The option filters proto dependency can be removed from the OptionsParser. This is in response to option parser users that want to avoid the bazel-internal proto file in their dependencies.
RELNOTES: None.
PiperOrigin-RevId: 162249778
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Dynamically Configured Resource Filtering change 4/6
Add dynamic transitions for controlling resource filtering. These transitions
will be called in the next few reviews.
Specifically, one transition turns dynamically configured resource filtering
on, and updates the dynamically passed resource filter to contain the current
target's resource filtering settings. The other turns off dynamic filtering,
including removing all filtering settings and transitioning to
FilterBehavior.FILTER_IN_ANALYSIS.
We apply the appropriate transition in getTopLevelPatchTransition: if dynamic
filtering was not requested, no transition is made; if dynamic filtering was
requested but would not be appropriate (either because multiple top-level
targets would mean dynamic configuration would probably split the build graph,
or because no resource filters were provided so dynamically propagating them
would be a waste of time) we transition to static filtering, and, otherwise, we
continue to use dynamic filtering but preserve the current target's filtering
settings so they can be passed to its dependencies.
These transitions will actually be called in the next review.
RELNOTES: none
PiperOrigin-RevId: 162209042
|
|
|
|
|
|
|
| |
We now have the ExtendedEventHandler, which is available in all the relevant
code paths, so we just post the event directly.
PiperOrigin-RevId: 162200923
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
It breaks examples/tutorial on ci.bazel.build [1] with error:
object of type 'Target' has no field 'objc'.
[1] http://ci.bazel.io/view/Dashboard/job/Tutorial/BAZEL_VERSION=HEAD,PLATFORM_NAME=darwin-x86_64/1023/console
*** Original change description ***
AppleBinary and AppleStaticLibrary no longer propagate unwrapped ObjcProvider.
This will prevent dependencies on apple_binary and apple_static_library from objc_library and other lower-level rules.
RELNOTES: None.
PiperOrigin-RevId: 162195726
|
|
|
|
| |
PiperOrigin-RevId: 162194755
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- add an id for logging; this allows us to correlate log entries for the same
spawn from multiple spawn runner implementations in the future
- add a prefetch method to the SpawnExecutionPolicy; better than relying on
the ActionInputPrefetcher being injected in the constructor
- add a name parameter to the report method; this is in preparation for a
single unified SpawnStrategy implementation - it's basically the last bit of
difference between SandboxStrategy and RemoteSpawnStrategy; they're otherwise
equivalent (if not identical)
PiperOrigin-RevId: 162194684
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Dynamically Configured Resource Filtering change 3/6
Resource filtering behaves somewhat differently when dynamically configured.
Resources obtained from dependencies will have already been filtered and do not
need to be filtered again. Resources that were filtered out do not need to be
tracked since resource processing will never receive a reference to them
anyway.
Also, to make builds where ResourceFilter is dynamically configured, add equals
and hashCode methods (otherwise, the configuration code throws a
NullPointerException) and a global output prefix (otherwise, conflicts can
occur).
To ensure that the global output prefix (and the ResourceFilter object itself)
is the same regardless of the ordering of filters in the android_binary, build
the filters into a set, not a list, and sort them as part of creating the
ResourceFilter object. This way, for example, objects built with filters
"en,fr", "fr,en", and "en,en,fr" will all end up equal.
Finally, rename the getFilteredResources method to better reflect its new role,
and improve the isPrefiltering method to not try to prefilter if there are no
filters.
Add tests for all of this, and helper methods for all of those tests, including,
most notably, a makeResourceFilter method that instantiates a ResourceFilter
similarly to how it is actually created outside of tests (rather than directly
calling the constructor) and a fake implementation of AttributeMap to support
this.
RELNOTES: none
PiperOrigin-RevId: 162099178
|
|
|
|
|
|
|
| |
This will prevent dependencies on apple_binary and apple_static_library from objc_library and other lower-level rules.
RELNOTES: None.
PiperOrigin-RevId: 162013946
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161970540
|