commit | 337e717489d61418efaf957affdfdc96ba4c5372 | [log] [tgz] |
---|---|---|
author | Tony Aiuto <aiuto@google.com> | Wed Dec 09 10:20:14 2020 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Dec 09 10:21:52 2020 -0800 |
tree | ed866a80e347f05d55440f9ebae4f10346f0e830 | |
parent | 006d0783ae41cabefacd714b571fd31915096223 [diff] |
Start making distribution dependencies easier to update. This creates a mechanism to address #12081, but does not convert all use cases yet. The basic idea is to change distdir_tar so that each dependency is defined in a block rather than split into distinct dictionaries for archive, sha256, and urls. This means that updating a dependency can be isolated to 3 or 4 lines which appear together, rather than being sprinkled throughout WORKSPACE. The next steps would be - do the same for the other dependencies. I want to see this land and stay that way before doing the rest. Those PRs should have trivial reviews. - determine how to use DISTDIR_DEPS in the other embedded workspace files, such as src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/cc_configure.WORKSPACE - we need to splice distdir_deps.bzl into the dynamically created WORKSPACE files - or, export distdir_deps.bzl to the workspace and load it - or, since cc_configure.WORKSPACE is data, we generate it at build time. These could be done in either order. *other potential changes* - streamline the http_archive and maybe instances to read directly from DISTDIR. This would eliminate the tedious pattern of ``` sha256 = DIST_DEPS["rules_pkg"]["sha256"], urls = DIST_DEPS["rules_pkg"]["urls"], ``` - hide DISTDIR_DEPS from WORKSPACE. - pass just a list of package names (not archive names) to distfile_tar(). - distdir.bzl loads the deps list directly and looks up data by package name RELNOTES: None PiperOrigin-RevId: 346580497
{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:
See CONTRIBUTING.md