From 0df694a15b750a7d62877c3b08a8ba0f9d36c965 Mon Sep 17 00:00:00 2001 From: Fabian Meumertzheim Date: Sun, 26 Feb 2023 23:38:55 +0100 Subject: [PATCH] Address review comments --- go/private/extensions.bzl | 6 ++++++ go/private/sdk.bzl | 14 ++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/go/private/extensions.bzl b/go/private/extensions.bzl index 646683425f..2bed4532a7 100644 --- a/go/private/extensions.bzl +++ b/go/private/extensions.bzl @@ -132,6 +132,12 @@ def _default_go_sdk_name(*, module, multi_version, tag_type, index): ) def _toolchain_prefix(index, name): + """Prefixes the given name with the index, padded with zeros to ensure lexicographic sorting. + + Examples: + _toolchain_prefix( 2, "foo") == "_0002_foo_" + _toolchain_prefix(2000, "foo") == "_2000_foo_" + """ return "_{}_{}_".format(_left_pad_zero(index, _TOOLCHAIN_INDEX_PAD_LENGTH), name) def _left_pad_zero(index, length): diff --git a/go/private/sdk.bzl b/go/private/sdk.bzl index 5fb2d9c862..e63c390d38 100644 --- a/go/private/sdk.bzl +++ b/go/private/sdk.bzl @@ -228,14 +228,7 @@ def go_toolchains_build_file_content( sdk_repos, sdk_types, sdk_versions): - if len({len(l): None for l in [ - prefixes, - geese, - goarchs, - sdk_repos, - sdk_types, - sdk_versions, - ]}) != 1: + if not _have_same_length(prefixes, geese, goarchs, sdk_repos, sdk_types, sdk_versions): fail("all lists must have the same length") loads = [ @@ -622,6 +615,11 @@ def _version_string(v): v = v[:-1] return ".".join([str(n) for n in v]) + suffix +def _have_same_length(*lists): + if not lists: + fail("expected at least one list") + return len({len(l): None for l in lists}) == 1 + def go_register_toolchains(version = None, nogo = None, go_version = None, experiments = None): """See /go/toolchains.rst#go-register-toolchains for full documentation.""" if not version: