| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
| |
This is conceptually better (because each fragment should be
self-contained), and gives us better performance, as we no longer need to
load all explicit labels.
--
MOS_MIGRATED_REVID=118674470
|
|
|
|
|
|
|
| |
This is done by adding a default workspace suffix.
--
MOS_MIGRATED_REVID=118656979
|
|
|
|
|
|
|
|
|
|
|
| |
Also remove a try-catch block, which was converting all configuration
creation errors to IllegalStateException.
This uncovered a bug in CppOptions, which wasn't adding host_grte_top to the
set of explicit labels.
--
MOS_MIGRATED_REVID=118654358
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=118567315
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=118560010
|
|
|
|
|
|
|
| |
This is necessary because build-runfiles depends on the msys shared library, which (as per DLL lookup rules on Windows) is checked under the entries of PATH.
--
MOS_MIGRATED_REVID=118556684
|
|
|
|
|
|
|
| |
This makes the late initialization of BuildView more obviously safe.
--
MOS_MIGRATED_REVID=118469655
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=118049325
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=117939121
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the experimental UI, during build, STDOUT and STDERR events
are reported as separate events, properly terminated by CR LF.
After the completion of the build, however, STDOUT and STDERR
are passed through byte by byte, to allow nicely formatted output.
Info commands, however, do not build, so there is no event to signal
end of build; hence report that fact directly to the UI.
--
Change-Id: Ic236d33ee6e65637016370e15ed37e3d9494a258
Reviewed-on: https://bazel-review.googlesource.com/#/c/3122
MOS_MIGRATED_REVID=117934742
|
|
|
|
|
|
|
| |
accidentally keep references to them after the analysis phase.
--
MOS_MIGRATED_REVID=117855145
|
|
|
|
| |
MOS_MIGRATED_REVID=117827486
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example, if you have a BUILD file that does:
load('@foo//bar:baz.bzl', 'my_rule')
my_rule(...)
If baz.bzl uses Label('//whatever'), this change makes //whatever resolve to
@foo//whatever. Previous to this change, it would be resolved to the repository
the BUILD file using my_rule was in.
RELNOTES[INC]: Labels in .bzl files in remote repositories will be resolved
relative to their repository (instead of the repository the Skylark rule is
used in).
--
MOS_MIGRATED_REVID=117720181
|
|
|
|
|
|
|
|
|
| |
basically doing the same thing with it.
This simplifies the code and avoids unnecessary re-wrapping, which saves memory.
--
MOS_MIGRATED_REVID=117693050
|
|
|
|
|
|
|
| |
still enforces desired properties.
--
MOS_MIGRATED_REVID=117692184
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=117583615
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=117573654
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=117512506
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=117477418
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, this would get thrown when referring to the same package
from both the main and default repositories:
java.lang.IllegalArgumentException: Multiple entries with same key: tools/cpp=/home/brian/971-Robot-Code and tools/cpp=/home/brian/971-Robot-Code
at com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:136)
at com.google.common.collect.RegularImmutableMap.checkNoConflictInKeyBucket(RegularImmutableMap.java:98)
at com.google.common.collect.RegularImmutableMap.fromEntryArray(RegularImmutableMap.java:84)
at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:295)
at com.google.devtools.build.lib.buildtool.BuildTool.transformPackageRoots(BuildTool.java:301)
at com.google.devtools.build.lib.buildtool.BuildTool.buildTargets(BuildTool.java:209)
at com.google.devtools.build.lib.buildtool.BuildTool.processRequest(BuildTool.java:334)
at com.google.devtools.build.lib.runtime.commands.TestCommand.doTest(TestCommand.java:119)
at com.google.devtools.build.lib.runtime.commands.TestCommand.exec(TestCommand.java:104)
at com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.exec(BlazeCommandDispatcher.java:371)
at com.google.devtools.build.lib.runtime.BlazeRuntime$3.exec(BlazeRuntime.java:1016)
at com.google.devtools.build.lib.server.RPCService.executeRequest(RPCService.java:65)
at com.google.devtools.build.lib.server.RPCServer.executeRequest(RPCServer.java:434)
at com.google.devtools.build.lib.server.RPCServer.serve(RPCServer.java:229)
at com.google.devtools.build.lib.runtime.BlazeRuntime.serverMain(BlazeRuntime.java:975)
at com.google.devtools.build.lib.runtime.BlazeRuntime.main(BlazeRuntime.java:772)
at com.google.devtools.build.lib.bazel.BazelMain.main(BazelMain.java:55)
And this would get thrown for any packages in the main repository loaded
from other repositories:
java.lang.RuntimeException: Unrecoverable error while evaluating node 'PACKAGE:@//tools/build_rules/go/toolchain' (requested by nodes )
at com.google.devtools.build.skyframe.ParallelEvaluator$Evaluate.run(ParallelEvaluator.java:982)
at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:499)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Invalid BUILD file name for package '@//tools/build_rules/go/toolchain': /home/brian/bazel/tools/build_rules/go/toolchain/BUILD
at com.google.devtools.build.lib.packages.Package.finishInit(Package.java:299)
at com.google.devtools.build.lib.packages.Package$Builder.finishBuild(Package.java:1308)
at com.google.devtools.build.lib.skyframe.PackageFunction.compute(PackageFunction.java:501)
at com.google.devtools.build.skyframe.ParallelEvaluator$Evaluate.run(ParallelEvaluator.java:933)
... 4 more
Sponsor's comment: note the abundance of new Label.resolveRepositoryRelative() calls. They are ugly, but it's only making existing ugliness explicit. Yes, we should fix it, especially in the implementation of configurable attributes.
Refs #940
--
Change-Id: I8bd7f7b00bec58a7157507595421bc50c81b404c
Reviewed-on: https://bazel-review.googlesource.com/#/c/2591
MOS_MIGRATED_REVID=117429733
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One can now invoke native.bazel_version to get the version of Bazel from
the WORKSPACE file.
This can be used to do version check, for instance:
version.bzl:
def check_version(x):
if native.bazel_version < x:
fail("Current Bazel version is {}, expected at least {}".format(native.bazel_version, x))
WORKSPACE:
load("//:version.bzl", "check_bersion")
check_version("0.2")
Fixes #1014.
--
MOS_MIGRATED_REVID=117231557
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Skylark rule context object has a runfiles method. This adds two
optional parameters to that method, "symlinks" and "root_symlinks",
that expose functionality from the underlying Runfiles java class.
With this functionality, one can construct links in the runfiles tree
where the source and destination of the link have different names
and/or relative directories. This might be useful for things like
AppEngine rules where a file in a subdirectory of the source tree
needs to appear in the root directory of the runfiles tree.
If either new parameter is used, the runfiles is subject to stricter
validity checking. This checking propagates to other runfiles that
depend on it.
RELNOTES: Added "root_symlinks" and "symlinks" parameters to Skylark
runfiles() method.
--
MOS_MIGRATED_REVID=116879064
|
|
|
|
|
|
|
| |
fully implemented but still being guinea pigged.
--
MOS_MIGRATED_REVID=116694206
|
|
|
|
|
|
|
|
|
| |
A runfile conflict is when two different artifacts have been added to a
Runfiles object under the same relative path. Conflict resolution is
unchanged (last artifact wins).
--
MOS_MIGRATED_REVID=116584195
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=116569594
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using mandatoryProvidersList to validate python rules' dependency.
Added a SkylarkProvider named 'py' which is a SkylarkClassObject in Java and a
struct in Skylark. Native python rule and Skylark python rule should have this provider
so that they can depend on each other.
RELNOTES[NEW]: Native python rule can depend on skylark rule as long as skylark
rule provides 'py' provider.
--
MOS_MIGRATED_REVID=116241504
|
|
|
|
|
|
|
| |
cpp, java, jvm) to the documentation.
--
MOS_MIGRATED_REVID=116092594
|
|
|
|
|
|
|
|
|
|
|
| |
For print(fragmentCollection)
you get:
target: [ 'apple', 'cpp', 'java', 'jvm' ]
instead of
com.google.devtools.build.lib.analysis.config.FragmentCollection@402dc7f2
--
MOS_MIGRATED_REVID=116045778
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order for Aspects to support dynamic configuration, they need to have two
configurations: one to instantiate the Aspect with, containing all the fragment
dependencies of the Aspect itself, and one to create the ConfiguredTargetValue.key
with, containing only the dependencies of the Rule. This expands AspectKey to
have a second configuration, although it currently does not populate that key with
anything different.
--
MOS_MIGRATED_REVID=115997454
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=115920640
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaking Blaze: []
*** Original change description ***
--
MOS_MIGRATED_REVID=115886167
|
|
|
|
|
|
|
|
|
|
| |
- Remove unneeded abstract override AbstractAction#getResourceConsumption()
- Remove comments justifying returning ResourceSet.ZERO from getResourceConsumption() - instead document it once on the base method.
- Replace ResourceSet.create(0, 0, 0) with ResourceSet.ZERO.
- Make sure no one ever returns null from getResourceConsumption() and then simplify the code in SkyframeActionExecutor to not check for it.
--
MOS_MIGRATED_REVID=115739250
|
|
|
|
|
|
|
| |
willExecuteRemotely(). Remove unused parameter "mnemonic".
--
MOS_MIGRATED_REVID=115666410
|
|
|
|
|
|
|
|
|
| |
instead of special-casing it.
This removes the need to deserialize artifacts in FdoSupport, which in turn removes the need to support artifact deserialization at all, which makes our lives simpler and Thoreauvian programming is good.
--
MOS_MIGRATED_REVID=115660698
|
|
|
|
|
|
|
| |
directly to newDeterministicWriter.
--
MOS_MIGRATED_REVID=115626619
|
|
|
|
|
|
|
| |
Remove the constant.
--
MOS_MIGRATED_REVID=115555161
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=115448892
|
|
|
|
|
|
|
| |
implementations.
--
MOS_MIGRATED_REVID=115252203
|
|
|
|
|
|
|
|
| |
"mandatoryProvidersList" is a list of sets of providers. For any rule, if it provides
all the providers from one of those sets, we consider the dependency valid.
--
MOS_MIGRATED_REVID=115221394
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=114860576
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=114680762
|
|
|
|
|
|
|
|
|
|
|
| |
This enable BlazeModule to specify extraneous Skylark modules. This
will be used by Skylark remote repositories to add them from the
BazelRepositoryModule.
Issue #893, step 2 of the roadmap of http://goo.gl/OZV3o0
--
MOS_MIGRATED_REVID=114677157
|
|
|
|
|
|
|
| |
Needed for #276.
--
MOS_MIGRATED_REVID=114529775
|
|
|
|
|
|
|
|
|
| |
function. In the case of the requires-darwin tag, /bin/bash will be used instead
of an alternative, which matches the current genrule implementation.
--
MOS_MIGRATED_REVID=114360408
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://github.com/bazelbuild/bazel/blo[]fbbd6a32b95ba746f09dae1eaeaccf675cd5b3/src/main/java/com/google/devtools/build/lib/packages/Attribute.java#L1045
This allows the default value computation for latebound attributes to consider
the values of configurable attributes. This is most directly useful for user-definable Skylark defaults, which have full access to the values of all non-latebound attributes.
Without this change, this kind of scenario crashes Bazel. For example:
------------------
select_rules.bzl:
------------------
def _impl(ctx):
ctx.file_action(
output=ctx.outputs.out_file,
content=ctx.attr.string_value,
)
return struct()
# Bug does not manifest without using this as a default.
def _derived_value(attrs, _):
return Label("//some:dep")
selector_rule = rule(
implementation=_impl,
attrs={
"string_value": attr.string(default=""),
"out_file": attr.output(),
"_derived": attr.label(default=_derived_value),
},
output_to_genfiles=True,
)
def selector_macro(name, out_file="", string_value=""):
# This will fail with selectors.
selector_rule(
name="%s_skylark" % name,
string_value=string_value,
out_file=out_file + ".skylark",
)
# This does not.
native.genrule(
name="%s_genrule" % name,
cmd="echo '" + string_value + "' > $@",
outs=[out_file + ".genrule"],
)
native.filegroup(
name=name,
srcs=[":%s_genrule" % name, "%s_skylark" % name],
)
------------------
BUILD.bzl:
------------------
config_setting(
name = "selector",
values = {"compilation_mode": "opt"},
)
selector_macro(
name = "this_rule",
string_value = """soup? """ + select({
":selector": "no, thank you.",
"//conditions:default": "yes, please!!",
}),
out_file = "this_rule.txt",
)
--
MOS_MIGRATED_REVID=114326474
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, as of 0c8049f5fc866d785dd83769fa6c38ecf771ba96, these labels
were treated as relative to the repository of the rule in some places
but not others.
From the other commit's message:
They [implicit attribute defaults] now all point to @bazel_tools anyway,
so there is no need [to special-case them].
--
Change-Id: If337eb2579ae613ba09cab0e0c927691922c0a39
Reviewed-on: https://bazel-review.googlesource.com/#/c/2783/
MOS_MIGRATED_REVID=114313341
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This only applies to interleaved loading and analysis - the production code
is fine.
Add tests for the RedirectChaser, the fdoOptimize code path, the XcodeConfig,
and the Jvm loader. Unfortunately, the configuration factory we internally
create by default contains a mock Jvm loader implementation. Since that is one
Yak too many right now, I'm adding a temporary method to the AnalysisMock.
I added the tests to BuildViewTest for now; technically, they ought to go
into the language-specific test cases, but that would require more refactoring
as those don't currently run with interleaved loading and analysis.
--
MOS_MIGRATED_REVID=114221476
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes the fdo support independent of the configuration, and therefore
safe to cache.
The genfilesPath was only used in AutoFDO builds, which now use the full
exec path to look up profiling data. The profile already refers to imported
files through their full exec paths, so this approach is more consistent.
Furthermore, if we ever have a source file with the same root-relative path as
a generated file, these would conflict in the FdoSupport map, potentially
leading to errors in the build. This may not be possible right now since such
files would conflict in the label namespace and such conflicts are always
resolved towards the generated file.
--
MOS_MIGRATED_REVID=114204994
|
|
|
|
|
|
|
| |
implemented yet.
--
MOS_MIGRATED_REVID=114157140
|
|
|
|
|
|
|
| |
they're part of the static structure of a rule.
--
MOS_MIGRATED_REVID=114141259
|