Skip to content

Commit

Permalink
refactor: stop autoregistering toolchains
Browse files Browse the repository at this point in the history
  • Loading branch information
kormide committed Oct 8, 2023
1 parent 4a4dafa commit f2f9471
Show file tree
Hide file tree
Showing 18 changed files with 423 additions and 54 deletions.
12 changes: 6 additions & 6 deletions .bcr/patches/go_dev_dep.patch
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
diff --git a/MODULE.bazel b/MODULE.bazel
index 07a6eff..26702ad 100644
index 621c5f4..abbd2e2 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -34,19 +34,19 @@ register_toolchains(
@@ -47,19 +47,19 @@ register_toolchains(
bazel_dep(
name = "gazelle",
version = "0.33.0",
- # In released versions: dev_dependency = True
+ dev_dependency = True
+ dev_dependency = True,
)
bazel_dep(
name = "rules_go",
version = "0.41.0",
repo_name = "io_bazel_rules_go",
- # In released versions: dev_dependency = True
+ dev_dependency = True
+ dev_dependency = True,
)

go_deps = use_extension(
"@gazelle//:extensions.bzl",
"go_deps",
- # In released versions: dev_dependency = True
+ dev_dependency = True
+ dev_dependency = True,
)
go_deps.from_file(go_mod = "//:go.mod")
use_repo(
41 changes: 40 additions & 1 deletion .github/workflows/release_prep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,31 @@ cat << EOF
\`\`\`starlark
bazel_dep(name = "aspect_bazel_lib", version = "${TAG:1}")
# Optionally register any toolchains used:
bazel_lib_toolchains = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "toolchains")
bazel_lib_toolchains.copy_directory()
bazel_lib_toolchains.copy_to_directory()
bazel_lib_toolchains.jq()
bazel_lib_toolchains.yq()
bazel_lib_toolchains.coreutils()
bazel_lib_toolchains.tar()
bazel_lib_toolchains.expand_template()
use_repo(bazel_lib_toolchains, "bsd_tar_toolchains", "copy_directory_toolchains", "copy_to_directory_toolchains", "coreutils_toolchains", "expand_template_toolchains", "jq_toolchains", "yq_toolchains")
register_toolchains(
"@copy_directory_toolchains//:all",
"@copy_to_directory_toolchains//:all",
"@jq_toolchains//:all",
"@yq_toolchains//:all",
"@bsd_tar_toolchains//:all",
"@coreutils_toolchains//:all",
"@expand_template_toolchains//:all",
)
\`\`\`
> Read more about bzlmod: <https://blog.aspect.dev/bzlmod>
Expand All @@ -48,10 +73,24 @@ http_archive(
url = "https://github.com/aspect-build/bazel-lib/releases/download/${TAG}/${ARCHIVE}",
)
load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies")
load("//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "register_copy_directory_toolchains", "register_copy_to_directory_toolchains", "register_coreutils_toolchains", "register_expand_template_toolchains", "register_tar_toolchains")
# Required bazel-lib dependencies
aspect_bazel_lib_dependencies()
# Register any bazel-lib toolchains used
register_copy_directory_toolchains()
register_copy_to_directory_toolchains()
register_expand_template_toolchains()
register_coreutils_toolchains()
register_tar_toolchains()
\`\`\`
Optional toolchains:
Expand Down
12 changes: 10 additions & 2 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,15 @@ bazel_dep(name = "platforms", version = "0.0.7")
# 0.5.4 is the first version with bzlmod support
bazel_dep(name = "stardoc", version = "0.5.4", repo_name = "io_bazel_stardoc")

ext = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "ext")
use_repo(ext, "bsd_tar_toolchains", "copy_directory_toolchains", "copy_to_directory_toolchains", "coreutils_toolchains", "expand_template_toolchains", "jq_toolchains", "yq_toolchains")
bazel_lib_toolchains = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "toolchains", dev_dependency = True)
bazel_lib_toolchains.copy_directory()
bazel_lib_toolchains.copy_to_directory()
bazel_lib_toolchains.jq()
bazel_lib_toolchains.yq()
bazel_lib_toolchains.coreutils()
bazel_lib_toolchains.tar()
bazel_lib_toolchains.expand_template()
use_repo(bazel_lib_toolchains, "bsd_tar_toolchains", "copy_directory_toolchains", "copy_to_directory_toolchains", "coreutils_toolchains", "expand_template_toolchains", "jq_toolchains", "yq_toolchains")

register_toolchains(
"@copy_directory_toolchains//:all",
Expand All @@ -30,6 +37,7 @@ register_toolchains(
"@bsd_tar_toolchains//:windows_amd64_toolchain",
# host toolchain must be last, as it's only suitable as a fallback on macos
"@bsd_tar_toolchains//:host_toolchain",
dev_dependency = True,
)

# To allow /tools to be built from source
Expand Down
12 changes: 11 additions & 1 deletion WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,20 @@ load(":internal_deps.bzl", "bazel_lib_internal_deps")
# Fetch deps needed only locally for development
bazel_lib_internal_deps()

load("//lib:repositories.bzl", "aspect_bazel_lib_dependencies")
load("//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "register_copy_directory_toolchains", "register_copy_to_directory_toolchains", "register_coreutils_toolchains", "register_expand_template_toolchains", "register_tar_toolchains")

aspect_bazel_lib_dependencies()

register_copy_directory_toolchains()

register_copy_to_directory_toolchains()

register_expand_template_toolchains()

register_coreutils_toolchains()

register_tar_toolchains()

# For running our own unit tests
load("@bazel_skylib//lib:unittest.bzl", "register_unittest_toolchains")

Expand Down
5 changes: 5 additions & 0 deletions docs/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ stardoc_with_diff_test(
bzl_library_target = "//lib:diff_test",
)

stardoc_with_diff_test(
name = "extension_utils",
bzl_library_target = "//lib:extension_utils",
)

stardoc_with_diff_test(
name = "expand_make_vars",
bzl_library_target = "//lib:expand_make_vars",
Expand Down
71 changes: 71 additions & 0 deletions docs/extension_utils.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 11 additions & 3 deletions e2e/copy_to_directory/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@ local_path_override(
path = "../..",
)

ext = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "ext")
ext.host()
use_repo(ext, "aspect_bazel_lib_host")
bazel_lib_toolchains = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "toolchains")
bazel_lib_toolchains.copy_to_directory()
use_repo(bazel_lib_toolchains, "copy_to_directory_toolchains")

register_toolchains(
"@copy_to_directory_toolchains//:all",
)

host = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "host")
host.host()
use_repo(host, "aspect_bazel_lib_host")
4 changes: 3 additions & 1 deletion e2e/copy_to_directory/WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@ local_repository(
path = "../..",
)

load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies")
load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "register_copy_to_directory_toolchains")

aspect_bazel_lib_dependencies()

register_copy_to_directory_toolchains()

############################################
# rules_go is needed to consume tools from sources

Expand Down
9 changes: 7 additions & 2 deletions e2e/coreutils/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,10 @@ local_path_override(
path = "../..",
)

ext = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "ext")
use_repo(ext, "coreutils_toolchains")
bazel_lib_toolchains = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "toolchains")
bazel_lib_toolchains.coreutils()
use_repo(bazel_lib_toolchains, "coreutils_toolchains")

register_toolchains(
"@coreutils_toolchains//:all",
)
4 changes: 3 additions & 1 deletion e2e/coreutils/WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ local_repository(
path = "../..",
)

load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies")
load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "register_coreutils_toolchains")

aspect_bazel_lib_dependencies()

register_coreutils_toolchains()
20 changes: 20 additions & 0 deletions e2e/smoke/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,23 @@ local_path_override(
module_name = "aspect_bazel_lib",
path = "../..",
)

bazel_lib_toolchains = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "toolchains")
bazel_lib_toolchains.copy_directory()
bazel_lib_toolchains.copy_to_directory()
bazel_lib_toolchains.jq()
bazel_lib_toolchains.yq()
bazel_lib_toolchains.coreutils()
bazel_lib_toolchains.tar()
bazel_lib_toolchains.expand_template()
use_repo(bazel_lib_toolchains, "bsd_tar_toolchains", "copy_directory_toolchains", "copy_to_directory_toolchains", "coreutils_toolchains", "expand_template_toolchains", "jq_toolchains", "yq_toolchains")

register_toolchains(
"@copy_directory_toolchains//:all",
"@copy_to_directory_toolchains//:all",
"@jq_toolchains//:all",
"@yq_toolchains//:all",
"@bsd_tar_toolchains//:all",
"@coreutils_toolchains//:all",
"@expand_template_toolchains//:all",
)
12 changes: 9 additions & 3 deletions e2e/smoke/WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,19 @@ local_repository(
path = "../..",
)

load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "register_jq_toolchains", "register_yq_toolchains")
load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "register_copy_directory_toolchains", "register_copy_to_directory_toolchains", "register_coreutils_toolchains", "register_expand_template_toolchains", "register_tar_toolchains")

aspect_bazel_lib_dependencies()

register_jq_toolchains()
register_copy_directory_toolchains()

register_yq_toolchains()
register_copy_to_directory_toolchains()

register_expand_template_toolchains()

register_coreutils_toolchains()

register_tar_toolchains()

############################################
# rules_go is needed to consume tools from sources
Expand Down
6 changes: 6 additions & 0 deletions lib/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,12 @@ bzl_library(
deps = ["//lib/private:diff_test"],
)

bzl_library(
name = "extension_utils",
srcs = ["extension_utils.bzl"],
deps = ["//lib/private:extension_utils"],
)

bzl_library(
name = "write_source_files",
srcs = ["write_source_files.bzl"],
Expand Down
5 changes: 5 additions & 0 deletions lib/extension_utils.bzl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
"Public API"

load("//lib/private:extension_utils.bzl", _extension_utils = "extension_utils")

extension_utils = _extension_utils
Loading

0 comments on commit f2f9471

Please sign in to comment.