aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
Commit message (Collapse)AuthorAge
* Enabling Aapt2 processing:Gravatar corysmith2017-06-26
| | | | | | | | | | | | * Add a new aapt_version attribute to android_binary * Add a new android_aapt_version flag to control the version of aapt used. * Add a new implicit output for aapt2 produced static libraries. * Add a new implicit output for aapt2 produced .flat files zip. RELNOTES: New property on android_sdk: aapt2 Choose the version of aapt on android_binary PiperOrigin-RevId: 160145530
* Remove usage of --ios_cpu from Bazel.Gravatar cpeyser2017-06-26
| | | | PiperOrigin-RevId: 160143322
* ResourceFilter properly handles special language qualifiersGravatar Googler2017-06-26
| | | | | | | | | | | | | | | | | | | | Two special types of language qualifiers are commonly used: Serbian can be written in Latin or Cyrillic characters. Serbian in Latin characters is referred to as sr-Latn (or, with a misplaced region prefix, sr-rLatn, or with the permutation common in some code for the old verions of regions supported by Aapt, sr_Latn). Spanish spoken across Latin America and the Caribbean can be represented by es-419 (or, using the permutation for old qualifier formats, es_419). For both of these, transform the resource qualifier into an appropriate BCP-47 representation that can be handled by FolderConfiguration. Also, add attribute warnings when these qualifiers are used in their specially-handled form (instead of in BCP-47 form). RELNOTES: none PiperOrigin-RevId: 160143247
* Remove remaining xcodegen references.Gravatar schmitt2017-06-26
| | | | | | | Deletes last code references to xcodegen tool as well as tool itself. RELNOTES: None. PiperOrigin-RevId: 160137807
* Make BuildEventStreamer flushable before first eventGravatar Klaus Aehlig2017-06-26
| | | | | | | | | | | | | | | Make the BuildEventStreamer capable of handling the flush() method, even before the initial build event is seen. This happens, if a lot (more than 10240 bytes) of output is produced before the BuildStartingEvent is generated- This is not unlikely, as the whole option processing happens before the build starts. As the promise of flush() is that the OutErrProvider is cleared, and that all output between two flush() get into separate events, numbered in order, we have to temporarily store a list of stdout/stderr String pairs. RELNOTES: None. PiperOrigin-RevId: 160137478
* Make Metadata an interface for FileArtifactValueGravatar ulfjack2017-06-26
| | | | | | | | | | Replace all previous uses of Metadata with FileArtifactValue (or a simple inner class in the case of ActionCacheChecker.CONSTANT_METADATA). Care was taken to make the equals method obey the equals contract, even in the presence of multiple implementations. PiperOrigin-RevId: 160115080
* Automated rollback of commit 68b9a7e2dc17e32b194238d287e79bee1ba035b9.Gravatar cushon2017-06-26
| | | | | | | | | *** Reason for rollback *** The depot is fixed RELNOTES: None. PiperOrigin-RevId: 160115070
* BlazeCommandDispatcher: all options parsing and editing in one placeGravatar ulfjack2017-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The invocation policy must be the last step in determining the active options for the current command. Take precautions to prevent accidental options editing of options after the policy is applied by declaring the options as an OptionsProvider (interface has no mutating methods); technically, this could be circumvented by casting to OptionsParser, but it's at least safer than before. As part of this, I'm moving the BlazeCommand.editOptions call to before the invocation policy, and also making minor changes to the CommandEnvironment. Commands that expect to have the last word on options could therefore see options changes after this commit. There are three commands that override editOptions: 1. TestCommand Current behavior: if test_output=streamed is set, also sets --test_sharding_strategy=disabled and --test_strategy=exclusive. Overriding --test_sharding_strategy is not a concern; in fact, maybe we shouldn't be setting that in the first place, since it can cause tests to timeout (timeout is usually applied per shard, so a 10-way sharded test will very likely timeout). If you override the test_strategy to local or standalone, then you may get interleaved stdout / stderr output from tests that run in parallel - a bit surprising, but no showstopper. If you override the test_strategy to remote, you won't get streamed output, because no remote strategy currently supports that. You may get interleaved output, if multiple tests finish very close to each other. There are no correctness concerns, it's just a slightly worse user experience. The code is safe in all cases, AFAICT. We could consider changing streamed to not require serialized execution, and instead use something like a lock - the first test to produce output gets streamed, and all others get delayed until the lock is released, but could still execute concurrently. However, it's unlikely that that's the desired behavior for most users. 2. CoverageCommand Current behavior: sets --collect_code_coverage, increases default --test_timeout. bazel coverage --nocollect_code_coverage is effectively bazel test. You can actually now run bazel test --collect_code_coverage --test_timeout and it will behave exactly the same way as bazel coverage. It's mostly a convenience thing. Note that CoverageCommand inherits TestCommand, so the case above also applies. 3. MobileInstallCommand Current behavior: sets --aspects, and --output_groups. If you override the aspect or output_groups, then the command will fail or run an old binary from a previous build. Not what you'd expect, but no correctness concerns. Summary: IMO, the impact on the existing commands is minor. The advantage of this change is that it's more secure, and gives us an escape hatch if a command ever overrides options in a way that turns out to be wrong or broken in some way. RELNOTES: None. PiperOrigin-RevId: 160114902
* Move command.log writing to a moduleGravatar ulfjack2017-06-26
| | | | | | | This is part of refactoring / simplifying the BlazeCommandDispatcher. RELNOTES: None. PiperOrigin-RevId: 160110866
* Add apple_stub_binary rule.Gravatar allevato2017-06-26
| | | | | | | | This rule will be used by the Skylark bundling rules for product types that use stub binaries copied out of the SDK instead of user-built binaries. RELNOTES: None. PiperOrigin-RevId: 159998782
* Fix NullPointerException when enable_data_binding is omitted.Gravatar gregce2017-06-26
| | | | | | | | | DataBinding.isEnabled has outdated logic that enabled data binding for a rule even if only its deps use data binding. It's now required for all rules up the dependency chain to explictily enable data binding. RELNOTES: None. PiperOrigin-RevId: 159998478
* Remove last traces of experimental_obj_libraryGravatar cparsons2017-06-26
| | | | | RELNOTES: None. PiperOrigin-RevId: 159990790
* BEP: Support longer streams on non building commandsGravatar Klaus Aehlig2017-06-26
| | | | | | | | | | | | | While the build event protocol is mainly targeted for commands that actually build, a minimal stream is generated for all commands. For commands like "query", it is desirable that the stream contains the full output of the command. To achieve this, introduce an optional second event indicating the end of the stream; note that the NoBuildEvent has to come before the payload answer as the experimental UI uses this event to determine the transition to the payload answer that is passed through unchanged. RELNOTES: None. PiperOrigin-RevId: 159977543
* Update --incompatible_* error messagesGravatar brandjon2017-06-26
| | | | | RELNOTES: None PiperOrigin-RevId: 159954456
* Forbid 'in' operator on depset with --incompatible_depset_is_not_iterableGravatar laurentlb2017-06-26
| | | | | RELNOTES: None. PiperOrigin-RevId: 159948522
* Forbid duplicate keys in dictionary literalsGravatar laurentlb2017-06-26
| | | | | | | RELNOTES: When using the dictionary literal syntax, it is now an error to have duplicated keys (e.g. {'ab': 3, 'ab': 5}). PiperOrigin-RevId: 159945431
* Make len(depset()) fail when --incompatible_depset_is_not_iterable is setGravatar laurentlb2017-06-26
| | | | | RELNOTES: None. PiperOrigin-RevId: 159945244
* Remove last implicit dep on //tools/objc:xcodegenGravatar schmitt2017-06-26
| | | | | RELNOTES: None. PiperOrigin-RevId: 159837451
* Refactor ProjectFileSupport to work without a CommandEnvironmentGravatar ulfjack2017-06-26
| | | | | | | | | | | | Reading project files happens very early in the command initialization, and my plan is to change it so CommandEnvironment is created after we did that; the reason for that is that it makes the options final upon CommandEnvironment creation, which in turn allows simplifying the BlazeModule API. Since we no longer need a CommandEnvironment, or a BlazeWorkspace, or a BlazeRuntime, make the ProjectFileSupportTest a unit test. PiperOrigin-RevId: 159830404
* Expose the correct JavaSkylarkApiProvider from JavaProtoAspect.Gravatar tomlu2017-06-26
| | | | | | To unblock, regression tests for the breakage will come in a follow-up CL. PiperOrigin-RevId: 159829368
* Do not use link_dynamic_library.sh when toolchain doesn't support interface ↵Gravatar hlopko2017-06-26
| | | | | | | | | | | | | | | libraries Before, Bazel would always use link_dynamic_library.sh, even though the toolchain doesn't support interface libraries and therefore its arguments would always be "no ignored ignored ignored". And since link_dynamic_library.sh is a shell script, it unnecessarily complicates the Windows toolchain. This cl also removes the script as a dependency of the toolchain (so it won't be set as an input of c++ actions). RELNOTES: None. PiperOrigin-RevId: 159827038
* Make FakeCppCompileAction.LOG lowercaseGravatar hlopko2017-06-22
| | | | | RELNOTES: None. PiperOrigin-RevId: 159811352
* Make Metadata fields privateGravatar ulfjack2017-06-22
| | | | | | | | | | | | | Adjust the interface of Metadata to match the interface of FileArtifactValue. These classes are almost the same, but not quite, so we currently have to create and return new objects whenever the MetadataHandler is called; by making the interfaces identical, we can just return a FileArtifactValue instead (in a future change). This is in preparation for merging the ActionInputFileCache and MetadataHandler interfaces. PiperOrigin-RevId: 159802834
* Fix LIPO to ThinLTO mapping to work with AutoFDO.Gravatar Googler2017-06-22
| | | | | | | | LIPO to ThinLTO mapping was added in https://github.com/bazelbuild/bazel/commit/c61f86f56b86e442369725ad79299ccc5519b000. This fixes a bug to ignore lipo context when compiler is LLVM. RELNOTES:None PiperOrigin-RevId: 159776286
* Use targets' labels' package identifier for query output=packageGravatar mschaller2017-06-22
| | | | | | | | | | Subinclude targets' packages are the package containing the load statement. Subinclude targets' labels are the bzl files they refer to. The latter has the appropriate package to display for --output=package. Fixes #3122. PiperOrigin-RevId: 159750840
* Fix source jars no longer being exposed to Skylark from java_library.Gravatar tomlu2017-06-22
| | | | | | | | | | Regression test added for java_library. Unfortunately, due to the nature of the skylark provider, similar regression tests should probably be added to every Java providing rule. In the long term, the better solution is to expose JavaProvider directly and remove JavaSkylarkApiProvider. Fixes #3238 PiperOrigin-RevId: 159748655
* In the Blaze Query implementation, use Set and Map implementations backed by ↵Gravatar nharmata2017-06-22
| | | | | | | the same KeyExtractor used that the Uniquifier implementation uses. This fixes a hypothetical issue where we were previously relying on Target#equals/hashCode. RELNOTES: None PiperOrigin-RevId: 159741545
* Add back --sysroot argument for objc compile actions when grte_top is specified.Gravatar rduan2017-06-22
| | | | | RELNOTES: None. PiperOrigin-RevId: 159740106
* Automated rollback of commit 7dec00574aa91327693f6ba7e90bff5bc834253e.Gravatar ajmichael2017-06-22
| | | | | | | | | *** Reason for rollback *** Tickled a hidden bug in Blaze query. RELNOTES: None PiperOrigin-RevId: 159718294
* Set correct execroot for infoGravatar kchodorow2017-06-22
| | | | | | | | Fixes #3055. RELNOTES: `bazel info execution_root` returns the corrrect directory name for the execution root. PiperOrigin-RevId: 159701171
* Only create a single per-build instance of the remote cache / executorGravatar ulfjack2017-06-22
| | | | | | | Fixes #3189. Fixes #2823. PiperOrigin-RevId: 159699146
* Change CAS URI to use the "bytestream" scheme instead of being scheme-lessGravatar ulfjack2017-06-22
| | | | | | This makes the URIs absolute, which makes them easier to process server-side. PiperOrigin-RevId: 159694335
* Allow "[", "]", "{", and "}" in globs in BUILD files. (#3048)Gravatar Jonathan Bluett-Duncan2017-06-22
| | | | | | | | | | | | PR #2679 allowed parentheses ("(" and ")") in globs, but other bracket style characters were not allowed at the time. It was decided in issues #2583 and #3048 that other bracket characters should be allowed as well, since there is no apparent historical reason for disallowing them in the first place. Closes #3166. PiperOrigin-RevId: 159691498
* Use getopt to parse process-wrapper's command-line.Gravatar philwo2017-06-22
| | | | | | | | This will allow us to add new and optional flags like selecting a strategy used to spawn / wait for the child process. No one except Bazel should be calling "process-wrapper" and I couldn't find any references, so this breaking change should be fine. PiperOrigin-RevId: 159685867
* Fix comment in ExperimentalEventHandlerGravatar aehlig2017-06-22
| | | | | | | | The "is is line with" should read "is in line with". While there, also fix the formating of that comment. RELNOTES: None. PiperOrigin-RevId: 159683437
* Use tool from action_config for link-executable and link-dynamic-lib actionsGravatar hlopko2017-06-21
| | | | | | | | | | This cl finishes the last bit of c++ linking actions migration to crosstool's action_configs. From now on, the action_config { tool_path: ... } will be used, instead of top level tool { path: ... }. RELNOTES: Bazel now uses tools from action_configs in Crosstool by default (as oposed to using top level tools). PiperOrigin-RevId: 159677525
* Introduce --incompatible_depset_is_not_iterableGravatar laurentlb2017-06-21
| | | | | | | RELNOTES: Iterating on a `depset` object is deprecated. If you need an iterable, call the `.to_list()` method first. PiperOrigin-RevId: 159672887
* ActionMetadataHandler: proper metadata even for the volatile workspace statusGravatar ulfjack2017-06-21
| | | | | | | | | | | | | | This is part of cleaning up the ActionInputFileCache / MetadataHandler split. Both classes generally store and return identical information, except the MetadataHandler lies about constant metadata artifacts. Instead of lying here, update the ActionCacheChecker, which is the only place where we actually want constant metadata. Additionally, remove getMetadataMaybe; again, the only caller that needs special casing is the ActionCacheChecker, so we move the special casing there instead of having it in the MetadataHandler. PiperOrigin-RevId: 159665345
* Fix Android data binding for rules with no direct resources.Gravatar gregce2017-06-21
| | | | | | | | | | | | | | This essentially works by activating the annotation processor over such rules, even though technically that's unnecessary (since there are no new resources to process). But running the annotation processor guarantees we still process deps' resources, which guarantees the Java compiler references any Java classes mentioned in those resources. This prevents JavaBuilder's ---reduce_classpath from pruning these files out of the compilation classpath because "they were never used". PiperOrigin-RevId: 159597671
* Re-add host_platform and target_platform, and set them as defaults.Gravatar jcater2017-06-21
| | | | | | Part of #2219. PiperOrigin-RevId: 159596011
* Move WrappingProviderHelper into static class in WrappingProvider.Gravatar Googler2017-06-20
| | | | | | Cuts down on file count and makes it easier to find these methods. PiperOrigin-RevId: 159560422
* Document JavaSkylarkApiProvider static factory methods and remove one ↵Gravatar Googler2017-06-20
| | | | | | constructor. PiperOrigin-RevId: 159557168
* Use ProtoJavaApiInfoAspectProvider.merge instead of ad-hoc method.Gravatar carmi2017-06-20
| | | | | RELNOTES: None PiperOrigin-RevId: 159553343
* Cleanup: Remove code related to glob prefetchingGravatar laurentlb2017-06-20
| | | | | RELNOTES: None. PiperOrigin-RevId: 159551331
* Introduce is_cc_test build variable so we can migrate away from ↵Gravatar hlopko2017-06-20
| | | | | | | | | | | | | is_not_cc_test_link_action If only hlopko@ used brain when he introduced is_not_cc_test_link_action he would realize that the current values make it impossible to migrate away from them. This cl introduces new build variable with boolean value. Then I can update internal crosstools to use expand_if_true/false, and then I can remove is_not_cc_test_link_action. RELNOTES: None. PiperOrigin-RevId: 159549814
* TestAttempt: remove unused constructorsGravatar aehlig2017-06-20
| | | | | RELNOTES: None. PiperOrigin-RevId: 159537816
* Extract ImmutableSharedKeysMap class from TransitiveInfoProviderMap.Gravatar Googler2017-06-20
| | | | PiperOrigin-RevId: 159498323
* apple_binary "dylibs" attribute depends on AppleDynamicFrameworkProviderGravatar cparsons2017-06-20
| | | | | RELNOTES: None. PiperOrigin-RevId: 159496805
* Roll back ↵Gravatar cushon2017-06-20
| | | | | | | | | | | | https://github.com/bazelbuild/bazel/commit/4929ad79865f8c13ef3b33c827040f4a037e4afe And use params files for turbine actions with transitive classpaths For actions where direct deps cannot be used, turbine spawns should always use params files. The transitive classpath may exceed the command line length limit. PiperOrigin-RevId: 159473987
* Adding support for SHA256 for remote execution. Switch remote execution to useGravatar olaola2017-06-20
| | | | | | | | | the currently defined hash function for blobs. Some refactoring. Adding an option to set the hash function in the remote worker, defaulting to the current behavior (unfortunately it is a build option, have not found a clean way to specify it at runtime). BUG=62622420 TESTED=remote worker RELNOTES: none PiperOrigin-RevId: 159473116