| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks nightly: b/71790513
*** Original change description ***
C++ refactoring: Separate compilation and linking calls to CcLibraryHelper
RELNOTES:none
PiperOrigin-RevId: 181457811
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Rolling back due to previous CL breaking nightly.
*** Original change description ***
Removes call to CcLibraryHelper.link() in cc_binary.
This call is unnecessary when the sources of the cc_binary are being built as
EXECUTABLE or DYNAMIC LIBRARY. The call doesn't do anything, no linking outputs
are returned.
RELNOTES:none
PiperOrigin-RevId: 181457495
|
|
|
|
|
|
|
|
|
| |
This call is unnecessary when the sources of the cc_binary are being built as
EXECUTABLE or DYNAMIC LIBRARY. The call doesn't do anything, no linking outputs
are returned.
RELNOTES:none
PiperOrigin-RevId: 181455622
|
|
|
|
|
|
|
|
| |
It contained no fields or any other information accessible from Skylark, so it's not a big loss.
RELNOTES[INC]: ctx.fragments.jvm is not available anymore.
PiperOrigin-RevId: 181455474
|
|
|
|
|
|
|
|
|
|
| |
JavaCompilationArgsProvider.
Added tests for checking JavaCompilationArgsProvider state.
All other providers will be implemented in next CLs.
RELNOTES:none
PiperOrigin-RevId: 181451235
|
|
|
|
|
|
|
|
|
|
| |
A build might fail because of a visibility violation that does
not happen at a top-level target. To avoid confusion, add a separate
namespace for configured targets that are just mentioned to report
the details of an error.
Change-Id: I86587f7489500f1d888bae6ce3d6f4bd79ea1609
PiperOrigin-RevId: 181448003
|
|
|
|
|
|
|
| |
* Creates an enum for cpu transformer, which is easier to serialize than an opaque function. This also means moving FakeCPU to avoid introducing a circular dependency.
* Adds a CODEC to Path using InjectingObjectCodec.
PiperOrigin-RevId: 181445911
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should not cause a user-visible change: --{host_,}javabase was already
required to point to a java_runtime_suite / java_runtime rule, the only change is that
we now enforce it differently.
If anything, this makes Bazel more lenient in that it now accepts Skylark rules
that provide JavaRuntimeInfo, but I doubt anyone does that, since it does not
work at HEAD.
RELNOTES: None.
PiperOrigin-RevId: 181444563
|
|
|
|
|
|
|
|
| |
After some consideration, I think it makes sense to always allow a getDigest call, instead of specifying it as disallowed based on type. This is a follow-up CL for a previous CL introducing the getType method, which increased the complexity of the specification.
I have a follow-up CL, which is related, namely unknown commit. After that CL, Metadata instances for directories (but not Filesets) also have digests rather than using mtime, which is compatible with the documentation changes made here. Said CL is solving a correctness issue with directory dependencies, which I think we want, and using the digest in the Metadata is a natural way to get correct action cache lookups.
PiperOrigin-RevId: 181440548
|
|
|
|
|
|
|
|
|
|
|
|
| |
Continuation of https://github.com/bazelbuild/bazel/pull/4356
An approach at supporting strip_prefix with the git skylark rules.
This approach unfortunately uses symlinks since you cannot clone a subset of a git repository. It creates a tmp directory which is the 'real' clone and then provides a link in place of the expected location of the repository to the path of the required prefix. Behaviour is only changed if a strip_prefix is provided.
Closes #4368.
PiperOrigin-RevId: 181438640
|
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 181397098
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Rolling forward after underlying issue has been fixed.
*** Original change description ***
Automated rollback of commit d50cbbeef115f28c0cea1ac17572e0f12c0cf312.
*** Reason for rollback ***
b/71442447
*** Original change description ***
Remove synchronization from file system.
After the path refactor we will no longer have path instances to synchronize on.
The underlying OS file systems are already naturally thread safe, that is, their internal data structures cannot be damaged. Any further synchronization (eg. races between directory creation and deletion) has to be managed at the client level.
The l...
***
PiperOrigin-RevId: 181368707
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Rolling forward after the underlying issue has been fixed.
*** Original change description ***
Automated rollback of commit 6a54339bb943702bd7dffc43f85267dac98dc355.
*** Reason for rollback ***
b/71442447
*** Original change description ***
Call through to Path#createDirectoryAndParents from FileUtils.
This CL removes a method that due to its implementation causes threading difficulties for Path#createDirectory.
The tests for the method are brought across to FileSystemTests since the methods are now implemented natively by the FileSystem classes. The tests were also cleaned up.
The test revealed an edge c...
***
PiperOrigin-RevId: 181367850
|
|
|
|
|
|
| |
It's otherwise possible that we do other syscalls in between the original syscall and us reading the errno for use in the exception.
PiperOrigin-RevId: 181367811
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both members of Label (String & PackageIdentifier) have memoized hash codes so
this should be marginally more expensive but probably not noticably so. The
benefit is it makes Label objects smaller in certain vm conditions.
As to why things were the way they were, I believe this is from before
PackageIdentifier memoized its hashCode.
RELNOTES: None
PiperOrigin-RevId: 181362077
|
|
|
|
|
|
|
|
| |
We use errno to signal an error in the stat call that gets passed back to Java land. However, between the time we make the failed stat syscall and the time that we read the final value of errno we will very rarely make other syscalls in between, which will stomp the value of errno back to 0. This will get interpreted as "no error, the file exists" by the VFS.
This bug has existed since 2009. Only a perturbation of the sequence of syscalls we make during startup has since caused the bug to surface.
PiperOrigin-RevId: 181358035
|
|
|
|
|
|
|
| |
This has the effect of documenting exposed struct fields on the provider.
RELNOTES: None.
PiperOrigin-RevId: 181346052
|
|
|
|
| |
PiperOrigin-RevId: 181330907
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When Bazel creates the sandbox, it will allow
making non-existent paths writable, as long as the
path is under the sandbox root.
As Bazel adds entries to the sandbox's set of
writable paths, Bazel needs to make sure that it's
not adding symlinks, because doing so would make
the symlink writable, not what the link points to.
If the path is under the sandbox root, then at the
time of setting up the sandbox's writable paths
the path surely doesn't exist yet, but that's OK,
because at that time Bazel didn't yet create the
sandbox root.
If the path is not under the sandbox root, then
Bazel needs to resolve all symlinks on this path,
which is only possible if the path exists,
therefore Bazel checks for the path's existence.
Change-Id: Ic7d99a81905e7401455286c0b375d69b85ece1d5
PiperOrigin-RevId: 181325749
|
|
|
|
|
|
|
|
|
| |
ExecuteDaemon() always returns a defined value.
Fixes #4394.
RELNOTES: None.
PiperOrigin-RevId: 181315375
|
|
|
|
|
|
|
|
|
|
|
| |
The precondition check in line 1274 makes sure that it has Staticness.STATIC.
EXECUTABLE has Staticness.DYNAMIC which precludes the checks from ever being
executed.
NO_SQ=Kokoro failing without giving an actual error.
RELNOTES:none
PiperOrigin-RevId: 181314900
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 181297029
|
|
|
|
| |
Change-Id: I94cdf0ea3e219887515ee52a86bd6d5d65681c67
|
|
|
|
|
|
|
|
| |
These tests don't require a full Skyframe instance, so we might as well move
them to a lighter-weight test class. Also, it turns out that we have duplicate
tests for equality and hashing - this is now explicit.
PiperOrigin-RevId: 181285144
|
|
|
|
| |
PiperOrigin-RevId: 181255541
|
|
|
|
|
|
|
| |
folders for aapt2.
RELNOTES: none
PiperOrigin-RevId: 181226483
|
|
|
|
|
|
|
|
| |
This API mimics the linking logic of apple_binary, and is a step to migrating apple_binary to skylark.
This API is *highly experimental* and subject to change.
RELNOTES: None.
PiperOrigin-RevId: 181215275
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is to fix building android outside of the bazel repository.
To reproduce the issue (on a Windows machine, of course):
1. Copy the examples/android folder from a bazel checkout to a new folder (keep the same folder structure - i.e. `<new folder>/examples/android`)
2. Create a `WORKSPACE` file in `<new folder>` with the `android_sdk_repository` and `android_ndk_repository` rules as described in the example README.
3. `bazel build examples/android/java/bazel:hello_world`
4. Observe the failure to locate `windows_jni.dll`
Closes #4392.
PiperOrigin-RevId: 181181641
|
|
|
|
| |
PiperOrigin-RevId: 181180652
|
|
|
|
|
|
|
|
| |
This simplifies some spawn runners, which no longer have to specially handle
null; unfortunately, the sandbox runners do not support VirtualActionInput,
so they still have to special-case it.
PiperOrigin-RevId: 181175408
|
|
|
|
|
| |
RELNOTES:none
PiperOrigin-RevId: 181169134
|
|
|
|
| |
PiperOrigin-RevId: 181162816
|
|
|
|
|
|
|
|
| |
Fixes https://github.com/bazelbuild/bazel/issues/4359
Closes #4360.
PiperOrigin-RevId: 181161619
|
|
|
|
|
|
|
|
| |
...until the bugs in the google_compute_engine scripts are fixed
upstream.
Change-Id: I3fcced5ad82735270c991f5a3595b34da60de544
PiperOrigin-RevId: 181158629
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`_clone_or_update()` should `git clone` external repositories only if repo is absent. Unfortunately, it may happen that the bazel outputRoot (~/.cache/bazel by default) is a subdirectory of some other git working copy. For example, user may track his whole home directory in git and add `.config` to .gitignore. In that case, it is not enough to check if the cache dir is a git repo. One must check that the cache dir holds a root of a git working copy. In other words, the `.git` folder must be in the repo dir, not on any level above.
* Steps to reproduce
```bash
cd ~/.cache
git init
cd /some/project/that/uses/bazel-git_repository
mv WORKSPACE WORKSPACE.orig
(echo "load('@bazel_tools//tools/build_defs/repo:git.bzl', 'git_repository')" ; cat WORKSPACE.orig) > WORKSPACE
bazel --batch build :all || echo "Ah, there is a bug"
```
Read on for definitive info.
* clone any project that uses `git_repository`
```bash
[arch@archlinux bazelbuild]$ git clone https://github.com/bazelbuild/bazel-watcher.git
[arch@archlinux bazelbuild]$ cd bazel-watcher
```
* enable Skylark implementation of `git_repository` as documented in https://github.com/bazelbuild/bazel/issues/1408#issuecomment-276815467
```bash
[arch@archlinux bazel-watcher]$ mv WORKSPACE WORKSPACE.orig
[arch@archlinux bazel-watcher]$ (echo "load('@bazel_tools//tools/build_defs/repo:git.bzl', 'git_repository')" ; cat WORKSPACE.orig) > WORKSPACE
[arch@archlinux bazel-watcher]$ grep -v ^# WORKSPACE |head -n4
load('@bazel_tools//tools/build_defs/repo:git.bzl', 'git_repository')
git_repository(
name = "com_github_bazelbuild_bazel_integration_testing",
```
* (optionally) define custom Bazel `outputRoot` directory (default is ~/.cache/bazel)
```bash
[arch@archlinux bazel-watcher]$ rm -rf /tmp/.cache/ ; mkdir /tmp/.cache/
[arch@archlinux bazel-watcher]$ export TEST_TMPDIR=/tmp/.cache/bazel
```
* try building the project to make sure everything works as expected
```bash
[arch@archlinux bazel-watcher]$ bazel --batch build :all
INFO: $TEST_TMPDIR defined: output root default is '/tmp/.cache/bazel' and max_idle_secs default is '15'.
Extracting Bazel installation...
WARNING: /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/com_github_bazelbuild_bazel_integration_testing/WORKSPACE:1: Workspace name in /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/com_github_bazelbuild_bazel_integration_testing/WORKSPACE (@build_bazel_integration_testing) does not match the name given in the repository's definition (@com_github_bazelbuild_bazel_integration_testing); this will cause a build error in future versions
INFO: Analysed target //:go_prefix (6 packages loaded).
INFO: Found 1 target...
Target //:go_prefix up-to-date (nothing to build)
INFO: Elapsed time: 15.088s, Critical Path: 0.05s
INFO: Build completed successfully, 1 total action
[arch@archlinux bazel-watcher]$ echo $?
0
```
* reproduce the issue by placing the `outputRoot` under a git working copy
```bash
[arch@archlinux bazel-watcher]$ rm -rf /tmp/.cache/ ; mkdir /tmp/.cache/
[arch@archlinux bazel-watcher]$ cd /tmp/.cache/ ; git init
Initialized empty Git repository in /tmp/.cache/.git/
[arch@archlinux .cache]$ cd -
[arch@archlinux bazel-watcher]$ bazel --batch build :all
INFO: $TEST_TMPDIR defined: output root default is '/tmp/.cache/bazel' and max_idle_secs default is '15'.
Extracting Bazel installation...
ERROR: error loading package '': Encountered error while reading extension file 'tools/repositories.bzl': no such package '@com_github_bazelbuild_bazel_integration_testing//tools': Traceback (most recent call last):
File "/tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/bazel_tools/tools/build_defs/repo/git.bzl", line 69
_clone_or_update(ctx)
File "/tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/bazel_tools/tools/build_defs/repo/git.bzl", line 44, in _clone_or_update
fail(("error cloning %s:\n%s" % (ctx....)))
error cloning com_github_bazelbuild_bazel_integration_testing:
+ cd /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external
+ cd /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/com_github_bazelbuild_bazel_integration_testing
+ git reset --hard 55a6a70dbcc2cc7699ee715746fb1452788f8d3c
fatal: Could not parse object '55a6a70dbcc2cc7699ee715746fb1452788f8d3c'.
+ git fetch origin 55a6a70dbcc2cc7699ee715746fb1452788f8d3c:55a6a70dbcc2cc7699ee715746fb1452788f8d3c
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
ERROR: error loading package '': Encountered error while reading extension file 'tools/repositories.bzl': no such package '@com_github_bazelbuild_bazel_integration_testing//tools': Traceback (most recent call last):
File "/tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/bazel_tools/tools/build_defs/repo/git.bzl", line 69
_clone_or_update(ctx)
File "/tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/bazel_tools/tools/build_defs/repo/git.bzl", line 44, in _clone_or_update
fail(("error cloning %s:\n%s" % (ctx....)))
error cloning com_github_bazelbuild_bazel_integration_testing:
+ cd /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external
+ cd /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/com_github_bazelbuild_bazel_integration_testing
+ git reset --hard 55a6a70dbcc2cc7699ee715746fb1452788f8d3c
fatal: Could not parse object '55a6a70dbcc2cc7699ee715746fb1452788f8d3c'.
+ git fetch origin 55a6a70dbcc2cc7699ee715746fb1452788f8d3c:55a6a70dbcc2cc7699ee715746fb1452788f8d3c
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
INFO: Elapsed time: 4.974s
FAILED: Build did NOT complete successfully (0 packages loaded)
```
* let's find out why it failed
```bash
[arch@archlinux bazel-watcher]$ grep rev-parse /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/bazel_tools/tools/build_defs/repo/git.bzl
if ! ( cd '{dir}' && git rev-parse --git-dir ) >/dev/null 2>&1; then
[arch@archlinux bazel-watcher]$ cd /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/com_github_bazelbuild_bazel_integration_testing
[arch@archlinux com_github_bazelbuild_bazel_integration_testing]$ git rev-parse --git-dir
/tmp/.cache/.git
[arch@archlinux com_github_bazelbuild_bazel_integration_testing]$ cd -
```
* let's fix git.bzl
```bash
[arch@archlinux bazel-watcher]$ sed -i -E 's/git rev-parse --git-dir/[[ "$(git rev-parse --git-dir)" == '.git' ]]/' /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/bazel_tools/tools/build_defs/repo/git.bzl
[arch@archlinux bazel-watcher]$ grep rev-parse /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/bazel_tools/tools/build_defs/repo/git.bzl
if ! ( cd '{dir}' && [[ "$(git rev-parse --git-dir)" == .git ]] ) >/dev/null 2>&1; then
```
* make sure that Bazel works again
```bash
[arch@archlinux bazel-watcher]$ ls -a /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/com_github_bazelbuild_bazel_integration_testing
. ..
[arch@archlinux bazel-watcher]$ bazel --batch build :all
INFO: $TEST_TMPDIR defined: output root default is '/tmp/.cache/bazel' and max_idle_secs default is '15'.
Error: corrupt installation: file '/tmp/.cache/bazel/_bazel_arch/install/f20169627a8110e2cc3d005319e97c94/_embedded_binaries/embedded_tools/tools/build_defs/repo/git.bzl' modified. Please remove '/tmp/.cache/bazel/_bazel_arch/install/f20169627a8110e2cc3d005319e97c94' and try again.
[arch@archlinux bazel-watcher]$ touch -m -t 202712120101 /tmp/.cache/bazel/_bazel_arch/install/f20169627a8110e2cc3d005319e97c94/_embedded_binaries/embedded_tools/tools/build_defs/repo/git.bzl
[arch@archlinux bazel-watcher]$ bazel --batch build :all
INFO: $TEST_TMPDIR defined: output root default is '/tmp/.cache/bazel' and max_idle_secs default is '15'.
WARNING: /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/com_github_bazelbuild_bazel_integration_testing/WORKSPACE:1: Workspace name in /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/com_github_bazelbuild_bazel_integration_testing/WORKSPACE (@build_bazel_integration_testing) does not match the name given in the repository's definition (@com_github_bazelbuild_bazel_integration_testing); this will cause a build error in future versions
INFO: Analysed target //:go_prefix (6 packages loaded).
INFO: Found 1 target...
Target //:go_prefix up-to-date (nothing to build)
INFO: Elapsed time: 13.318s, Critical Path: 0.07s
INFO: Build completed successfully, 1 total action
[arch@archlinux bazel-watcher]$ ls -a /tmp/.cache/bazel/_bazel_arch/f2207b308c89ea5d32323052637210b1/external/com_github_bazelbuild_bazel_integration_testing
. .. AUTHORS bazel_integration_test bazel_integration_test.bzl bazel_version.bzl BUILD .ci CODEOWNERS CONTRIBUTING.md .git .gitignore go java javatests LICENSE README.md tools WORKSPACE
```
Closes #4358.
PiperOrigin-RevId: 181151078
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 181149284
|
|
|
|
|
|
|
|
|
| |
This is the first step in removing package loading from JvmConfigurationLoader (I didn't want to add the rest into this change because it's technically possible to access ctx.fragments.jvm even though it contains no fields, so removing that is an incompatible change) and it's also possible that removing error reporting from JvmConfigurationLoader causes some subtle changes in behavior.
Baby steps. Now that the hard part is done, there is no need to rush.
RELNOTES: None.
PiperOrigin-RevId: 181143978
|
|
|
|
| |
PiperOrigin-RevId: 181141383
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
FreeBSD should work again, so re-enable it.
*** Original change description ***
Remove FreeBSD from our CI temporarily.
RELNOTES: None.
PiperOrigin-RevId: 181140165
|
|
|
|
| |
Change-Id: Ic3d2331b7ccb5ca7db6b0fe83a12c7a6d1b58a9a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The BazelConfiguration no longer adds the Bazel
server process' TMPDIR/TMP/TEMP environment
variables.
I added that code before having implemented always
creating a temp directory for actions:
https://github.com/bazelbuild/bazel/commit/cfccdf1f6e93125d894ff40e0ccecaf20cc20ef5
See https://github.com/bazelbuild/bazel/issues/4376
Change-Id: I8ba63d6120a0aa849997b274fb2d68ad50b2285c
PiperOrigin-RevId: 181134179
|
|
|
|
|
|
|
|
|
|
|
| |
The sandboxed Spawn runners already used to call
LocalEnvProvider.rewriteEnvironment in order to
add TMPDIR for example, but didn't consistently
use this rewritten environment everywhere, and
used the Spawn's original environment instead.
Change-Id: Ifbede6ac0f14b83c617dcbcd85edfae88718b157
PiperOrigin-RevId: 181130506
|
|
|
|
| |
PiperOrigin-RevId: 181105886
|
|
|
|
|
|
|
| |
This is not needed for bootstrapping, which can be done using the real
AutoCodecProcessor anyway.
PiperOrigin-RevId: 181099386
|
|
|
|
|
|
| |
javax.annotation.processing.Generated
PiperOrigin-RevId: 181012373
|
|
|
|
|
|
|
|
|
|
| |
It's very common for a child to need a dependency that the parent does not.
This eliminates the need for a `@AutoCodec.Dependency D unusedDependency'
constructor parameter.
* Adds a marshaller for HashCode.
PiperOrigin-RevId: 180989432
|
|
|
|
|
|
|
| |
instead of emitting them one file at a time. This provides users
with a single add_dep command instead of one-per-file.
PiperOrigin-RevId: 180979982
|
|
|
|
|
|
| |
handled separately).
PiperOrigin-RevId: 180974083
|
| |
|
|
|
|
|
|
| |
Fixes #4391.
PiperOrigin-RevId: 180963440
|