From 3fddca6d5dcddafeb0d00499c7cd788d84ed8462 Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Wed, 20 May 2026 10:42:08 +0200 Subject: [PATCH 1/3] feat: globally register ZLS index and toolchains Move that extension out of dev-dependency mode so that it also applies for downstream users when rules_zig is not the root module. --- MODULE.bazel | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 4f477878..216fdc92 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -35,6 +35,12 @@ register_toolchains("@rules_zig//zig/target:all") register_toolchains("@zig_toolchains//:all") +zls = use_extension("//zig/zls:extensions.bzl", "zls") +zls.index(file = "//zig/zls/private:versions.json") +use_repo(zls, "zls_toolchains") + +register_toolchains("@zls_toolchains//:all") + zig_dev = use_extension( "//zig:extensions.bzl", "zig", @@ -48,7 +54,6 @@ zls_dev = use_extension( "zls", dev_dependency = True, ) -zls_dev.index(file = "//zig/zls/private:versions.json") zls_dev.toolchain( zig_version = "0.16.0", zls_version = "0.16.0", @@ -57,12 +62,6 @@ zls_dev.toolchain( zig_version = "0.15.2", zls_version = "0.15.1", ) -use_repo(zls_dev, "zls_toolchains") - -register_toolchains( - "@zls_toolchains//:all", - dev_dependency = True, -) bazel_dep(name = "toolchains_buildbuddy", version = "0.0.4", dev_dependency = True) From aa22256dca8f836eaeb5f687a38f7b63e5ce9c91 Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Wed, 20 May 2026 10:54:21 +0200 Subject: [PATCH 2/3] do not require at least one registered ZLS toolchain --- zig/zls/private/bzlmod/zls.bzl | 6 ------ 1 file changed, 6 deletions(-) diff --git a/zig/zls/private/bzlmod/zls.bzl b/zig/zls/private/bzlmod/zls.bzl index dcfa8a61..8c603cf0 100644 --- a/zig/zls/private/bzlmod/zls.bzl +++ b/zig/zls/private/bzlmod/zls.bzl @@ -156,9 +156,6 @@ def _toolchain_extension(module_ctx): if err != None: fail(*err) - if len(mappings) == 0: - fail("The zls extension requires at least one zls.toolchain tag.") - toolchain_names = [] toolchain_labels = [] toolchain_zig_versions = [] @@ -195,9 +192,6 @@ def _toolchain_extension(module_ctx): platform = platform, ) - if len(toolchain_names) == 0: - fail("No ZLS toolchains were generated. Check that the requested ZLS versions have entries for supported platforms.") - toolchains_repo( name = _DEFAULT_NAME + "_toolchains", names = toolchain_names, From e46385b8ce3760ae91f6dced8786455b229feb6b Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Wed, 20 May 2026 10:57:45 +0200 Subject: [PATCH 3/3] docs: add release note docs for ZLS toolchain --- .github/scripts/release_prep.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/scripts/release_prep.sh b/.github/scripts/release_prep.sh index f78d83fe..68762f91 100755 --- a/.github/scripts/release_prep.sh +++ b/.github/scripts/release_prep.sh @@ -23,11 +23,20 @@ bazel_dep(name = "rules_zig", version = "$VERSION") Optionally add the following to your \`MODULE.bazel\` file to install a specific Zig toolchain version: \`\`\`starlark -zig = use_extension("//zig:extensions.bzl", "zig") +zig = use_extension("@rules_zig//zig:extensions.bzl", "zig") zig.toolchain(zig_version = "0.16.0") \`\`\` You can call \`zig.toolchain\` multiple times to install multiple Zig versions. +Optionally add the following to your \`MODULE.bazel\` file to install a specific ZLS toolchain version and declare what Zig version it applies to: + +\`\`\`starlark +zls = use_extension("@rules_zig//zig/zls:extensions.bzl", "zls") +zls.toolchain(zig_version = "0.16.0", zls_version = "0.16.0") +\`\`\` + +You can call \`zls.toolchain\` multiple times to install multiple ZLS versions. + Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported. EOF