aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* build_event_stream_test: action listener is still experimentalGravatar Klaus Aehlig2017-06-29
| | | | | | | | | | Commit 1e0628d18c2e3defaddd935ffb41edbf3ef40339 marked the build_event_*_file options as no longer experimental and adapted the corresponding tests to use the new option name; while doing so, accidentally too many uses of the word experimental were removed. Fix this. Change-Id: I817ea2bc848085f8ba4930b87b54942935e69325 PiperOrigin-RevId: 160417058
* Refactoring the ApplicationManifest for clarity:Gravatar corysmith2017-06-29
| | | | | | | | * Split the aar, library and binary packWith calls. * Remove unused argument from the new binary and library packWith calls. RELNOTES: None PiperOrigin-RevId: 160414867
* Access interface constants to explicitly trigger the execution of interfaceGravatar cnsun2017-06-29
| | | | | | | | | | | | | | | | | | | | | initializers. The problem is that when we desugar default methods, the static intializer of interface will not be executed. The JVM spec says that if an interface has default methods, then when it is loaded, it will also be initialized. After we desugar such an interface, its default methods are removed, and when we load the interface, the <clinit> will not be executed. This CL checks whether an interface has default methods and fields. If yes (needs to be initialized when the interface is loaded), it injects field access code to access the interface fields in the <clinit> of the companion class. We also create a constant $$CONSTANT$$ in the companion class. Then for all the classes that implement the interface, we inject GETSTATIC in the class <clinit> to the $$CONSTANT$$ of the companion class of the interface. This indirection is to avoid the IllegalAccessError when the interface is package private. Note that accessing an arbitrary interface field does not guarantee the interface will be initialized. We need to access the field that is initialized in the interface static initializer. RELNOTES: None PiperOrigin-RevId: 160414671
* Bazel moved to Java 8.Gravatar philwo2017-06-29
| | | | | | Happy dance \o/ PiperOrigin-RevId: 160412092
* Add categories to BES-related optionsGravatar aehlig2017-06-29
| | | | | | | | | | The build event stream reports about events during the build, so it is logging (in a broad sense). The idividual options affect where we (remotely) log to, how eager we do it, etc. So they affect where the output (of the logging) goes to. RELNOTES: None PiperOrigin-RevId: 160409925
* Windows, JNI: move around sourcesGravatar Laszlo Csomor2017-06-29
| | | | | | | | | | | | | | | | Move the Windows JNI C++ sources to a separate package and separate namespace. This no-op refactoring allows other build rules than Bazel's client library to depend on file I/O and/or JNI functionality. A follow-up commit will split the //src/main/native/windows:processes library into :jni-processes and :jni-file. Change-Id: I33c5f8ebd8961cc440db3b4a95ff78024d7c1d74 PiperOrigin-RevId: 160404298
* Writing build events to a file is no longer experimentalGravatar aehlig2017-06-28
| | | | | | | | Reflect this by renaming the options appropriately. While there, also add categories to those options. RELNOTES: writing build events to a file is no longer experimental PiperOrigin-RevId: 160400332
* Output more debug information when running python testsGravatar Yun Peng2017-06-28
| | | | | | | This is for debugging https://github.com/bazelbuild/bazel/issues/3273 Change-Id: I84e260ae1a22147fed0cffc2960352c77af2cf58 PiperOrigin-RevId: 160399209
* Ensure shards of the same test have unique names in the fallback xmlGravatar Benjamin Peterson2017-06-28
| | | | | | | | | | | | | test-setup.sh currently uses the test target name as the "name" attribute in the xml output's "testcase" element. This ensures names in the xml are unique across the workspace for unsharded tests. However, sharded tests all end up with the same "name" attribute. This angers some junitxml processing tools, which can be quite persnickity about uniqueness. Let's generate unique test names of the form "mytest_shard_N/M" for sharded tests. Change-Id: I6ea82f56846b88449da977dc6629a73b695a485e PiperOrigin-RevId: 160397341
* Mark src/test/shell/bazel/remote_execution_sandboxing_test.sh as executable.Gravatar Philipp Wollermann2017-06-28
| | | | | | | | | The file was accidentally not marked as executable and thus couldn't run as a test. RELNOTES: None. Change-Id: I527717c9a03bcffdf0b6e341773f54826f2ce48f PiperOrigin-RevId: 160394033
* Make Bazel build with wrapper-free CROSSTOOL on WindowsGravatar Yun Peng2017-06-28
| | | | | Change-Id: I0824332896b776e8296608a6b831abba33697845 PiperOrigin-RevId: 160390320
* Add ActionEnvironment, which is a wrapper class for a fixed+inherited envGravatar ulfjack2017-06-28
| | | | | | | | | | | | | | | | We are currently tracking the action environment (computed from --action_env), and the test action environment (computed from --test_env, and not including the action env) as two pairs of fields, and a lot of callers haven't been updated to handle both parts (TestRunnerAction does, but many 'normal' actions don't). However, both parts have always both be handled, and moving them into a single abstraction makes it harder to accidentally miss one part. We'll subsequently need to update all the action implementations to use the new abstraction, and also update the Skylark API (or bypass it and always apply the action environment for all actions, except we don't know which configuration to use). PiperOrigin-RevId: 160386181
* BugReport: include ERROR on internal error messagesGravatar Klaus Aehlig2017-06-28
| | | | | | | | | | | | While a sentence like "bazel ran out of memory and crashed" should be human-readable enough, it seems that users often only scan for the word ERROR in the output and assume everything is fine, if it doesn't occur. Things get worse, if that procedure is scripted. While these kind of behaviors should be discouraged, mitigate the consequences by providing mainstream error messages. Change-Id: I5a032360881c53575bfbd37a471b96933622d3c5 PiperOrigin-RevId: 160385223
* Windows, Android: update android_sdk_repositoryGravatar Laszlo Csomor2017-06-28
| | | | | | | | | | | | | | | | | | | | | The android_sdk_repository now uses the native Android build tools (e.g. aapt.exe, aidl.exe) when --host_cpu is one of x64_windows{,_msys,_msvc}. On Linux/MacOS we create a wrapper script for these tools and data-depend on SDK/build-tools/VERSION/lib/*, but on Windows we have no runfiles support and Bazel just creates a junction to SDK/build-tools, so all the actual tools are there where the binaries expect them. Also change the ":fail" target to select srcs on the host platform and use a .cmd file on Windows. See https://github.com/bazelbuild/bazel/issues/3264 Change-Id: Ica586fa1fd4914f4795b4387b449f1c5562164e0 PiperOrigin-RevId: 160383278
* Move verifyMarkerData into RepositoryFunctionGravatar Yun Peng2017-06-28
| | | | | | | | | | | | | And for new_XX_repository rules, add BUILD and WORKSPACE file into markerData. In markerData, key starting with FILE: can be an absolute label or an absoulte path, but the latter one will be depracated in future. Fixed https://github.com/bazelbuild/bazel/issues/3093 Change-Id: Ic3e16c123b3f1f781ab12c41d13f5e540b05686c PiperOrigin-RevId: 160382024
* Internal changeGravatar Googler2017-06-28
| | | | PiperOrigin-RevId: 160378726
* Internal changeGravatar Googler2017-06-28
| | | | PiperOrigin-RevId: 160373741
* Do not take all possible values of an attribute for selector lists of list ↵Gravatar shreyax2017-06-28
| | | | | | | | types when running query output. Instead, simply return a list of list types, each list type being the concatenation of each of the possible outputs in each select. RELNOTES: Make querying attributes formed by selector lists of list types more efficient by no longer listing every possible combination of attribute value but by more compactly storing the possible values of the list. PiperOrigin-RevId: 160326041
* Allow expansion flags to have values.Gravatar Googler2017-06-28
| | | | | | | This lets us change what it expands based on the argument passed to the flag. RELNOTES: Allows flags that expand to take values. PiperOrigin-RevId: 160298412
* Remove misleading documentation about 'transitive-deps' targetGravatar Jeremy Apthorp2017-06-28
| | | | | | | This target is not actually generated by generate_workspace. Change-Id: Idcaa138bf56021b281138d60a06befa8c9579b1d PiperOrigin-RevId: 160295136
* Update the --incompatible_ flag requirements to use the metadata tag.Gravatar ccalvarin2017-06-28
| | | | | | Leave the category for now as the generated docs still do not use the new categorization. PiperOrigin-RevId: 160290297
* Rename RemoteUtils to GrpcUtilsGravatar ulfjack2017-06-28
| | | | PiperOrigin-RevId: 160285362
* Add a pretty printer for Skylark ASTsGravatar brandjon2017-06-28
| | | | | | | This can be used to canonically compare ASTs for equality, e.g. in tests. RELNOTES: None PiperOrigin-RevId: 160283160
* Add the default category and tag to all options.Gravatar ccalvarin2017-06-28
| | | | | | | | Move the default from the annotation to every mention. This makes the incompleteness explicit. Will add the defaults to test targets in a separate change. Once all dependencies are cleaned up, the Option annotation will no longer allow options without the documentationCategory or effectTag, to prevent new options being added without categories while we migrate to the new option categorization. PiperOrigin-RevId: 160281252
* Bazel docs: Fix Edit buttonGravatar steren2017-06-28
| | | | | | | | | | The new doc website has a new URL structure. This change adapts the page extraction code. It also restores the CSS for the edit button which got deleted during refactoring. Fix #3272 RELNOTES: None PiperOrigin-RevId: 160279009
* BEP: Gracefully handle null configurationsGravatar Klaus Aehlig2017-06-28
| | | | | | | Those may occur, e.g., if the target is simply a source file. Change-Id: Ia64c54e8543dd93712b00428c443922c67e2b6cd PiperOrigin-RevId: 160278149
* Create and example of how to change the default on inherited attributesGravatar Pweaver (Paul Weaver)2017-06-28
| | | | | | | | I found it confusing how to create a test rule with a different default size and had to dig through a lot of example code to figure this out. This pull request adds and example to the docs. Closes #3233. PiperOrigin-RevId: 160276727
* Add more helpers to ParserGravatar brandjon2017-06-28
| | | | | | | This simplifies parsing a lone statement or expression in unit tests. RELNOTES: None PiperOrigin-RevId: 160276410
* Tests + cleanup + docs for ctx.actions.declare_{file,directory}Gravatar dslomov2017-06-28
| | | | | RELNOTES: None. PiperOrigin-RevId: 160273273
* cpp: add unit tests for MakeAbsolute()Gravatar Thiago Farina2017-06-28
| | | | | | | | | | | While fixing its TODO. Tested with the following command line: $ bazel test //src/test/cpp/... Change-Id: I62d5d0f19b7242fd2eeae7901e1e236c782ebfb5 PiperOrigin-RevId: 160270960
* Fix typo in JsonFormatFileTransport.javaGravatar Eric Dobson2017-06-28
| | | | | | | | Invlaid -> Invalid Closes #3119. PiperOrigin-RevId: 160270924
* BEP: also report test sizesGravatar Klaus Aehlig2017-06-28
| | | | | | | The size of a test is a relevant property of a test target. Report it. Change-Id: Ia529a11f4a6920bca7d233e3493640d319cca5ae PiperOrigin-RevId: 160268370
* Add 'ctx.actions.declare_directory'Gravatar dslomov2017-06-28
| | | | | RELNOTES: None. PiperOrigin-RevId: 160267763
* Fixes #3188: Implement sandboxing for remote_worker on Linux.Gravatar Philipp Wollermann2017-06-28
| | | | | | | RELNOTES: Bazel's remote_worker backend for remote execution supports sandboxing on Linux now. Check https://github.com/bazelbuild/bazel/blob/master/src/tools/remote_worker/README.md for details. Change-Id: I918b0291472c8c7d4884850d9ca0f03674ef2f31 PiperOrigin-RevId: 160266742
* Turn unary minus into a proper AST nodeGravatar brandjon2017-06-28
| | | | | | | This unifies unary minus with NotExpression, and moves the minus logic from a fake builtin function into the interpreter proper. RELNOTES: None PiperOrigin-RevId: 160266266
* Release 0.5.2 (2017-06-27)Gravatar Bazel Release System2017-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Baseline: e78ad83ded6e9c6d639793827e27b6570e6e9f65 Cherry picks: + 68028317c1d3d831a24f90e2b25d1410ce045c54: experimental UI: move stopUpdateThread() out of synchronized, again + 019935dfbb61e61d08d1351b0365fb4e2d0df305: Fix bug in URI computation in RemoteModule + e9424cf9b9d72b98594966d5ac0f15bb018ec639: Automated rollback of commit 7dec00574aa91327693f6ba7e90bff5bc834253e. + 9eea05d068a06ab642dd9d86d46ee5fa2e36b02e: Switching to Watcher API instead of wait_for_completion, in preparation for deprecating the wait_for_completion field. + 89659810e3048782dfb5e308e39aa8a0727e464e: Set correct execroot for info + 716b527266f47f59a2b7fb2e5fc52cb45e1691b1: Only create a single per-build instance of the remote cache / executor + 1d82d199f82409f217a42bcefebb96f723f91caa: protobuf: Update protobuf jars to be binary compatible with Java 6. Fixes #3198 + 524b90d9e5acc4fa568f215c9415eaa902e979f8: Change CAS URI to use the "bytestream" scheme instead of being scheme-less + 4929ad79865f8c13ef3b33c827040f4a037e4afe: Automated g4 rollback of commit 923d7df521f67d031b288180560848bd35e20976. + 68b9a7e2dc17e32b194238d287e79bee1ba035b9: Automated g4 rollback of commit da56606563ee9df438db93392f681bf2abb4ac97. + 2ba693ffbe824136a0ca5f47d34710612f6302c3: Automated rollback of commit ce7c4deda60a307bba5f0c9421738e2a375cf44e. Incompatible changes: - Blaze no longer generates xcode projects. Use tulsi.bazel.build instead. Important changes: - Keyword-only syntax in a function definition is deprecated (e.g. `def foo(a, *, b)` or `def foo(a, *b, c)`) and will be removed in the future. - Attempting to build an Android target without setting up android_sdk_repository will now produce a helpful error message. - Adds a sha256 attribute to git_repository and new_git_repository. This can only be used if the remote is a public GitHub repository. It forces Bazel to download the repository as a tarball, which will often be faster and more robust than cloning it. - Sandboxing is now enabled by default on FreeBSD (via processwrapper-sandbox). - android_test may use manifest placeholders with 'manifest_merger = "android"'. - load() statements should be called at the top of .bzl files, before any other statement. This convention will be enforced in the future. - Effectively remove sysroot from CppConfiguration and allow it to use select statements. - proto_library.strict_proto_deps no longer exists. - Flag --explicit_jre_deps is now a noop. - The 'legacy' Android manifest merger is deprecated. Please upgrade to the 'android' manifest merger, which is the same merger used by Gradle. https://developer.android.com/studio/build/manifest-merge.html - Using $(CC_FLAGS) in a GenRule adds a dependency to the c++ toolchain - add one-version enforcement to android_local_test - Skylark support (apple_common.dotted_version(string)) for building DottedVersion objects to interface with native apple rules - CC_FLAGS can be defined using 'cc-flags-make-variable' action_config in CROSSTOOL - ios_framework native rule has been removed. This rule had been essentially broken for several months now; users should be using the skylark ios framework rule. https://github.com/bazelbuild/rules_apple has details. - Clean command no longer uses boolean values for --async, --expunge, and --expunge_async options. - Partially fixes external J2ObjC support. - '--aspects' can occur more than once on the command line. - --no_ prefix no longer recognized. - Use action_config in crosstool for static library archiving, remove ar_flag. - Added a new flag --sandbox_writable_path, which asks the sandbox to make an existing directory writable when running actions. - bazel test now also computes a default instrumentation filter if --collect_code_coverage is enabled - n/na - In .bzl files, top-level `if` statements are deprecated and will be forbidden in the future. Move them in a function body instead (or use a conditional expression instead: `x if condition else y`). - ios_device and ios_test are deprecated. Please use the new testing rules in https://github.com/bazelbuild/rules_apple instead. - bazel query --output package now displays packages from external repository with the format "@reponame//package". Packages in the main repository continue to have the format "package". - ctx.expand_make_variables is deprecated. - Bazel posts links to the CAS to the BEP if remote caching / execution is enabled - `bazel info execution_root` returns the corrrect directory name for the execution root.
* Move the docker tests in src/test/dockerGravatar dmarting2017-06-27
| | | | | | | | | | | | This is a better location and tools/cpp is packaged in embedded_tools that make the test ends-up in embedded_tools, which is requiring network access to build embedded_tools! Side-effect: have to correctly mock the bazel workspace file on a couple of tests. This is blocking on https://bazel-review.googlesource.com/c/12350/ PiperOrigin-RevId: 160265524
* Bazel, python tests: add more context to failuresGravatar Laszlo Csomor2017-06-27
| | | | | | | | | | The Python integration tests will now print the stderr if the inner Bazel failed. This should help diagnosing test failures on CI. Change-Id: I138c1a6327cc263ba6a6e2c720c39ec5d4858d87 PiperOrigin-RevId: 160265298
* Enable connection pooling for the remote REST cacheGravatar Benjamin Peterson2017-06-27
| | | | | | | | | | | | | | | | | Connection pooling is a useful optimization for REST caches that are far away as it avoids constantly redoing the TCP handshake. It also prevents large builds from exhausting the local interface's source ports through tens of thousands of one-transaction connections. The default connection pool size of 20 is fairly arbitrary. Users probably want to set this to something close to the value of --jobs. We introduce some generic infrastructure for closing remote cache instances and use it to cleanly shutdown the connection pool between builds. Change-Id: I73adc29ecae15cc10a1217ffbaa483892bcd4f9a PiperOrigin-RevId: 160264681
* Add 'ctx.actions' and implement 'ctx.action.declare_file'.Gravatar dslomov2017-06-27
| | | | | RELNOTES: None. PiperOrigin-RevId: 160264501
* BuildEventStreamUtils: update TODO to reflect the new plan of actionGravatar aehlig2017-06-27
| | | | | | | | | It seems preferable to make the TestStatus in the build event protocol the primary one. So update the TODO entry to reflect the new plan to get rid of the old BlazeTestStatus. RELNOTES: None PiperOrigin-RevId: 160263709
* Minor Bash improvementsGravatar Androbin2017-06-27
| | | | | | | | | | | | | | | | | Based on output of static analysis tool. https://github.com/koalaman/shellcheck/wiki/SC2166 https://github.com/koalaman/shellcheck/wiki/SC2207 https://github.com/koalaman/shellcheck/wiki/SC2145 https://github.com/koalaman/shellcheck/wiki/SC2001 https://github.com/koalaman/shellcheck/wiki/SC2129 https://github.com/koalaman/shellcheck/wiki/SC2128 https://github.com/koalaman/shellcheck/wiki/SC2004 https://github.com/koalaman/shellcheck/wiki/SC2048 Closes #3162. PiperOrigin-RevId: 160261247
* use procstat_getpathname to get self pathGravatar Jov2017-06-27
| | | | | | | | Use procstat_getpathname instead of /proc/curproc/file to get self path, as /proc do not always exists, and need root privilege to mount. procstat_getpathname is preferred on FreeBSD. Closes #3179. PiperOrigin-RevId: 160260464
* Simplify the RemoteActionCache interfaceGravatar ulfjack2017-06-27
| | | | | | | | | | | | | | | | | | | - merge all the inputs upload functionality into a single ensureInputsPresent method - merge all of the action result upload functionality into a single upload method - merge all the download functionality into a single download method This significantly simplifies the caller of this interface, and opens the door for additional performance improvements in implementations which now have more control over the upload / download flows; in particular, in the gRPC case, we can upload stdout / stderr using the existing chunker - upload of stdout / stderr is no longer serialized with file upload. In particular, the CachedLocalSpawnRunner test becomes much simpler, since it no longer needs to handle the previous more complex upload code path. PiperOrigin-RevId: 160260161
* BlazeCommandDispatcher: make parseArgsAndConfigs not take a CommandEnvironmentGravatar ulfjack2017-06-27
| | | | | | | | | | | | | Accept an ExtendedEventHandler in ProjectFileSupport, and use an ExtendedEventHandler in BlazeCommandDispatcher that captures the posts, and delay posting the GotProjectFileEvent until the initialization is complete. This is a small step towards simplifying the BlazeModule API - the plan is to merge beforeCommand, checkEnvironment, and handleOptions into a single method, but introduce a new method (commandInit) to participate in the early command initialization. PiperOrigin-RevId: 160259628
* give the duration of test in the fallback xml fileGravatar Benjamin Peterson2017-06-27
| | | | | | | | | A common extension to junitxml is to provide the duration of each test case in seconds. Here, we add the duration to the xml file that test-setup.sh provides if the test driver doesn't generate one. Change-Id: I25f94f10bb99db7078919f3e0bcdf7bd3cbb637d PiperOrigin-RevId: 160252993
* Don't set the +x bit by default on WriteFile().Gravatar lberki2017-06-27
| | | | | | | This change is a spiritual successor of https://bazel-review.googlesource.com/c/7410/ . That one had a merge conflict and it was small enough that a rewrite was easier than updating it. RELNOTES: None. PiperOrigin-RevId: 160251282
* Single quote the release messageGravatar Damien Martin-Guillerez2017-06-27
| | | | | | | | | | Double quoting make bash interpret the backquote and bazel is not on the path of the resulting process, showing error on the console. To cherry-pick for #3086. Change-Id: I15a4cdbd349300c87bd90d56ecb8df63ecf62dfb PiperOrigin-RevId: 160250275
* Remove jdk7 variant of the APT repositoryGravatar Damien Martin-Guillerez2017-06-27
| | | | | | | To cherry-pick for #3086. Change-Id: I05db2aef04a7cd6cec22c918f00e4b47bae3a1f4 PiperOrigin-RevId: 160249482
* Stop adding python paths into INCLUDE and LIBGravatar Yun Peng2017-06-27
| | | | | | | See https://github.com/bazelbuild/bazel/issues/3237 Change-Id: I4befad7a329695a952f792605b4936b93cfa2a7f PiperOrigin-RevId: 160249037