commit | efbff0aa9fa3ee58105d74d23d93d3c227809fc3 | [log] [tgz] |
---|---|---|
author | bazel.build machine account <15028808+bazel-io@users.noreply.github.com> | Tue Jan 09 04:44:31 2024 +0100 |
committer | GitHub <noreply@github.com> | Tue Jan 09 03:44:31 2024 +0000 |
tree | 10597bd044b45c51c2973b9a94f9702fd1add233 | |
parent | 35efa965a332830c2855e48a9cf2944e0fef8f8b [diff] |
[6.5.0] Restart at most once when prepopulating repository rule environment (#20667) When a repository rule is fetch attributes are iterated over in `enforceLabelAttributes` to prepopulate the environment, restarting the fetch each time a new dependency is discovered. This is faster than calling `repository_ctx.path(...)` early in the repository rule implementation function but still has considerable overhead. This PR defers throwing `NeedsSkyframeRestartException` till after every attribute has been processed, greatly reducing the number of restarts and iterations. In an internal project these optimisations are particularly noticeable. Before: 2min 8s, 2min 7s After: 1min 35s, 1min 27s Closes #20434. Commit https://github.com/bazelbuild/bazel/commit/e8ac96adb860b9831a62681167295f103a51470a PiperOrigin-RevId: 588090528 Change-Id: I7917b137d6e60b6d6a73189cf396418a85b3ec28 Co-authored-by: Jordan Mele <mele@canva.com> Co-authored-by: Xùdōng Yáng <wyverald@gmail.com>
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
To report a security issue, please email security@bazel.build with a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue. Our vulnerability management team will respond within 3 working days of your email. If the issue is confirmed as a vulnerability, we will open a Security Advisory. This project follows a 90 day disclosure timeline.
See CONTRIBUTING.md