aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
Commit message (Collapse)AuthorAge
* Have the RemoteSpawnRunner use the execution platform present in the Spawn ↵Gravatar John Cater2017-12-19
| | | | | | | | | to get the remote execution properties. Fixes #4128. Change-Id: I7e71caef2465204d2dd8225448d54e52366807e6 PiperOrigin-RevId: 179595126
* Fix links to Build EncyclopediaGravatar vladmos2017-12-19
| | | | PiperOrigin-RevId: 179556225
* Automated rollback of commit 82e68b75304438c96ff878a0c2b8d18b42002486.Gravatar aehlig2017-12-19
| | | | | | | | | | | | | | Fixes #4322, #4306. *** Reason for rollback *** Introduces a deadlock (see https://github.com/bazelbuild/bazel/issues/4322) *** Original change description *** Make FileSystem operate on LocalPath instead of Path. PiperOrigin-RevId: 179549866
* Consolidate instances of the --keep_going flag.Gravatar juliexxia2017-12-18
| | | | | RELNOTES: None. PiperOrigin-RevId: 179468685
* Improve doc for .files and add more links/examples.Gravatar laurentlb2017-12-18
| | | | | RELNOTES: None. PiperOrigin-RevId: 179448100
* Set the execution platform on a new SpawnAction based on the RuleContext.Gravatar John Cater2017-12-18
| | | | | | | Part of #4128. Change-Id: Ic46d2db2017b6cf4c14a91653ab75b3381b80b5a PiperOrigin-RevId: 179426362
* Fix a documentation linkGravatar vladmos2017-12-18
| | | | PiperOrigin-RevId: 179416493
* Change CommandHelper to use TemplateExpander directlyGravatar ulfjack2017-12-18
| | | | | | | | This is a partial rollback of https://github.com/bazelbuild/bazel/commit/e8d32b7c922f65539b74357711d5ad6b70934115, only the CommandHelper change. Progress on #2475. PiperOrigin-RevId: 179413908
* Optionally allow loaded packages to not be tracked.Gravatar janakr2017-12-15
| | | | | | If we are running with a single source root and not going to set up the execroot (since we know how to resolve all packages), we can avoid tracking loaded packages, since they're only used to set up the execroot. PiperOrigin-RevId: 179234932
* Fix the documentation formatting for SkylarkAttrGravatar vladmos2017-12-15
| | | | | | Make sure all sentences are capitalised and end with a point PiperOrigin-RevId: 179214070
* Make FileSystem operate on LocalPath instead of Path.Gravatar tomlu2017-12-14
| | | | PiperOrigin-RevId: 179082062
* Clarify types of `ctx.attr.<attr_name>` objects.Gravatar vladmos2017-12-14
| | | | PiperOrigin-RevId: 179053724
* Rename OutputGroupProvider -> OutputGroupInfo.Gravatar dslomov2017-12-14
| | | | | RELNOTES: None PiperOrigin-RevId: 179046403
* Add more links to examples in the documentation.Gravatar laurentlb2017-12-13
| | | | | RELNOTES: None. PiperOrigin-RevId: 178946746
* Allow not recognized Artifact category to be handled in Analysis phaseGravatar Googler2017-12-13
| | | | | | | Nonexistent artifact categories or categories that are not supported by the action config now throw InvalidConfigurationException instead of ExpansionException. This allows the checked exception to be caught and reported as a RuleErrorException in Analysis phase. RELNOTES: None. PiperOrigin-RevId: 178919727
* Fix the documentation to allow making links to BE documetation articlesGravatar vladmos2017-12-13
| | | | PiperOrigin-RevId: 178910168
* Removes skyframe/serialization's dependency on cmdline and vfs. Instead, ↵Gravatar Googler2017-12-11
| | | | | | make cmdline and vfs depend on serialization. This allows a class to have a pointer to its codec, which simplifies automatic recursive composite codecs. PiperOrigin-RevId: 178683500
* Doc: mention that sibling must be in the same package.Gravatar laurentlb2017-12-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 178609245
* Avoid expansion of NestedSets in MiddlemanFactory.Gravatar Benjamin Peterson2017-12-11
| | | | | | | | | | | | MiddlemanFactory wants to check if the middleman inputs set is empty or singleton. A NestedSet can answer both queries efficiently if the right APIs are used. My ultimate goal here is to avoid the expansion of runfiles artifacts nested sets until execution. Change-Id: I29a269df757ef41b1410bbb492cf24c926df6114 PiperOrigin-RevId: 178600943
* Add --implicit_deps custom filtering to configuredtargetqueryenvironment.Gravatar juliexxia2017-12-08
| | | | | | This implementation requires adding an interned list of LabelAndConfiguration objects to each RuleConfiguredTarget ('implicit' is an attribute describer, not a dep describer so filtering needs to happen while attribute information still exists). PiperOrigin-RevId: 178411882
* Register builtins with RuntimeGravatar brandjon2017-12-07
| | | | | | | | | | | This covers all builtins in classes that use SkylarkSignatureProcessor#configureSkylarkFunctions. Generally this means things you define with @SkylarkSignature. It is now an error to call configureSkylarkFunctions multiple times for the same class. It should only be called in static initializers. Runtime's static knowledge of builtins has been factored into Runtime.BuiltinRegistry. RELNOTES: None PiperOrigin-RevId: 178295926
* Remove the ctx.middle_man function from Skylark.Gravatar lberki2017-12-07
| | | | | | | | Let's not expose middlemen to Skylark if we can help. RELNOTES[INC]: The ctx.middle_man function is not supported anymore. PiperOrigin-RevId: 178226393
* Upgrade --target_environment, --auto_cpu_environment_group.Gravatar gregce2017-12-05
| | | | | | | 1: Allow both in the same build (before, just one would trigger) 2: Don't check environment defaults from other groups, since neither flag asserts any expectations on those groups PiperOrigin-RevId: 178026699
* Add --experimental_java_coverage.Gravatar elenairina2017-12-05
| | | | | | | | | | | | | | | | | | Context: java_import or other custom rules (genrules or Skylark) do not propagate coverage information. Coverage metadata is retrieved from the compilation information and it is passed around through providers as Artifact(s). The problem with the current implementation is that there is no way of retrieving instrumentation metadata from arbitrary jars provided by java_import or other custom rules. --experimental_java_coverage solves the issue presented above ONLY for the java rules (has no effect for android/[]/etc). Implementation details: * For each build jar create a .txt file containing the relative path of each Java file. This file is included in the build jar. It is used for recreating the correct path for each covered file when included in the coverage report. * java_binary/java_test will set 3 environment variables: 1) JACOCO_METADATA_JAR - in experimental mode will be a txt file containing all the jars considered for collecting coverage (JacocoCoverageRunner filters out the ones that don't have .uninstrumented.class files). In non-experimental mode will be a jar containing all the instrumented class files. 2) JACOCO_MAIN_CLASS - The main class to be called for the current coverage run. Previously this information was embedded in the JACOCO_METADATA_JAR's manifest. 3) JACOCO_JAVA_RUNFILES RELNOTES: --experimental_java_coverage is available for testing. PiperOrigin-RevId: 177941471
* Added execution platform to the ActionExecutionMetadata.Gravatar John Cater2017-12-04
| | | | | | | Part of #4128. Change-Id: Id822d3ae6f8daf7c92a75bd8bd28590d4f625845 PiperOrigin-RevId: 177905460
* Platform options are no longer experimental.Gravatar jcater2017-12-04
| | | | | RELNOTES: The --host_platform and --platform flags are no longer experimental. PiperOrigin-RevId: 177863761
* Remove some deadish Windows-related runfiles code.Gravatar Benjamin Peterson2017-12-04
| | | | | | | | | | | | | | | In particular, SymlinkTreeAction no longer needs to accept artifacts as an input. --experimental_enable_runfiles now immediately reports an error on Windows. This mostly unwinds e4974e4cc6aeb437d36b3b36eb20142b7120fb16 ("Separate runfiles middlemen into two layers") and 41f4456ac2348bef66739194853a1ddadcbb887e ("Make runfiles tree creation on Windows depend on the artifacts of the actual runfiles."). See https://groups.google.com/d/msg/bazel-dev/btOAgxv434g/bDhTOOePAgAJ. Change-Id: Iac3308669bfc07abfd1c91445922269d8fdc2a26 PiperOrigin-RevId: 177837504
* Switch GenRuleBase to use the new Expander APIGravatar ulfjack2017-12-04
| | | | | | | | | | | | | | | | | This is a roll-forward of https://github.com/bazelbuild/bazel/commit/e8d32b7c922f65539b74357711d5ad6b70934115, which broke some genrules, but without some cleanup changes which I'm submitting separately, and with a fix for the bug. The problem was that I switched from withExecLocations(labels) to withExecLocations(); the original code was in CommandHelper, and the new code in GenRuleBase, so this was not obvious. Also, we didn't have test coverage for this case - note that the specified labels are _added_ to the default map of labels, rather than replacing the default map of labels. This only matters if the dependent rule provides a GenRuleSourcesProvider, which only a single (Google-internal) rule does. PiperOrigin-RevId: 177802902
* Fix missing print statements in output functionsGravatar vladmos2017-12-02
| | | | PiperOrigin-RevId: 177708823
* Mark relative_to_caller_repository as deprecated in Label constructor.Gravatar laurentlb2017-11-30
| | | | | RELNOTES: in the Label() function, relative_to_caller_repository is now deprecated. PiperOrigin-RevId: 177443907
* Add ActionKeyContext to Action#getKey.Gravatar tomlu2017-11-29
| | | | | | | This key context can be used by actions to share partial key computations, for instance when computing MD5s for nested sets. RELNOTES: None PiperOrigin-RevId: 177359607
* Remove some unused extension points.Gravatar Googler2017-11-29
| | | | | RELNOTES: None. PiperOrigin-RevId: 177326265
* Clean up ExecutionRequirementsGravatar ulfjack2017-11-29
| | | | | | | | | | | | | | | | | | | - remove BaseSpawn.Local; instead, all callers pass in the full set of execution requirements they want to set - disable caching and sandboxing for the symlink tree action - it does not declare outputs, so it can't be cached or sandboxed (fixes #4041) - centralize the existing execution requirements in the ExecutionRequirements class - centralize checking for execution requirements in the Spawn class (it's possible that we may need a more decentralized, extensible design in the future, but for now having them in a single place is simple and effective) - update the documentation - forward the relevant tags to execution requirements in TargetUtils (progress on #3960) - this also contributes to #4153 PiperOrigin-RevId: 177288598
* Make check_fileset_dependencies_recursively flag a no-op. We will always ↵Gravatar kush2017-11-28
| | | | | | | behave as if this flag is true. RELNOTES: None PiperOrigin-RevId: 177219652
* refactor: remove unnecessary Enums from ExpanderGravatar L?szl? Csomor2017-11-28
| | | | | | | | | | | | | | | These enums were only used inside the class and only to slighlty improve readability. The Tokenize enum was a simple boolean. The Options enum was implementing two boolean flags, and it improved call-site readability at the cost of implementation-site readability and checking if the value is set via set-containment. Change-Id: I3858ff0c67f89c8b2c5631e260ce79cd939c6eb1 PiperOrigin-RevId: 177155294
* refactor: mv LocationExpander.Options to ExpanderGravatar L?szl? Csomor2017-11-28
| | | | | Change-Id: I4bcc7c0024646b7d4372464f5290375d41702429 PiperOrigin-RevId: 177150713
* refactor: add LocationExpander factoriesGravatar L?szl? Csomor2017-11-28
| | | | | | | | | | | | | | | | | | Stop using LocationExpander.Options in LocationExpander constructors, because the Options semantics are confusing. I also need the refactoring in order to extend the expansion semantics: to support expanding to absolute paths on Windows, where $(location) should not expand to the (non-existent) runfiles path, but to the absolute path the runfiles symlink would point to. See https://github.com/bazelbuild/bazel/issues/4171 Change-Id: Ie4d47ec3807bc3c6e39156efa1746b666f69f99c PiperOrigin-RevId: 177147372
* bazel: s/ctx.run()/ctx.actions.run()/Gravatar Googler2017-11-27
| | | | | | | I can't find whether ctx.run() actually exists. https://docs.bazel.build/versions/master/skylark/lib/ctx.html implies it doesn't. RELNOTES: None. PiperOrigin-RevId: 177005229
* Shape sharing for Skylark providers.Gravatar Benjamin Peterson2017-11-27
| | | | | | | | | | Add CompactSkylarkInfo, which stores its values as an array instead of a map. The space savings will probably not be dramatic because providers usually have a limited amount of keys. But, there are a lot of them! Change-Id: Idd452a5e3982f773b1c5202c73f3d7031ec022c6 PiperOrigin-RevId: 176995376
* Add platform data into to the ToolchainContext unconditionally.Gravatar John Cater2017-11-22
| | | | | | | Part of #4128. Change-Id: I1e043e7290912de5b246dbb8748cb2ad865ce38c PiperOrigin-RevId: 176664440
* Return SpawnResults using a List instead of a Set.Gravatar ruperts2017-11-21
| | | | | | | | | Currently we don't care about the list order of SpawnResults. However, we may care about the list order later. Also, if the equals() method for SpawnResults is ever changed then it may be problematic to return SpawnResults in a Set. Aside: ActionResults use SpawnResults to calculate cumulative execution times for Actions, and may provide other metrics in future. RELNOTES: None. PiperOrigin-RevId: 176579460
* Added new RuleClass flag to turn off platform support, to stop dependency ↵Gravatar John Cater2017-11-21
| | | | | | | | | cycles when loading platforms. Part of #4128. Change-Id: Ie55a91aaaec15d8eb537f59131fc2e69a8f9c251 PiperOrigin-RevId: 176509311
* Change Platform.remoteExecutionProperties to be a String, not a dict.Gravatar John Cater2017-11-21
| | | | | | | | | | This is needed for the ability to synthesize the correct remote execution protos from a platform rule. Part of #4128. Change-Id: I7fa8acf45642a4df4e2beb1ba9c57c2536670486 PiperOrigin-RevId: 176504885
* SOURCE_DATE_EPOCH environment variable override the timestampGravatar Damien Martin-Guillerez2017-11-21
| | | | | | | | | | | | | | | | | | | | This is applying the version 1.1 of the specification (https://reproducible-builds.org/specs/source-date-epoch/) where the only timestamp that Bazel puts in the final targets is overridden by the value of SOURCE_DATE_EPOCH. This change also remove the legacy SOURCE_DATE_EPOCH handling which wasn't really following the spec. Note that Bazel itself tries hard to remove all timestamps from intermediary binaries and overridde SOURCE_DATE_EPOCH in most action, which is a not according to the version 1.0 of the spec but according to the expected change for version 1.1. RELNOTES: SOURCE_DATE_EPOCH (https://reproducible-builds.org/specs/source-date-epoch/) can be used to override the timestamp used for stamped target (when using --stamp). Fixes #2240. Change-Id: I074e7905fa6745cc706f7391340aeae9188909ca PiperOrigin-RevId: 176489717
* Remove outdated javadoc parameter.Gravatar gregce2017-11-16
| | | | PiperOrigin-RevId: 176006176
* Refactor the representation of a collection of package specificationsGravatar cushon2017-11-15
| | | | PiperOrigin-RevId: 175832159
* Documentation for aspects-on-aspects.Gravatar Dmitry Lomov2017-11-14
| | | | | Change-Id: If8f4c75b65d5654703a68fe70277dc597773c85d PiperOrigin-RevId: 175737062
* Automated rollback of commit 10b0d8aa6b73a024cc007c5e075cb329add878ef.Gravatar lberki2017-11-14
| | | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks Google-internal targets, sadly. *** Original change description *** Ban middlemen from runfiles artifacts. Previous changes have removed all middlemen from runfiles artifacts. This CL locks it down and removes various now-redundant *WithoutMiddlemen() methods from Runfiles. I put a check for middlemen in ConflictChecker.put, which should be a chokepoint for runfiles artifacts. It's unfortunate we can't detect middlemen earlier than execution, but I can't see a way to efficiently check every runfiles artifact earlier. Cha... *** RELNOTES: None. PiperOrigin-RevId: 175650018
* toolchain_type can export make variables from the toolchain instead of theGravatar cpeyser2017-11-13
| | | | | | configuration. PiperOrigin-RevId: 175532550
* Allow 'runs_per_test' to be overridden.Gravatar Googler2017-11-13
| | | | | | | | | | runs_per_test allows multiple argument instances, because there's an option of using a per-label regex format. Unlike most such flags, earlier instances of the flag were dominating later ones. PiperOrigin-RevId: 175530675