aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java
Commit message (Collapse)AuthorAge
...
* Rollback of commit 2891ec527eed27d0c6460d66f51cb66a43373b6a.Gravatar Damien Martin-Guillerez2016-10-14
| | | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Causes our integration tests on Darwin to time out *** Original change description *** Make --watchfs a common command option. 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 implement... *** -- MOS_MIGRATED_REVID=136070807
* Make --watchfs a common command option.Gravatar Ulf Adams2016-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Enable Bazel commands to exit at any time.Gravatar Michael Staib2016-10-05
| | | | | | | | | | | | | 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
* Add an info item to show the currently inherited client environmentGravatar Klaus Aehlig2016-09-21
| | | | | | | | | | | | | Add 'bazel info client-env' which outputs entries for the configuration file that would freeze the current client environment. The main intended use case is to use 'bazel info client-env >> .bazelrc' to keep the project reproducible once a suitable value for the environment variables that used to be taken from the client environment has been found. -- Change-Id: Ib4d14dd824d223f335a4d4de04ee21c4a3ec4d83 Reviewed-on: https://bazel-review.googlesource.com/#/c/6112 MOS_MIGRATED_REVID=133699234
* Remove some more occurences of deprecated getExecRoot() callsGravatar Kristina Chodorow2016-09-15
| | | | | -- MOS_MIGRATED_REVID=133257532
* Track client environment in SkyframeGravatar Klaus Aehlig2016-09-14
| | | | | | | | | | | | | ...to determine which actions have to be recomputed based on changes to the client environment. Note that this change does it the simple way and reconsideres all actions on a changed client environment, while still only reexecuting those, where the part that was inherited from the environment actually did change. -- Change-Id: Ie1116d094642165e5e959447a6fcf49d19b37d6e Reviewed-on: https://bazel-review.googlesource.com/#/c/5431 MOS_MIGRATED_REVID=133010705
* Only call BlazeModule.handleOptions when we're done editing them.Gravatar Ulf Adams2016-09-06
| | | | | | | | | Previously, it was possible for us to edit the options in command.editOptions, after reporting them to the modules, though I don't have any examples of that happening. I found this just looking through the code. -- MOS_MIGRATED_REVID=132310873
* Add a framework for prefetching input files (in case they come from remote ↵Gravatar Philipp Wollermann2016-08-25
| | | | | | | file systems). -- MOS_MIGRATED_REVID=131280794
* Support setting the build id via the client environmentGravatar Klaus Aehlig2016-08-16
| | | | | | | | | | | | | | | | Normally, Bazel generates a new UUID for every build invocation. In some use cases, however, the invocation of Bazel is part of a larger build process or otherwise controlled by a different tool. In this case, it is useful to tell Bazel the identifier of the build to make it fit with other identifiers generated by the controlling process. To achieve this, the variable BAZEL_INTERNAL_INVOCATION_ID from the client environment is inspected and if it is set and its value is a syntactically correct UUID, this UUID will be used as the identifier for the build. It is in the responsibility of the caller to ensure the id is sufficiently unique if that environment variable is set. -- MOS_MIGRATED_REVID=130079446
* Remove unused methodGravatar Kristina Chodorow2016-07-21
| | | | | -- MOS_MIGRATED_REVID=128080879
* Various fixes for gRPC mode:Gravatar Lukacs Berki2016-07-07
| | | | | | | | - Use the abrupt exit protocol to return the correct exit code when the server dies unexpectedly in gRPC mode - Report the command waiting time correctly even if the waiting is done within the server -- MOS_MIGRATED_REVID=126780186
* Post BlazeDirectories as part of CommandStartedEvent.Gravatar Ulf Adams2016-07-06
| | | | | | | | We have some modules that assume 1:1 correspondence between servers and workspaces, which I'd like to fix. -- MOS_MIGRATED_REVID=126628292
* Make "bazel info" load only the packages that are necessary for its job.Gravatar Lukacs Berki2016-06-01
| | | | | -- MOS_MIGRATED_REVID=123723401
* When we don't have an OutputService, precompute and cache the ↵Gravatar Nathan Harmata2016-05-02
| | | | | | | | | | | 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
* Inject the BlazeDirectories in SkyframeExecutor.Gravatar Ulf Adams2016-04-15
| | | | | | | | | 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
* Move BlazeRuntime.initCommand to BlazeWorkspace.Gravatar Ulf Adams2016-03-30
| | | | | -- MOS_MIGRATED_REVID=118568284
* Move most of the workspace-handling code from BlazeRuntime to a new class.Gravatar Ulf Adams2016-03-30
| | | | | -- MOS_MIGRATED_REVID=118563271
* Move most BlazeRuntime methods related to workspace directories to CommandEnv.Gravatar Ulf Adams2016-03-30
| | | | | -- MOS_MIGRATED_REVID=118561661
* Move the BuildView creation to BuildTool, the only remaining user.Gravatar Ulf Adams2016-03-30
| | | | | -- MOS_MIGRATED_REVID=118547283
* Delay BuildView creation in CommandEnvironment until beforeCommand().Gravatar Ulf Adams2016-03-30
| | | | | | | | This is so that we can access the build options during creation, which is a step towards making the coverage module stateless. -- MOS_MIGRATED_REVID=118475354
* Remove calls of CommandEnvironment.getView; remove ide-info from BuildView.Gravatar Ulf Adams2016-03-30
| | | | | | | This makes the late initialization of BuildView more obviously safe. -- MOS_MIGRATED_REVID=118469655
* Move TimestampGranularityMonitor to CommandEnvironment.Gravatar Ulf Adams2016-03-23
| | | | | | | | This is one of the last pieces of state in BlazeRuntime that isn't safe to share across command invocations. -- MOS_MIGRATED_REVID=117910631
* Add an experimental flag to enable the Skyframe-based loading phase runner.Gravatar Ulf Adams2016-02-12
| | | | | | | | | | | | | | 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
* Use Bazel Preconditions variant which avoids varargs array creationGravatar Mark Schaller2015-12-10
| | | | | | | Reduces garbage. -- MOS_MIGRATED_REVID=109914243
* Track the entire OutputService instead of just the BatchStatter.Gravatar Eric Fellheimer2015-11-16
| | | | | -- MOS_MIGRATED_REVID=107800790
* Refactor the loading phase runner creation and remove the test duplication.Gravatar Ulf Adams2015-11-06
| | | | | | | | | The loading phase runner is now always created by the SkyframeExecutor, and the duplicate test is dropped in favor of subclassing and overriding one method. -- MOS_MIGRATED_REVID=107188756
* Add a skyframe-based loading phase runner hidden behind a compile-time const.Gravatar Ulf Adams2015-11-03
| | | | | | | More testing required before we even add a command-line option. -- MOS_MIGRATED_REVID=106922350
* Split the LoadingPhaseRunner into interface and implementation.Gravatar Ulf Adams2015-11-03
| | | | | | | | This is in preparation for adding a Skyframe-based implementation that uses the recently added TargetPatternPhaseFunction. -- MOS_MIGRATED_REVID=106920157
* Move LoadingPhaseRunner.loadForConfigurations to CommandEnvironment.Gravatar Ulf Adams2015-11-02
| | | | | | | | It's unclear if the method is still necessary with Skyframe, but I don't want to investigate in detail right now. -- MOS_MIGRATED_REVID=106838896
* Remove BlazeRuntime.reporter; use a BlazeModule to attach event handlers.Gravatar Ulf Adams2015-11-02
| | | | | | | | This only affects tests that previously set a Reporter on the BlazeRuntime; the production code is already using the per-command Reporter in all cases. -- MOS_MIGRATED_REVID=106820846
* Move most of BlazeRuntime.beforeCommand() to CommandEnvironment.Gravatar Ulf Adams2015-10-20
| | | | | -- MOS_MIGRATED_REVID=105841866
* Move the outputService field to the CommandEnvironment.Gravatar Ulf Adams2015-10-20
| | | | | -- MOS_MIGRATED_REVID=105841398
* Move commandStartTime from BlazeRuntime to CommandEnvironment.Gravatar Ulf Adams2015-10-20
| | | | | -- MOS_MIGRATED_REVID=105840775
* Move workingDirectory to CommandEnvironment.Gravatar Ulf Adams2015-10-20
| | | | | | | Preparation for running multiple commands in parallel. -- MOS_MIGRATED_REVID=105840167
* Move loadingPhaseRunner from BlazeRuntime to CommandEnvironment.Gravatar Ulf Adams2015-09-30
| | | | | | | | | | The loadingPhaseRunner is stateless, and moving it prevents accidentally adding state to it. The TargetPatternEvaluator is not stateless, but is currently retained by the SkyframePackageManager, so we still keep that state across invocations (see follow-up CL). -- MOS_MIGRATED_REVID=104187659
* BlazeRuntime.reporter is now null in production.Gravatar Ulf Adams2015-09-30
| | | | | -- MOS_MIGRATED_REVID=104102106
* Move the BuildView over from BlazeRuntime to CommandEnvironment.Gravatar Ulf Adams2015-09-28
| | | | | | | | | It doesn't contain any state anymore, so creating a new instance per command is safe. On the other hand, it would be just as safe to merge the remaining code into SkyframeBuildView, which we might do in the future. -- MOS_MIGRATED_REVID=104010694
* Rationalize copyright headersGravatar Damien Martin-Guillerez2015-09-25
| | | | | | | | | | | The headers were modified with `find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'` And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan. The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand. -- MOS_MIGRATED_REVID=103938715
* Remove more uses of errorEventHandler (previously of Reporter).Gravatar Ulf Adams2015-09-24
| | | | | | | Removes mutable global state. -- MOS_MIGRATED_REVID=103837106
* Remove all direct uses of SkyframeExecutor.reporter.Gravatar Ulf Adams2015-09-24
| | | | | | | | | Instead, pass an appropriate EventHandler instance in. This is in preparation for creating a per-command EventHandler, in preparation for allowing multiple commands to run in parallel. This is removal of shared global state. -- MOS_MIGRATED_REVID=103828963
* Simplify a method signature that isn't used elsewhere anymore.Gravatar Ulf Adams2015-09-24
| | | | | -- MOS_MIGRATED_REVID=103744520
* Move Label from the lib.syntax to the lib.cmdline package so that:Gravatar Lukacs Berki2015-09-21
| | | | | | | | | | - Label parsing can be simplified - lib.syntax is only contains the code for Skylark and is reasonably independent from the problem domain of building things This change is mostly only changes to imports declarations. The rest is reversing the dependency between :cmdline and :syntax and moving a tiny amount of code between Printer and FilesetEntry and the addition of SkylarkPrintableValue that I couldn't be bothered to separate out into its own change. -- MOS_MIGRATED_REVID=103527877
* Rename ModuleEnvironment.getFileFromDepot to getFileFromWorkspace.Gravatar Ulf Adams2015-09-21
| | | | | -- MOS_MIGRATED_REVID=103367814
* Move getOutputFilesystem to CommandEnvironment; refactor BlazeRuntime commands.Gravatar Ulf Adams2015-09-21
| | | | | | | | | | This change makes it so commands are no longer both stored in the BlazeRuntime and in the BlazeCommandDispatcher. Instead, they are only stored in BlazeRuntime and usually passed there during construction. We have some tests where this is tricky, so I'm keeping the old code path for now. -- MOS_MIGRATED_REVID=103364581
* Move the commandId and getCommandStartTime() to CommandEnvironment.Gravatar Ulf Adams2015-09-21
| | | | | | | | They are usually on the same line, so doing this in separate changes can cause merge conflicts. -- MOS_MIGRATED_REVID=103362797
* Make the module environment invoked exit code path thread-safe.Gravatar Ulf Adams2015-09-17
| | | | | | | | | | The module environment can be called from any number of threads, not necessarily from the main thread. I don't know if it's a problem right now - we don't have any problem reports that could be caused by this - but better be safe than sorry. -- MOS_MIGRATED_REVID=103277567
* Move the clientEnv to the CommandEnvironment.Gravatar Ulf Adams2015-09-17
| | | | | -- MOS_MIGRATED_REVID=103269584
* Move several parts of BlazeRuntime to CommandEnvironment.Gravatar Ulf Adams2015-09-16
| | | | | | | | The main piece is the blaze module environment, which is only valid during command execution. Also configuration creation and precompleteCommand. -- MOS_MIGRATED_REVID=103186467
* Change most calls to BlazeRuntime.getReporter() to use CommandEnvironment.Gravatar Ulf Adams2015-09-16
| | | | | -- MOS_MIGRATED_REVID=103175472
* Introduce CommandEnvironment and pass it instead of BlazeRuntime.Gravatar Ulf Adams2015-09-15
The very long term plan is to make BlazeRuntime immutable, so that we can run multiple commands in the same server. -- MOS_MIGRATED_REVID=103080946