| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
With the prereq work behind this, this is surprisingly straightforward. The main change
is to eliminate BuildConfiguration.SplittableTransitionApplier, make both DynamicTransitionApplier and StaticTransitionApplier split-aware, and add awareness of this to ConfiguredTargetFunction.trimConfigurations.
Latebound splits will follow next.
--
MOS_MIGRATED_REVID=129480309
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Causes a dependency cycle for java targets:
[]
*** Original change description ***
Enable the Java launcher by default
--
MOS_MIGRATED_REVID=128638289
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=128421303
|
|
|
|
|
|
|
|
|
| |
Aspect's name that participated, if there is one.
RELNOTES:
--
MOS_MIGRATED_REVID=128085414
|
|
|
|
|
|
|
| |
Also remove other uses of TestConstants.
--
MOS_MIGRATED_REVID=127327339
|
|
|
|
|
|
|
|
|
|
| |
This is in preparation for getting rid of some of the TestConstants, makes it
easier to open-source more tests, and also allows us to run tests against
subsets of the rule classes. That is in preparation for modularizing the
rule class provider.
--
MOS_MIGRATED_REVID=126782163
|
|
|
|
|
|
|
| |
Android split transitions.
--
MOS_MIGRATED_REVID=126378169
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=126333303
|
|
|
|
|
|
|
| |
returns null for failed SkyKey evaluations.
--
MOS_MIGRATED_REVID=125684386
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
configurations.
This is important for dynamic configurations.
invalidatePackages() invalidates every file. This includes CROSSTOOL,
which the CppConfiguration fragment depends on.
For static configurations, this doesn't matter because all configurations
and their fragments are pre-computed at the beginning of the build (or
in the case of tests before the test case starts).
For dynamic configurations, the configuration can get custom-created
each configured target. When that happens after invalidatePackages,
a new CppConfiguration instance gets created. This can impact code
like CcLibraryHelper.addDeps(), which assumes equality (CppConfiguration
has no .equals() method).
Normally that's not a problem because the same CppConfiguration instance
is used for every target in the post-invalidatePackages() graph. But
host configurations break this: we keep a non-Skyframe host config cache
in SkyframeBuildView.hostConfigurationCache. Without this change, it
doesn't get cleared out, so it keeps old pre-invalidation references that
under certain circumstances get applied to post-invalidation targets.
--
MOS_MIGRATED_REVID=125379342
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125171507
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125160288
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
repositories
One interesting side effect of how this is implemented is that for external
repositories, bin/ and genfiles/ are combined. External repo output is under
bazel-out/local-fastbuild/repo_name for each repo.
Fixes #1262.
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions.
--
MOS_MIGRATED_REVID=125095799
|
|
|
|
|
|
|
|
|
| |
This involved refactoring BuildViewTestCase a bit so that its behavior is closer to that of Bazel with --experimental_interleave_loading_and_analysis.
RELNOTES:
--
MOS_MIGRATED_REVID=124816624
|
|
|
|
|
|
|
| |
making it easier to create PackageFactory instances in unit tests.
--
MOS_MIGRATED_REVID=124566862
|
|
|
|
|
|
|
|
|
| |
BlazeRuntime#getProductName() or a reference to TestConstants.PRODUCT_NAME for tests.
This CL prepares the codebase in order to delete the constant.
--
MOS_MIGRATED_REVID=122993568
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the C++-contributed fragment.
e.g. provide the ability to translate:
bazel-out/gcc-X-glibc-Y-x86-fastbuild/
to:
bazel-out/fastbuild/
This applies to artifacts built with dynamic configurations for targets with no C++ fragments in their configuration.
--
MOS_MIGRATED_REVID=122643518
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=122052211
|
|
|
|
|
|
|
|
|
| |
used error checks.
This is partly motivated by unknown commit which moves the computation of default attribute values from analysis to loading phase. Consequently, checkError() can no longer be used for the affected tests. Instead, we will be using checkLoadingPhaseError().
--
MOS_MIGRATED_REVID=121922683
|
|
|
|
| |
MOS_MIGRATED_REVID=121896547
|
|
|
|
|
|
|
|
|
|
|
| |
command to see if a flag policy applies, check whether the flag applies by seeing if its list of commands matches one of the commands in the hierarchy.
This avoids the tedious and brittle specification of all commands that may use a flag, while providing better filtering out of inapplicable flags.
RELNOTES: A FlagPolicy specified via the --invocation_policy flag will now match the current command if any of its commands matches any of the commands the current command inherits from, as opposed to just the current command.
--
MOS_MIGRATED_REVID=121159131
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=121116897
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NativeAspectClass.
This a large refactoring of the aspects, currently we have the following:
- AspectClasses: The interface AspectClass is a implemented by either
SkylarkAspectClass or NativeAspectClass<NativeAspectFactory>.
They are wrappers for the AspectFactories and they hold the information about
the Class<> of the factory.
- AspectFactories (FooAspect.java): Represented by the interfaces
ConfiguredAspectFactory and NativeAspectFactory, also by
the interface ConfiguredNativeAspectFactory which is the union of the two
aforementioned interfaces.
All aspects implement ConfiguredNativeAspectFactory except Skylark aspects
which implement only ConfiguredAspectFactory.
After this CL the distinction between NativeAspectFactories and NativeAspectClasses
dissappear, namely aspect that extends NativeAspectClass is considered native
and if it implements ConfiguredAspectFactory it is configured.
Therefore the interfaces NativeAspectFactory and ConfiguredNativeAspectFactory
both disappear.
With this refactoring the aspectFactoryMap in the ConfiguredRuleClassProvider
changes its type from (String -> Class<? extends NativeAspectClass>)
to (String -> NativeAspectClass) which means it is now able to have an instance
of the aspect instead of its Class only.
By doing this, it is now possible to pass parameters when creating an
aspect in the ConfiguredRuleClassProvider.
--
MOS_MIGRATED_REVID=120819647
|
|
|
|
|
|
|
| |
Except in action execution logic (ActionExecutionFunction, SkyframeActionExecutor, etc.), switch Action interface references to either ActionAnalysisMetadata if possible or ActionExecutionMetadata.
--
MOS_MIGRATED_REVID=120723431
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=119942803
|
|
|
|
|
|
|
|
|
| |
The BlazeDirectories are also needed for loading the WORKSPACE file, so inject
them as part of preparePackageLoading rather than in createConfigurations,
which is too late.
--
MOS_MIGRATED_REVID=119931633
|
|
|
|
|
|
|
| |
rolled back in commit 1250fdac4c7769cfa200af8b4f9b061024356fea. There was nothing wrong with that change.
--
MOS_MIGRATED_REVID=119756383
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
--
MOS_MIGRATED_REVID=119625653
|
|
|
|
|
|
|
|
|
|
|
| |
SkyFunction.
This removes one of the two reasons for the existence of BuildConfiguration#prepareToBuild() which makes implementing dynamic configurations impossible and also makes FDO support halfway sane; now FDO is exactly as ugly as remote repositories, that is to say, reasonably okay.
Ideally, we'd implement the zip extraction as an Action and make it a TreeArtifact, but support for TreeArtifacts is not mature yet enough, so it's not possible at the moment.
--
MOS_MIGRATED_REVID=119150223
|
|
|
|
|
|
|
| |
question, rather than during loading of the target's package. This way a target's package won't be in error if e.g. an unrelated target has empty 'srcs'.
--
MOS_MIGRATED_REVID=119079777
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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=118560010
|
|
|
|
|
|
|
| |
looking up actions registered from Aspects that use a non-empty AspectParameters.
--
MOS_MIGRATED_REVID=118455180
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=117939121
|
|
|
|
|
|
|
|
| |
This is one of the last pieces of state in BlazeRuntime that isn't safe to
share across command invocations.
--
MOS_MIGRATED_REVID=117910631
|
|
|
|
|
|
|
| |
to BuildViewTestCase.
--
MOS_MIGRATED_REVID=117571330
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
getGeneratingSpawnAction.
--
MOS_MIGRATED_REVID=117290280
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
directly to newDeterministicWriter.
--
MOS_MIGRATED_REVID=115626619
|
|
|
|
|
|
|
| |
Remove the constant.
--
MOS_MIGRATED_REVID=115555161
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor the CommandEnvironment to no longer create a LoadingPhaseRunner
eagerly. Unfortunately, that means we can't reuse the TargetPatternEvaluator
either. Fortunately, the SkyframeTargetPatternEvaluator is a very lightweight
class, which only contains the offset as state, so we just create a new
instance whenever we need one.
On the plus side, the LoadingPhaseRunner API is now stateless, and the
QueryCommand no longer creates a unnecessary LoadingPhaseRunner instance.
--
MOS_MIGRATED_REVID=114519731
|
|
|
|
|
|
|
| |
implemented yet.
--
MOS_MIGRATED_REVID=114157140
|
|
|
|
|
|
|
| |
Stamping make build non-deterministic and should not be the default.
--
MOS_MIGRATED_REVID=113040937
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Violates layering - genrule should not depend on platform- or language-specific parts.
*** Original change description ***
Add a DEVELOPER_DIR make variable to genrules to propagate the apple xcode environment variable DEVELOPER_DIR to commands.
If $(DEVELOPER_DIR) is included in the genrule command, we bootstrap the XCODE_VERSION_OVERRIDE environment variable to the command.
The contract with the actual action executor is, if XCODE_VERSION_OVERRIDE is present in the environment, to additionally bootstrap the DEVELOPER_DIR absolute path to the command.
--
MOS_MIGRATED_REVID=112951074
|
|
|
|
|
|
|
|
|
|
| |
environment variable DEVELOPER_DIR to commands.
If $(DEVELOPER_DIR) is included in the genrule command, we bootstrap the XCODE_VERSION_OVERRIDE environment variable to the command.
The contract with the actual action executor is, if XCODE_VERSION_OVERRIDE is present in the environment, to additionally bootstrap the DEVELOPER_DIR absolute path to the command.
--
MOS_MIGRATED_REVID=112605616
|
|
|
|
|
|
|
|
|
|
| |
In particular, don't immediately call into the ForTesting functions; I need to
refactor some code that is called from here, and the semantics when called
from ide info should not change. Changes to semantics when called from tests
are much less problematic - we can simply run all the tests.
--
MOS_MIGRATED_REVID=111846384
|
|
|
|
|
|
|
|
|
|
| |
Fixes #733.
RELNOTES: Relative paths can now be used for 'path' with new_local_repository
and local_repository.
--
MOS_MIGRATED_REVID=111620894
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
external/ directory, i.e. were created by Bazel.
This avoids a cycle that arose when a file is load()ed from the WORKSPACE file that is reached through a symlink to an external directory:
* The WORKSPACE file depends on the package lookup node of the .bzl file
* The package lookup node (transitively) depends on wherever the symlink points
* The target of the symlink is an external file and as such, it depends on the WORKSPACE file
This will probably be, erm, interesting to solve when we get as far as to load stuff from external repositories in the WORKSPACE file, but we are just not there yet.
--
MOS_MIGRATED_REVID=110344658
|