Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[7.1.0] Restart at most once when prepopulating repository rule envir…
…onment (#20643) 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 e8ac96a 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>
- Loading branch information