| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding an options parameter to DiffAwareness#getCurrentView seems like the
simplest way to achieve that.
Alternatives considered:
1. Making the diff awareness modules stateful. However, I did not want to do so
as I've also been working on improving the module API to reduce state, or at
least to have a proper lifecycle management for any necessary state.
2. Making the watchFs flag a constructor parameter. However, that would also
invalidate any implementations that don't use the flag (of which we have
several).
3. Only passing in a single boolean flag instead of an options class provider;
however, this is a more principled, futureproof API, which allows other
modules / awareness implementations to use their own options.
RELNOTES: --watchfs is now a command option; the startup option of the same
name is deprecated. I.e., use bazel build --watchfs, not blaze --watchfs
build.
--
MOS_MIGRATED_REVID=136026835
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make the BuildStartingEvent visible in the event stream by making it
an instance of the BuildEvent interface. It is the initial event of the
build event stream hence it also announces that progress updates will
follow. Its regular decedents are the expansion of the target patterns
provided at the request.
--
Change-Id: I237d8559b71ac82b10fdc492492b8435d6d1483f
Reviewed-on: https://bazel-review.googlesource.com/#/c/6277
MOS_MIGRATED_REVID=135475422
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first step on a journey toward allowing commands to AbruptExit
wherever they please, similar to how the user can press Ctrl+C at any time
and we (should) bail out as fast as we can.
By interrupting the command's main thread, we at least offer the command
the ability to see that an error requiring a bail has happened, and it should
trigger at potentially more locations, rather than just between phases.
--
MOS_MIGRATED_REVID=135152330
|
|
|
|
|
|
|
|
|
|
| |
Switch back to using the directory name, since there's no good way to get the
workspace name from `clean` (yet).
Fixes #1795.
--
MOS_MIGRATED_REVID=134083065
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks TensorFlow and other Bazel jobs on ci.bazel.io
*** Original change description ***
Change execution root for external repositories to be ../repo
Some of the important aspect of this change:
* Remote repos in the execution root are under output_base/execroot/repo_name, so the prefix is ../repo_name (to escape the local workspace name).
* Package roots for external repos were previously "output_base/", they are now output_base/external/repo_name (which means source artifacts always have a relative path from their repository).
* Outputs are under bazel-bin/external/repo_name/ (or similarly under genfiles). Note that this is a bit of a change from how this was implemented in the previous cl.
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.
Roll forward of bdfd58a.
--
MOS_MIGRATED_REVID=133709658
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some of the important aspect of this change:
* Remote repos in the execution root are under output_base/execroot/repo_name, so the prefix is ../repo_name (to escape the local workspace name).
* Package roots for external repos were previously "output_base/", they are now output_base/external/repo_name (which means source artifacts always have a relative path from their repository).
* Outputs are under bazel-bin/external/repo_name/ (or similarly under genfiles). Note that this is a bit of a change from how this was implemented in the previous cl.
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.
Roll forward of bdfd58a.
--
MOS_MIGRATED_REVID=133606309
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=133257532
|
|
|
|
|
|
|
|
|
|
|
| |
Chipping away at making the big CL for #1262 smaller. Only runfiles paths
are different right now, so this makes getPathUnderExecRoot and getSourceRoot
return the same thing. Also corrected a couple places where
Label.EXTERNAL_PATH_PREFIX and Label.EXTERNAL_PACKAGE_NAME were being used
incorrectly.
--
MOS_MIGRATED_REVID=132671081
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is now enabled by default, and this change removes the code path where
it's disabled.
Remove a few tests that were testing the removed code, and rewrite some others
that still seem useful. We still drop configured targets on configuration
changes, so we use that to check that things are dropped from Skyframe.
--
MOS_MIGRATED_REVID=132226208
|
|
|
|
|
|
|
| |
now to forbid it, since Skyframe lookups are interruptible.
--
MOS_MIGRATED_REVID=130429286
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This doesn't do anything yet, it's in preparation for the execroot rearranging
change. The execroot will have one bazel-out per repo, so it'll look like:
execroot/
repo1/
bazel-out/
local-fastbuild/
bin/
repo2/
bazel-out/
local-fastbuild/
bin/
genfiles/
repo3/
bazel-out/
local-fastbuild/
testlogs/
and so on. Thus, any output path (getBinDirectory() & friends) needs to know
what the repo name is. This changes so many places in the code I thought it
would be good to do separately, then just flip the functionality in the
execroot-rearranging commit.
While I was poking around, I changed all of the refs I could from getPackageRelativeArtifact() to getBin/GenfilesArtifact(), so that 1) rule implementation don't have to know as much about roots and 2) they'll be more isolated from other output dir changes.
`bazel info` and similar just return roots for the main repository.
The only "change" is passing around a target label in the Java rules.
Continues work on #1262.
--
MOS_MIGRATED_REVID=129985336
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=129887102
|
|
|
|
|
|
|
| |
This allows us to make the coverage module stateless if it depends on options.
--
MOS_MIGRATED_REVID=129852270
|
|
|
|
|
|
|
| |
change error messages in these cases to not assume there was an execution phase.
--
MOS_MIGRATED_REVID=129723717
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
execroot change
This is in prep for making the execution root path for external repositories
../repo_name (instead of external/repo_name). Right now, the getRunfilesPath() returns that path, so that is renamed getExecRoot() (since the runfiles are really just a reflection of the execRoot structure). getSourceRoot() replaces getPathFragment, which has always been a confusing name (it's not clear from the name
what the difference is between it and getPackageFragment()). It returns the relative path to source files for external repositories (external/repo_name).
Also renamed/moved to more sensible class a few static RepositoryName fields.
--
MOS_MIGRATED_REVID=128594419
|
|
|
|
|
|
|
| |
purposes of license checking instead of having a bespoke method in BuildConfiguration.Fragment and encoding knowledge about static linking in buildtool/ .
--
MOS_MIGRATED_REVID=128557444
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The execution root currently uses the basename of the workspace directory for
the workspace name, not the name in the WORKSPACE file. (For example, if our
sources were in /path/to/foo and our WORKSPACE file had workspace(name = "bar"),
our execution root would look like execroot/foo.)
This creates a symlink bar -> foo, so that accessing ../repo_name actually works
for the main repository.
RELNOTES[INC]: The main repository's execution root is under the main
repository's workspace name, not the source directory's basename. This shouldn't
have any effect on most builds, but it's possible it could break someone doing
weird things with paths in actions.
--
MOS_MIGRATED_REVID=128175455
|
|
|
|
| |
MOS_MIGRATED_REVID=127927495
|
|
|
|
|
|
|
|
|
| |
rather than a PRECOMPUTED value.
Having a stale TopLevelArtifactContext leads to invalidation of all the top level target nodes, causing time wasted due to a lot of cache hits for a null build.
--
MOS_MIGRATED_REVID=127585059
|
|
|
|
|
|
|
|
|
| |
and commit 6388680b44893c2b3ccddd73f6c4abb693a18cd4 now that the incompatibilities have been resolved.
RELNOTES[INC]: The host_platform and target_platform entries are not written to the master log anymore.
--
MOS_MIGRATED_REVID=127417109
|
|
|
|
|
|
|
|
|
|
|
|
| |
This warning is printed on every invocation, and the visual noise helps blind
the user to other more imporant warnings. Presumably they have chosen to set
--jobs high for a reason. Help them make a good choice with the documentation,
then don't distract them further.
RELNOTES: Remove warning for high value of --jobs.
--
MOS_MIGRATED_REVID=126369509
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125652898
|
|
|
|
|
|
|
| |
Part of the rollforward for #1262.
--
MOS_MIGRATED_REVID=125562871
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125467098
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125368119
|
|
|
|
|
|
|
| |
Part 1 of many for #1262, rolling forward.
--
MOS_MIGRATED_REVID=125334954
|
|
|
|
|
| |
--
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
|
|
|
|
| |
MOS_MIGRATED_REVID=125042781
|
|
|
|
|
|
|
|
|
|
|
| |
keep_going is turned on
Current implementation only supports custom exit code from {@link
ActionExecutionException} in fail-fast mode. This change allows appropriate
error code to be returned based on all reported errors during build phase.
--
MOS_MIGRATED_REVID=124987173
|
|
|
|
|
|
|
| |
and saying it was in ms.
--
MOS_MIGRATED_REVID=124841976
|
|
|
|
|
|
|
| |
We'll (hopefully) soon have multiple target and host configurations and we won't be able to say what they are at the beginning of the build.
--
MOS_MIGRATED_REVID=124701606
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
assumed-to-be-immutable filesystem type of output_base.
When we do have an OutputService, defer computation of the OutputService's dynamic filesystem type until we actually need it at the start of a "build" or "test" command.
This saves ~450us on each invocation, according to my benchmarks.
--
MOS_MIGRATED_REVID=121156323
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements most of a design proposal that splits constraint checking
into two pieces: *static* checks, which apply the standard constraint checking
done today, and *refined* checks, which selectively prune environments based
on select paths and check that not every environment gets pruned out.
As a result of this change, dependencies like:
java_library(
name = "lib",
restricted_to = [":A", ":B"],
deps = select({
":config_a": [":depA"],
":config_b": [":depB"],
}))
java_library(
name = "depA",
restricted_to = [":A"])
java_library(
name = "depB",
restricted_to = [":B"])
are allowed.
Specifically, even though neither "depA" nor "depB" supports [":A", ":B"], the combination of the two does. So the select as a whole supports all environments declared in lib, even though only one of those environments actually gets chosen for a given build.
Refinement makes lib "match" the chosen path. So for "config_a" builds, lib's environment set is "refined" down to [":A"], meaning [":B"]-restricted rules cannot depend on it. Likewise, for "config_b" builds, lib's environment set is "refined" down to [":B"], meaning [":A"]-restricted rules cannot depend on it. This guarantees that the restrictions imposed by the chosen select path propagate faithfully up the dependency chain.
See new documentation in ConstraintSemantics.java for more details.
--
MOS_MIGRATED_REVID=120464241
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
As part of that, move a BinTools and the WorkspaceStatusActionFactory to the
BlazeWorkspace.
--
MOS_MIGRATED_REVID=119633702
|
|
|
|
|
|
|
| |
It is only used for FDO, for which purpose it seems to be unnecessary.
--
MOS_MIGRATED_REVID=119151709
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=118563271
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=118561661
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=118560010
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=118547283
|
|
|
|
|
|
|
| |
This makes the late initialization of BuildView more obviously safe.
--
MOS_MIGRATED_REVID=118469655
|
|
|
|
|
|
|
| |
catastrophe. It doesn't add any logging information, and can mask the source of a crash if the crash has broken some invariants. <speculation>For instance, if we are crashing due to an OutOfMemoryError, the graph map may be in an inconsistent state where an attempt to add to it deleted a node</speculation>.
--
MOS_MIGRATED_REVID=118242401
|
|
|
|
|
|
|
|
|
| |
FileStateValues for output files can make their way into the Skyframe graph if a source file is symlink to an output file.
Also fix a bug where ExternalFilesHelper#isExternalFileSeen would always return true after returning true once in the past. This meant if an external file ever made its way into the Skyframe graph, we would always do a full graph scan at the beginning of each build (iow, we would always waste some CPU time doing nothing interesting).
--
MOS_MIGRATED_REVID=118190190
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=117383853
|
|
|
|
|
|
|
| |
(especially with sharding).
--
MOS_MIGRATED_REVID=116975152
|
|
|
|
|
|
|
|
|
|
|
| |
The event raised at this occasion also provides the ExecutionProgressReceiver,
so that any UI subscribing to this event has access to up-to-date progress
information.
--
Change-Id: I366497a61f92dad21de6081e5b4f1ed1e19eda12
Reviewed-on: https://bazel-review.googlesource.com/#/c/3043
MOS_MIGRATED_REVID=116256754
|
|
|
|
|
|
|
| |
--
Change-Id: I7f9edbef4dd94b5d37aabb1a17333224af3615c6
Reviewed-on: https://bazel-review.googlesource.com/#/c/3042
MOS_MIGRATED_REVID=116163936
|
|
|
|
|
|
|
|
|
|
|
| |
Map.
This makes it possible to request multiple implementations of the same ActionContext to be available via Executor#getContext().
Currently, specialized SpawnActionContexts like the sandbox or the worker strategy that might have to do a fallback each instantiate their own private copy of e.g. the StandaloneSpawnStrategy. With this change, they can instead get a global instance from the Executor.
--
MOS_MIGRATED_REVID=115705811
|