| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The option --experimental_distdir has been introduced 4 months
ago and was completely unproblematic ever since. Moreover, it
is now used productively, both in our own bootstrapping process[1],
as well as in external packaging of projects using bazel[2]. So
make this option non-experimental. We still keep the old name as
an alternative to not break existing uses.
Related: #5175.
RELNOTES: The --distdir option is no longer experimental. This
option allows to specify additional directories to look for
files before trying to fetch them from the network. Files from
any of the distdirs are only used if a checksum for the file
is specified and both, the filename and the checksum, match.
[1] Commit 3c9cd82b847f3ece8ec04b2029bd5e8ad0eb7502
[2] https://github.com/gentoo/gentoo/blob/7379cdb578b0c070c846c3fa9f71470e2c5d1320/sci-libs/tensorflow/tensorflow-1.8.0-r1.ebuild#L168
Change-Id: I536238f9bdbad6b4f7222b4f6a1464d70d9f3be3
PiperOrigin-RevId: 199637265
|
|
|
|
|
|
|
|
|
| |
The flag --experimental_repository_cache has been renamed to --repository_cache
(with the old name still usable for some releases). Adapt the shell tests to
use the preferred name of that flag.
Change-Id: I88ba70d386d5e8bb1bb60bcac58b2f1cc325ff17
PiperOrigin-RevId: 193003482
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make the --experimental_repository_cache option no longer experimental and enable
the cache by default. The default location is in the a separate directory under the
install base (under .cache/bazel user's home directory); this means it is shared
between workspaces und not between different versions of bazel. We plan to also
share it between different bazel versions in the future.
Fixes #4676.
RELNOTES:
repository_cache is no longer experimental and enabled by default.
Change-Id: I8499c2d1811e0fe8d830796e07cd6f8bc75e48ba
PiperOrigin-RevId: 187172766
|
|
|
|
|
|
|
|
|
|
|
| |
...to ease transition from the native http_archive rule. In this way,
switching from the native http_archive rule to the skylark one literally
is only adding
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
Change-Id: I0d3a16ad9ab046b975ea64c97dd201e7a9d70a6a
PiperOrigin-RevId: 186285020
|
|
|
|
|
|
|
| |
...and interpret them relative to the workspace directory.
Change-Id: I31a0ce3a179356c798f00c4218ddd22e16b256a3
PiperOrigin-RevId: 185136432
|
|
|
|
|
|
|
|
|
|
| |
...and interpret them relative to the workspace directory.
Improves on #3516. In fact, fixes the original request of
supporting relative paths.
Change-Id: Ibbb6fd43179d589ad477427e47e26c773c7a04de
PiperOrigin-RevId: 185121629
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With --experimental_repository_cache, bazel has means of avoiding
downloading the same archive again. However, this requires bazel
to first download it itself, as we make no guarantee about the
internal structure of that cache; this, in turn, does not play
well in situations where bazel has to cooperate with other tools,
e.g., because the bazel build is just one step in a larger package
building process. Therefore, add an experimental option allowing
to specify directories where the outer process may have placed
needed files and make bazel not download them if a file with correct
name and hash could be found in one of those directories. In this
way, cooperation is possible without patching all entries in the
WORSPACE file.
Change-Id: I43240b8b59bf8472ec0310661015899e46491236
PiperOrigin-RevId: 185115713
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks on our CI Linux machines (but works on our work desktop Linux machines); apparently, even our own Linux machines are too different from each other...
Fixes #4557
*** Original change description ***
http_archive: verify that unicode characters are OK in tar archives
Add a test verifying that http_archive can extract a tar archive
containing unicode characters. While such files cannot be referred
to by labels, it is still important that the archive can be extracted.
Also fix that use case on Darwin, by appropriately reencoding the string,
so that the Files java standard library can encode it back to what we
had in the first place.
Work-around for #1653, showing that http_archive from @bazel_tools can
be used; however, the issue still remains for zip archives.
***
PiperOrigin-RevId: 184132385
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a test verifying that http_archive can extract a tar archive
containing unicode characters. While such files cannot be referred
to by labels, it is still important that the archive can be extracted.
Also fix that use case on Darwin, by appropriately reencoding the string,
so that the Files java standard library can encode it back to what we
had in the first place.
Work-around for #1653, showing that http_archive from @bazel_tools can
be used; however, the issue still remains for zip archives.
Change-Id: If944203bf618c21705af676347d8591ab015d559
PiperOrigin-RevId: 183987726
|
|
|
|
|
|
|
|
|
|
| |
Allow symbolic links in zip archives, as long as they refer to
a file within the same archive.
Fixes #2656.
Change-Id: I0b21b8bb79a7e999ef191baa2a71d29745ac65e4
PiperOrigin-RevId: 183664725
|
|
|
|
|
|
|
|
| |
...works as expected, caching only based on the predicted sha256 sum and
also is available for bazel query. Closes #2780.
Change-Id: I64f09728d9def561a6ac3960f8fa36540aba31dc
PiperOrigin-RevId: 183257435
|
|
|
|
|
|
|
|
|
| |
Add a test verifying that http_archive from @bazel_tools caches
repositories, also for subsequent queries. Provides a workaround
for #2780.
Change-Id: Ie842c2abf47f42f75e146e454be4ab52efd12ada
PiperOrigin-RevId: 183063093
|
|
|
|
|
|
|
|
| |
Fixes #3234.
Rollforward of commit dafe71390340224e06eab0ac7afcebb2f5219f5a with a bugfix
PiperOrigin-RevId: 182903117
|
|
|
|
|
|
|
|
|
|
| |
Bazel may also depend on external repositories that already contain
build files. When using http_archive from @bazel_tools also support
that use case, by supporting simply omitting `build_file` and
`build_file_contents`.
Change-Id: I40a9b85ae0aba850c73104d2e2fe7f7ee814e093
PiperOrigin-RevId: 182893460
|
|
|
|
|
|
|
|
|
|
|
|
| |
The http_archive command from @bazel_tools can add a BUILD file to an
external repository. Add a test ensuring that changes to that file, in
particular the addition of a previously missing file, are tracked
properly.
Provides a workaround for #3637.
Change-Id: Ibd6a3336834686a13eaa1f9ce7d4c6223410b222
PiperOrigin-RevId: 182221653
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks Bazel CI (https://ci.bazel.build/job/bazel-tests/1722/)
*** Original change description ***
Report unsuccessful error code if bazel fetch fails in "keep going" mode.
Fixes #3234.
PiperOrigin-RevId: 182042503
|
|
|
|
|
|
|
| |
Fixes #3234.
Change-Id: I1bfbe856d35b98995f5a0684fe47c7566b8dd093
PiperOrigin-RevId: 182029085
|
|
|
|
|
| |
Change-Id: Id3d6e6da60aca3c02c7cf3e9e727ecbf177dde66
PiperOrigin-RevId: 181971084
|
|
|
|
|
|
|
|
|
|
| |
When checking for conflicts between an input and an output file
of a rule, honor the repository the label belongs to. It is a
perfectly valid use case to create one file from an equally named
(including path) in a different repository.
Change-Id: I3aaa99eaa0c473ec31c5cc77beacf657c41ef56d
PiperOrigin-RevId: 181761940
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...or any other non repository rule.
Using a bind rule as the name of the repository was returning
a strange error "could not find handler for bind rule" which was
not useful, so was replaced by a crash.
Fixes #3664
Change-Id: Id0711470e6a1ab9267e05eb273900b18d0a27d6b
PiperOrigin-RevId: 167706825
|
|
|
|
|
|
|
|
|
| |
By replacing uses of /bin/bash by /bin/sh, a tool which is more
reliably at this location. Then, enable most of the bazel tests
for FreeBSD as well.
Change-Id: Ic56a1705858f1ed67d1e96e2937e9389dd1d0e36
PiperOrigin-RevId: 164241635
|
|
|
|
|
|
| |
For #2409.
PiperOrigin-RevId: 156986600
|
|
|
|
|
|
|
|
| |
new_foo_repository rules.
Change-Id: Iadcc24bb2a207126cec9aa31faba6d76ee80da41
PiperOrigin-RevId: 151739968
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Broke tests on CI: http://ci.bazel.io/job/bazel-tests/570/
*** Original change description ***
Roll forward execroot change
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions. Cust...
--
PiperOrigin-RevId: 147833177
MOS_MIGRATED_REVID=147833177
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions. Custom crosstools that hardcode external/<repo> paths will have to
be updated.
Issue #1262.
--
PiperOrigin-RevId: 147726370
MOS_MIGRATED_REVID=147726370
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This add a markerData map to the RepositoryFunction#fetch function so RepositoryFunction-s
can declare extraneous data to add to the marker file. The RepositoryFunction#verifyMarkerData
is called to verify those data in order to know if the repository is up to date
and need re-fetching.
Design doc: https://bazel.build/designs/2016/10/18/repository-invalidation.html [step 2]
--
Change-Id: I9083fb72a0142f418a7296f889cd3eaf32e92498
Reviewed-on: https://cr.bazel.build/7973
PiperOrigin-RevId: 144728497
MOS_MIGRATED_REVID=144728497
|
|
|
|
|
|
|
|
| |
stat has completely different options.
--
PiperOrigin-RevId: 142668570
MOS_MIGRATED_REVID=142668570
|
|
|
|
|
|
|
|
|
|
|
|
| |
The --date long option is a GNU extension of the touch(1)
tool. Replace by the equivalent standard option, to have the
test not break on other systems, like darwin.
--
Change-Id: I73d935a82d20d7c3a0308aedaa5faf76bf0d206c
Reviewed-on: https://cr.bazel.build/8040
PiperOrigin-RevId: 142651354
MOS_MIGRATED_REVID=142651354
|
|
|
|
|
|
|
|
| |
Part of rolling forward commit b9f914fa56a00530d38b597dc853aad50d1decfb.
--
PiperOrigin-RevId: 142576787
MOS_MIGRATED_REVID=142576787
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change improves upon 4c67807964e37cfd55bbcda4c6374fcc480bcecc.
- A urls attribute has been added to the native workspace rules, with
the exception of maven_jar and git_repository. The Skylark repository
API also supports multiple URLs now.
- The earlier mirrors in the list are preferred. Failover will happen
automatically in parallel.
- The first 32kB of data is checked before choosing a mirror in order
to evade captive portals.
- If one's Internet goes down or a download times out, then the
download will resume automatically where it left off, provided the
server supports RFC7233 for that particular file. Please note that
GitHub does not support this for archive snapshots. Files should
always be mirrored to a CDN, e.g. GCS, because they support this.
- A semaphore is now used on downloads so only 8 can happen at once.
Fixes #1814
Fixes #2131
Fixes #2008
Fixes #1968
Fixes #1717
Fixes #943
Wont fix #1194
Fixes tensorflow/tensorflow#5933
Fixes tensorflow/tensorflow#5924
Fixes tensorflow/tensorflow#5924
Fixes tensorflow/tensorflow#5432
See #1607
See #821
See tensorflow/tensorflow#5080
See tensorflow/tensorflow#5029
See tensorflow/tensorflow#4583
See tensorflow/tensorflow#4058
RELNOTES: A urls attribute has been added to repository rules to support multiple mirror URLs for reliably downloading files.
--
MOS_MIGRATED_REVID=140495736
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. We now retry on connection failures.
a. With exponential backoff.
b. While recovering quickly from ephemeral failures.
c. While still working if internet or web server is slow.
2. We now request gzip responses from web server.
Fixed #1760
Fixed #1910
RELNOTES: External downloads now retry with exponential backoff and support gzip content-encoding.
--
MOS_MIGRATED_REVID=140049160
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently a call to "bazel" in an integration test means calling a (quite
hidden) function in test-setup.sh which actually calls "$bazel" defined
in "shell/bazel/testenv.sh" which is equal to "$(rlocation io_bazel/src/bazel)".
This is extremely confusing and error prone.
The new mechanism is to add a wrapper script to shell/bin called bazel
and export this directory to the PATH.
Moreover, not every test loads the same test environment, for instance consider
how bazel_query_test loads the test environment:
- Load shell/integration/testenv.sh which loads,
- shell/bazel/test-setup.sh which loads,
- shell/bazel/testenv.sh which loads,
- shell/unittest.bash which loads,
- shell/testenv.sh
Again this is error prone and specially hard to understand, in fact
each test writer needs to decide which of these testenv to load.
This change fixes all of this by having only one testenv.sh
and summarizing the test setup in integration_test_setup.sh.
Namely, for any new integration test, the developer
needs to load integration_test_setup to get the environment set up including
the unittest framework (also it helps to attract contributions).
This change also allows to open sourcing client_sigint_test: Since bazel was a
function client_sigint_test was using a wrong process id to interrupt
the build. The problem is that $! returns
bash's id instead of the id of the process running in the background
when using a function instead of an executable.
A few tests needed to be adapted to the new infrastructure.
--
MOS_MIGRATED_REVID=136470360
|
|
|
|
|
|
|
|
|
|
|
| |
My previous change carefully checked that the file was a symlink before
removing it and added a test with local repositories... and it of course isn't
a symlink with downloaded repositories and crashes.
Fixes #1697.
--
MOS_MIGRATED_REVID=134536130
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
**Experimental**
This is an initial implementation of the maven_jar rule in Skylark, targeted at
the FRs in issue #1410.
Implemented a wrapper around the maven binary to pull dependencies from
remote repositories into a directory under {output_base}/external.
Attributes `name`, `artifact`, `repository`, `sha1` have been implemented,
but not `server`.
Caveat: this rule assumes that the Maven dependency is installed in the
system. Hence, the maven_skylark_test integration tests are tagged with
"manual" and commented out because the Bazel CI isn't configured with
the Maven binary yet.
Added a serve_not_found helper for 404 response tests.
Usage:
```
load("@bazel_tools//tools/build_defs/repo:maven_rules.bzl", "maven_jar")
maven_jar(
name = "com_google_guava_guava",
artifact = "com.google.guava:guava:18.0",
sha1 = "cce0823396aa693798f8882e64213b1772032b09",
repository = "http://uk.maven.org/maven2",
)
```
With regards to server, there are some limitations with retrieving a
maven_server's attribute at Loading Phase without the use of hacky macros
(issue #1704), and even if macros are used, the maven_server is not treated as
an actual dependency by maven_jar. There is a test (`test_unimplemented_server_attr`)
to ensure that the error message to shown to users if they use the server
attribute with this rule.
--
Change-Id: I167f9d13835c30be971928b4cc60167a8e396893
Reviewed-on: https://bazel-review.googlesource.com/c/5770
MOS_MIGRATED_REVID=133971809
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks TensorFlow and other Bazel jobs on ci.bazel.io
*** Original change description ***
Change execution root for external repositories to be ../repo
Some of the important aspect of this change:
* Remote repos in the execution root are under output_base/execroot/repo_name, so the prefix is ../repo_name (to escape the local workspace name).
* Package roots for external repos were previously "output_base/", they are now output_base/external/repo_name (which means source artifacts always have a relative path from their repository).
* Outputs are under bazel-bin/external/repo_name/ (or similarly under genfiles). Note that this is a bit of a change from how this was implemented in the previous cl.
Fixes #1262.
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions.
Roll forward of bdfd58a.
--
MOS_MIGRATED_REVID=133709658
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some of the important aspect of this change:
* Remote repos in the execution root are under output_base/execroot/repo_name, so the prefix is ../repo_name (to escape the local workspace name).
* Package roots for external repos were previously "output_base/", they are now output_base/external/repo_name (which means source artifacts always have a relative path from their repository).
* Outputs are under bazel-bin/external/repo_name/ (or similarly under genfiles). Note that this is a bit of a change from how this was implemented in the previous cl.
Fixes #1262.
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions.
Roll forward of bdfd58a.
--
MOS_MIGRATED_REVID=133606309
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125160288
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
repositories
One interesting side effect of how this is implemented is that for external
repositories, bin/ and genfiles/ are combined. External repo output is under
bazel-out/local-fastbuild/repo_name for each repo.
Fixes #1262.
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions.
--
MOS_MIGRATED_REVID=125095799
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Local repositories were not marked, so if a WS file switched from
remote->local->remote, on the first run the remote rule would create a mark
file, on the second run the local rule would ignore it, and then on the third
run the remote rule would look at the mark file and see, "I'm already
up-to-date," leaving the repository as a local repo.
Fixes #977.
--
MOS_MIGRATED_REVID=125060180
|
|
|
|
|
|
|
|
|
| |
Instead of resolving them to the underlying file.
Fixes #1384.
--
MOS_MIGRATED_REVID=124746179
|
|
|
|
|
|
|
|
| |
This resolves them relative to the repository root directory (the same way
.tar.gz paths do).
--
MOS_MIGRATED_REVID=124573519
|
|
|
|
|
|
|
|
|
|
| |
Fixes #1281.
RELNOTES: Symlinks in zip files are now unzipped correctly by http_archive,
download_and_extract, etc.
--
MOS_MIGRATED_REVID=123233604
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rollback of commit cda4b4eae0c495a8f90f2a70a8db46e34062ee26.
*** Reason for rollback ***
Roll-forward with fixes (see ExternalPackageBuilder).
*** Original change description ***
Automated [] rollback of commit 178a3dfda8bf72abf22758597a90a4afb8eed181.
*** Reason for rollback ***
Broke ci.bazel.io.
See #1234.
*** Original change description ***
Allow modules to inject a custom AttributeContainer.
--
MOS_MIGRATED_REVID=122100417
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=121475668
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit 790d2f6009d47fe92cf0cd92a1473bbf0141f32e.
*** Reason for rollback ***
Broke non-Bazel projects on ci.bazel.io
Fixes #1168
*** Original change description ***
Move the runfiles for external repositories to under the x.runfiles/ directory
This also sets the Bazel workspace name to io_bazel_source.
Fixes #848.
Relevant to #1116, #1124,
RELNOTES[INC]: All repositories are now directly under the x.runfiles directory in the runfiles tree (previously, external repositories were at x.runfiles/main-repo/external/other-repo. This simplifies handling remote repository runfiles considerably, but will break existing references to external repository runfiles....
***
--
MOS_MIGRATED_REVID=120535721
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also sets the Bazel workspace name to io_bazel_source.
Fixes #848.
Relevant to #1116, #1124,
RELNOTES[INC]: All repositories are now directly under the x.runfiles directory in the runfiles tree (previously, external repositories were at x.runfiles/main-repo/external/other-repo. This simplifies handling remote repository runfiles considerably, but will break existing references to external repository runfiles.
---
Furthermore, if a Bazel project does not provide a workspace name in the WORKSPACE file, Bazel will now default to using __main__ as the workspace name (instead of "", as previously). The repository's runfiles will appear under x.runfiles/__main__/.
--
MOS_MIGRATED_REVID=120224534
|
|
|
|
|
|
|
|
|
| |
Without that spaces, we were getting:
src/test/shell/bazel/external_integration_test: line 540: [: missing `]'
in the test log.
--
MOS_MIGRATED_REVID=117707546
|
|
|
|
|
|
|
|
|
|
|
| |
Support all 301 and 302 redirect handling in bazel. Only support
absolute Location redirects (this is the spec, we can revisit if we
find a lot of servers are doing it wrong).
Fixes #959.
--
MOS_MIGRATED_REVID=115490327
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
new_local_repository which allows the build file to be specified by a string
directly in the rule rather than using a separate file. build_file and
build_file_content are both optional, but one or the other must be
specified.
RELNOTES: build_file_content attribute added to new_git_repository,
new_http_archive, and new_local_repository.
--
MOS_MIGRATED_REVID=114490435
|
|
|
|
|
|
|
|
| |
RELNOTES: The sha256 attribute is now optional (although recommended!) for
remote repository rules.
--
MOS_MIGRATED_REVID=114139613
|