diff --git a/MODULE.bazel b/MODULE.bazel index a68b668..00ba9db 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -9,21 +9,21 @@ bazel_dep(name = "rules_license", version = "0.0.8") # dist:not { bazel_dep(name = "bazel_skylib", version = "1.5.0") -bazel_dep(name = "aspect_bazel_lib", version = "2.1.0") +bazel_dep(name = "aspect_bazel_lib", version = "2.3.0") bazel_dep(name = "bzlparty_tools") archive_override( module_name = "bzlparty_tools", - integrity = "sha384-0yANdDDake+LVcTvKA4FhuMBDC5o4LQN3jlrpOzxZ8BIknduOJnKidBF9e2uJoiE", - strip_prefix = "tools-0.3.0", - urls = "https://github.com/bzlparty/tools/releases/download/v0.3.0/tools-v0.3.0.tar.gz", + integrity = "sha384-uE1Fsp623XbUyHzCn/u8cx3gJa6WN/aVBZWeaeWm7NG8OiK1tPZ2mk90eIvt8mgM", + strip_prefix = "tools-0.3.1", + urls = "https://github.com/bzlparty/tools/releases/download/v0.3.1/tools-v0.3.1.tar.gz", ) # } rules_compress_toolchains = use_extension("@bzlparty_rules_compress//:extensions.bzl", "toolchains") rules_compress_toolchains.s2() rules_compress_toolchains.zip() -use_repo(rules_compress_toolchains, "s2_toolchains", "zip_toolchains") +use_repo(rules_compress_toolchains, "s2", "zip") -register_toolchains("@s2_toolchains//:all", "@zip_toolchains//:all") +register_toolchains("@s2//:all", "@zip//:all") bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True) diff --git a/e2e/MODULE.bazel b/e2e/MODULE.bazel index e668942..eead4ee 100644 --- a/e2e/MODULE.bazel +++ b/e2e/MODULE.bazel @@ -10,7 +10,7 @@ local_path_override( archive_override( module_name = "bzlparty_tools", - integrity = "sha384-0yANdDDake+LVcTvKA4FhuMBDC5o4LQN3jlrpOzxZ8BIknduOJnKidBF9e2uJoiE", - strip_prefix = "tools-0.3.0", - urls = "https://github.com/bzlparty/tools/releases/download/v0.3.0/tools-v0.3.0.tar.gz", + integrity = "sha384-uE1Fsp623XbUyHzCn/u8cx3gJa6WN/aVBZWeaeWm7NG8OiK1tPZ2mk90eIvt8mgM", + strip_prefix = "tools-0.3.1", + urls = "https://github.com/bzlparty/tools/releases/download/v0.3.1/tools-v0.3.1.tar.gz", ) diff --git a/extensions.bzl b/extensions.bzl index 74e6f34..718a37f 100644 --- a/extensions.bzl +++ b/extensions.bzl @@ -1,12 +1,12 @@ "Module Extensions" -load("//lib:repositories.bzl", "compress_toolchains") +load("@bzlparty_tools//lib:toolchains.bzl", "register_platform_toolchains") load("//s2:assets.bzl", S2_ASSETS = "ASSETS") load("//zip:assets.bzl", ZIP_ASSETS = "ASSETS") TOOLS = { - "s2": S2_ASSETS, - "zip": ZIP_ASSETS, + "s2": struct(assets = S2_ASSETS, toolchain_type = "s2c_toolchain_type"), + "zip": struct(assets = ZIP_ASSETS, toolchain_type = "7zz_toolchain_type"), } def _has_tag(module, tag): @@ -14,9 +14,10 @@ def _has_tag(module, tag): def _toolchains_extension_impl(ctx): for module in ctx.modules: - for (name, assets) in TOOLS.items(): + for (name, config) in TOOLS.items(): if _has_tag(module, name): - compress_toolchains(name, assets) + toolchain_type = "@bzlparty_rules_compress//{}:{}".format(name, config.toolchain_type) + register_platform_toolchains(name, config.assets, toolchain_type) toolchains = module_extension( _toolchains_extension_impl, diff --git a/s2/BUILD.bazel b/s2/BUILD.bazel index 08a29c7..df215f4 100644 --- a/s2/BUILD.bazel +++ b/s2/BUILD.bazel @@ -1,5 +1,5 @@ load("@bazel_skylib//:bzl_library.bzl", "bzl_library") -load("@bzlparty_tools//lib:defs.bzl", "platform_binaries") +load("@bzlparty_tools//lib:defs.bzl", "multi_platform_assets") package(default_visibility = ["//visibility:public"]) @@ -20,7 +20,7 @@ bzl_library( GITHUB_URL = "https://github.com/klauspost/compress/releases/download/v1.17.9" -platform_binaries( +multi_platform_assets( name = "s2c", binary = "s2c", platforms = [ diff --git a/s2/assets.bzl b/s2/assets.bzl index 8669a82..a850192 100644 --- a/s2/assets.bzl +++ b/s2/assets.bzl @@ -1,11 +1,11 @@ ASSETS = { - "darwin_amd64": struct(binary = "s2c", url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-darwin_amd64.tar.gz", integrity = "sha384-JAjr6oKZPFFnHnkSDhMVW+cHUrvRmkUunJIDo9OzlcpEqljzg+SYZOTmcGXYb5ZN"), - "darwin_arm64": struct(binary = "s2c", url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-darwin_arm64.tar.gz", integrity = "sha384-5oXYvyx6BW5BcesxK6TqW1yPJpjlt18/UbFBneyhZvqYoYx36NsBZv+6+eSfb9of"), - "freebsd_amd64": struct(binary = "s2c", url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-freebsd_amd64.tar.gz", integrity = "sha384-P/37jnGNZYxeyQH6Evb2fScRHpbZP57guAoV7t2bbmUCM6H41V30dZxcv3dyrUbb"), - "freebsd_arm64": struct(binary = "s2c", url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-freebsd_arm64.tar.gz", integrity = "sha384-yOA1Q4buiJpqpOKtrxN8XZt9nAokLje/KT7fcmxZZ6mcN8gdR5LwG+T1KzDPYxrc"), - "linux_amd64": struct(binary = "s2c", url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-linux_amd64.tar.gz", integrity = "sha384-uCOoF2ThSaC62bhmtO4fvlQK7L8+bVro2okD6FCkaqeKkd3JjxBVtpmF+6N35HF2"), - "linux_arm64": struct(binary = "s2c", url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-linux_arm64.tar.gz", integrity = "sha384-xEa/+04WQW5QmfpAdvrVVFRGQx8SVz+Z/J+UCknPHmgIaWEp6DdD5Mz9bgWATYrA"), - "netbsd_amd64": struct(binary = "s2c", url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-netbsd_amd64.tar.gz", integrity = "sha384-1YbDJBZGcQZYKq0bRaRfJ3mDMwoEfL/4lMz6rUqg4x81x5sOiAG12oEgyTTWNXr4"), - "windows_amd64": struct(binary = "s2c.exe", url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-windows_amd64.zip", integrity = "sha384-1J/BC/l7v1dSCOkbopcSlsYc2h2bWbHwln3Jh/CSQOM2N3gJSVPPhUdYlpX6NrDX"), - "windows_arm64": struct(binary = "s2c.exe", url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-windows_arm64.zip", integrity = "sha384-sZPmZc9SdB5pDsRSiawCvw5NYPqyQhxOOqkxfHDUl3JpK9IkHJzHmrdejepchlk1"), + "darwin_amd64": struct(url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-darwin_amd64.tar.gz", binary = "s2c", integrity = "sha384-JAjr6oKZPFFnHnkSDhMVW+cHUrvRmkUunJIDo9OzlcpEqljzg+SYZOTmcGXYb5ZN"), + "darwin_arm64": struct(url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-darwin_arm64.tar.gz", binary = "s2c", integrity = "sha384-5oXYvyx6BW5BcesxK6TqW1yPJpjlt18/UbFBneyhZvqYoYx36NsBZv+6+eSfb9of"), + "freebsd_amd64": struct(url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-freebsd_amd64.tar.gz", binary = "s2c", integrity = "sha384-P/37jnGNZYxeyQH6Evb2fScRHpbZP57guAoV7t2bbmUCM6H41V30dZxcv3dyrUbb"), + "freebsd_arm64": struct(url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-freebsd_arm64.tar.gz", binary = "s2c", integrity = "sha384-yOA1Q4buiJpqpOKtrxN8XZt9nAokLje/KT7fcmxZZ6mcN8gdR5LwG+T1KzDPYxrc"), + "linux_amd64": struct(url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-linux_amd64.tar.gz", binary = "s2c", integrity = "sha384-uCOoF2ThSaC62bhmtO4fvlQK7L8+bVro2okD6FCkaqeKkd3JjxBVtpmF+6N35HF2"), + "linux_arm64": struct(url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-linux_arm64.tar.gz", binary = "s2c", integrity = "sha384-xEa/+04WQW5QmfpAdvrVVFRGQx8SVz+Z/J+UCknPHmgIaWEp6DdD5Mz9bgWATYrA"), + "netbsd_amd64": struct(url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-netbsd_amd64.tar.gz", binary = "s2c", integrity = "sha384-1YbDJBZGcQZYKq0bRaRfJ3mDMwoEfL/4lMz6rUqg4x81x5sOiAG12oEgyTTWNXr4"), + "windows_amd64": struct(url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-windows_amd64.zip", binary = "s2c.exe", integrity = "sha384-1J/BC/l7v1dSCOkbopcSlsYc2h2bWbHwln3Jh/CSQOM2N3gJSVPPhUdYlpX6NrDX"), + "windows_arm64": struct(url = "https://github.com/klauspost/compress/releases/download/v1.17.9/s2-windows_arm64.zip", binary = "s2c.exe", integrity = "sha384-sZPmZc9SdB5pDsRSiawCvw5NYPqyQhxOOqkxfHDUl3JpK9IkHJzHmrdejepchlk1"), } diff --git a/s2/private/toolchain.BUILD.bazel b/s2/private/toolchain.BUILD.bazel deleted file mode 100644 index d1ee0e6..0000000 --- a/s2/private/toolchain.BUILD.bazel +++ /dev/null @@ -1,14 +0,0 @@ -"BUILD file template for a platform-sepecific toolchain" - -load("@bzlparty_tools//lib:toolchains.bzl", "binary_toolchain") - -package(default_visibility = ["//visibility:public"]) - -binary_toolchain( - name = "s2c_toolchain", - prefix = "s2c", - binary = select({ - "@bazel_tools//src/conditions:host_windows": "s2c.exe", - "//conditions:default": "s2c", - }), -) diff --git a/s2/private/toolchains.BUILD.bazel b/s2/private/toolchains.BUILD.bazel deleted file mode 100644 index 3191592..0000000 --- a/s2/private/toolchains.BUILD.bazel +++ /dev/null @@ -1,17 +0,0 @@ -"BUILD file template for a combined toolchain that hosts all platform toolchains" - -load("@bzlparty_rules_compress//s2:assets.bzl", "ASSETS") -load("@bzlparty_tools//lib:platforms.bzl", "PLATFORMS") - -_SUPPORTED_PLATFORMS = ASSETS.keys() - -[ - toolchain( - name = "s2c_%s_toolchain" % platform, - toolchain = "@s2_%s//:s2c_toolchain" % platform, - exec_compatible_with = ecw, - toolchain_type = "@bzlparty_rules_compress//s2:s2c_toolchain_type", - visibility = ["//visibility:public"], - ) if platform in _SUPPORTED_PLATFORMS else () - for (platform, ecw) in PLATFORMS.items() -] diff --git a/zip/BUILD.bazel b/zip/BUILD.bazel index c24cbf2..3554a1c 100644 --- a/zip/BUILD.bazel +++ b/zip/BUILD.bazel @@ -1,5 +1,5 @@ load("@bazel_skylib//:bzl_library.bzl", "bzl_library") -load("@bzlparty_tools//lib:platform_binary.bzl", "platform_binaries") +load("@bzlparty_tools//lib:defs.bzl", "multi_platform_assets") package(default_visibility = ["//visibility:public"]) @@ -25,7 +25,7 @@ VERSION_INT = VERSION.replace(".", "") GITHUB_URL = "https://github.com/ip7z/7zip/releases/download/%s" % VERSION -platform_binaries( +multi_platform_assets( name = "7zz", binary = "7zz", platforms = [ @@ -44,5 +44,5 @@ platform_binaries( ) toolchain_type( - name = "zip_toolchain_type", + name = "7zz_toolchain_type", ) diff --git a/zip/assets.bzl b/zip/assets.bzl index ab7a432..a39c2e7 100644 --- a/zip/assets.bzl +++ b/zip/assets.bzl @@ -1,6 +1,6 @@ ASSETS = { - "darwin_amd64": struct(binary = "7zz", url = "https://github.com/ip7z/7zip/releases/download/24.07/7z2407-mac.tar.xz", integrity = "sha384-xl0HW3pHOySG+NRdSnf/fhIDKpHlwjOC2dpqUOXYEXH2Ifh8jrg2FnjKz09W0F+G"), - "darwin_arm64": struct(binary = "7zz", url = "https://github.com/ip7z/7zip/releases/download/24.07/7z2407-mac.tar.xz", integrity = "sha384-xl0HW3pHOySG+NRdSnf/fhIDKpHlwjOC2dpqUOXYEXH2Ifh8jrg2FnjKz09W0F+G"), - "linux_amd64": struct(binary = "7zz", url = "https://github.com/ip7z/7zip/releases/download/24.07/7z2407-linux-x64.tar.xz", integrity = "sha384-nsopQowWAMD63n2PE7NpPl+ySf6c1/l4oMrHMC+rXTS+NeIXik5Hsar253TSmHtq"), - "linux_arm64": struct(binary = "7zz", url = "https://github.com/ip7z/7zip/releases/download/24.07/7z2407-linux-arm64.tar.xz", integrity = "sha384-VeJ8StL8Ra8anxxS70xVZaBxhb+tNJWo4mMcUVYEK09pfgFaVJdp5sA/D9+7O5IG"), + "darwin_amd64": struct(url = "https://github.com/ip7z/7zip/releases/download/24.07/7z2407-mac.tar.xz", binary = "7zz", integrity = "sha384-xl0HW3pHOySG+NRdSnf/fhIDKpHlwjOC2dpqUOXYEXH2Ifh8jrg2FnjKz09W0F+G"), + "darwin_arm64": struct(url = "https://github.com/ip7z/7zip/releases/download/24.07/7z2407-mac.tar.xz", binary = "7zz", integrity = "sha384-xl0HW3pHOySG+NRdSnf/fhIDKpHlwjOC2dpqUOXYEXH2Ifh8jrg2FnjKz09W0F+G"), + "linux_amd64": struct(url = "https://github.com/ip7z/7zip/releases/download/24.07/7z2407-linux-x64.tar.xz", binary = "7zz", integrity = "sha384-nsopQowWAMD63n2PE7NpPl+ySf6c1/l4oMrHMC+rXTS+NeIXik5Hsar253TSmHtq"), + "linux_arm64": struct(url = "https://github.com/ip7z/7zip/releases/download/24.07/7z2407-linux-arm64.tar.xz", binary = "7zz", integrity = "sha384-VeJ8StL8Ra8anxxS70xVZaBxhb+tNJWo4mMcUVYEK09pfgFaVJdp5sA/D9+7O5IG"), } diff --git a/zip/private/toolchain.BUILD.bazel b/zip/private/toolchain.BUILD.bazel deleted file mode 100644 index 0f58b3a..0000000 --- a/zip/private/toolchain.BUILD.bazel +++ /dev/null @@ -1,11 +0,0 @@ -"BUILD file template for a platform-sepecific toolchain" - -load("@bzlparty_tools//lib:toolchains.bzl", "binary_toolchain") - -package(default_visibility = ["//visibility:public"]) - -binary_toolchain( - name = "zip_toolchain", - prefix = "7zz", - binary = "7zz", -) diff --git a/zip/private/toolchains.BUILD.bazel b/zip/private/toolchains.BUILD.bazel deleted file mode 100644 index 096a68e..0000000 --- a/zip/private/toolchains.BUILD.bazel +++ /dev/null @@ -1,17 +0,0 @@ -"BUILD file template for a combined toolchain that hosts all platform toolchains" - -load("@bzlparty_rules_compress//zip:assets.bzl", "ASSETS") -load("@bzlparty_tools//lib:platforms.bzl", "PLATFORMS") - -_SUPPORTED_PLATFORMS = ASSETS.keys() - -[ - toolchain( - name = "zip_%s_toolchain" % platform, - toolchain = "@zip_%s//:zip_toolchain" % platform, - exec_compatible_with = ecw, - toolchain_type = "@bzlparty_rules_compress//zip:zip_toolchain_type", - visibility = ["//visibility:public"], - ) if platform in _SUPPORTED_PLATFORMS else () - for (platform, ecw) in PLATFORMS.items() -] diff --git a/zip/private/zip.bzl b/zip/private/zip.bzl index 2002773..30f48a9 100644 --- a/zip/private/zip.bzl +++ b/zip/private/zip.bzl @@ -9,7 +9,7 @@ ZipFileInfo = provider( ) def _zip_impl(ctx): - toolchain = ctx.toolchains["@bzlparty_rules_compress//zip:zip_toolchain_type"].binary_info + toolchain = ctx.toolchains["@bzlparty_rules_compress//zip:7zz_toolchain_type"].binary_info if ctx.outputs.out.basename.endswith(".gz") and len(ctx.files.srcs) > 1: fail("gz can only compress a single file! %s files given" % len(ctx.files.srcs)) @@ -68,5 +68,5 @@ This rule runs `7zz` to compress an input file. See https://7-zip.org/ for details. """, - toolchains = ["@bzlparty_rules_compress//zip:zip_toolchain_type"], + toolchains = ["@bzlparty_rules_compress//zip:7zz_toolchain_type"], )