diff --git a/.bazelversion b/.bazelversion index 6abaeb2..56b6be4 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -6.2.0 +8.3.1 diff --git a/BUILD.bazel b/BUILD.bazel index ec32117..1c8ac0a 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,4 +1,4 @@ -load("@bazel_gazelle//:def.bzl", "gazelle") +load("@gazelle//:def.bzl", "gazelle") # gazelle:exclude _tools # gazelle:exclude external diff --git a/HOWTO.md b/HOWTO.md index e8a3d49..fbe0ce4 100644 --- a/HOWTO.md +++ b/HOWTO.md @@ -8,15 +8,14 @@ Requirements: * `make`. * `tar`. * `unzip`. +* `bazel` (ideally `bazelisk` installed as `bazel`). -This repository uses [`bazelisk`](https://github.com/bazelbuild/bazelisk) to install and run Bazel. In other words, you don't need to install it yourself. `bazelisk` is invoked via a script called `bazel` in the root of the repository. - -To run Bazel for building and testing +To run Bazel for building and testing: ```shell # Assuming the root of the repository is the working directory. -$ ./bazel build //... -$ ./bazel test //... +$ bazel build //... +$ bazel test //... ``` ## Updating Go dependencies @@ -28,7 +27,7 @@ $ go get -u -t ./... # updates direct dependencies $ go get -u -t -tags=tools ./... # updates direct tool dependencies, see tools.go in the root of the repository $ go mod tidy # clean up go.mod and go.sum $ make generate # regenerate code -$ make fix # update repositories.bzl, BUILD files, etc +$ make fix # update MODULE.bazel, BUILD files, etc $ make fix # possibly needed due to non-hermetic code formatters ``` diff --git a/MODULE.bazel b/MODULE.bazel new file mode 100644 index 0000000..6a30d62 --- /dev/null +++ b/MODULE.bazel @@ -0,0 +1,114 @@ +module( + name = "code", + version = "0.1.0", +) + +# -- bazel_dep definitions -- # + +bazel_dep(name = "gazelle", version = "0.45.0") +bazel_dep(name = "rules_cc", version = "0.2.3") +bazel_dep(name = "rules_go", version = "0.57.0") +bazel_dep(name = "toolchains_llvm", version = "1.5.0") +bazel_dep(name = "rules_oci", version = "2.2.6") + +# NOTE from the Bzlmod migration: +# For the dependencies below, a higher version was used compared to what was in +# WORKSPACE. The reason is that the WORKSPACE versions were often arbitrary +# commit hashes and I couldn't be arsed to do overrides, and figured that these +# dependencies had stable enough APIs that I can probably live with a later +# version too. +bazel_dep(name = "abseil-cpp", version = "20250814.0") +bazel_dep(name = "google_benchmark", version = "1.9.4") +bazel_dep(name = "googletest", version = "1.17.0") +bazel_dep(name = "re2", version = "2025-08-12") + +bazel_dep(name = "hedron_compile_commands") +git_override( + module_name = "hedron_compile_commands", + commit = "abb61a688167623088f8768cc9264798df6a9d10", + remote = "https://github.com/hedronvision/bazel-compile-commands-extractor.git", +) + +# For some completely incomprehensible reason, there appears to be a dependency version problem in the combination of +# - the `github.com/docker/docker` Go module +# - the `re2` Bazel module +# - the `rules_cc` Bazel module +# - the `abseil-cpp` Bazel module +# that causes build errors for me. They look like this: +# +# $ bazel build //... +# ERROR: /home/saser/.cache/bazel/_bazel_saser/06ad534583e887506ca6aa175f8ed7b5/external/abseil-cpp+/absl/utility/BUILD.bazel: no such target '@@abseil-cpp+//absl/utility:if_constexpr': target 'if_constexpr' not declared in package 'absl/utility' defined by /home/saser/.cache/bazel/_bazel_saser/06ad534583e887506ca6aa175f8ed7b5/external/abseil-cpp+/absl/utility/BUILD.bazel +# ERROR: /home/saser/.cache/bazel/_bazel_saser/06ad534583e887506ca6aa175f8ed7b5/external/protobuf+/src/google/protobuf/BUILD.bazel:483:11: no such target '@@abseil-cpp+//absl/utility:if_constexpr': target 'if_constexpr' not declared in package 'absl/utility' defined by /home/saser/.cache/bazel/_bazel_saser/06ad534583e887506ca6aa175f8ed7b5/external/abseil-cpp+/absl/utility/BUILD.bazel and referenced by '@@protobuf+//src/google/protobuf:protobuf_lite' +# ERROR: Analysis of target '//docker/dockertest:dockertest' failed; build aborted: Analysis failed +# INFO: Elapsed time: 0.734s, Critical Path: 0.00s +# INFO: 1 process: 1 internal. +# ERROR: Build did NOT complete successfully +# +# And somehow, bumping the version of Protobuf (it resolves to 29.0 otherwise) +# fixes this problem. I don't know why, but I'm keeping it here until further +# notice. I might start relying on it anyway to run `protoc`, who knows. +bazel_dep(name = "protobuf", version = "32.0") + +# NOTE: there was a dependency on bazel_skylib but I dropped it because I +# couldn't find any references to it in this repo... can't remember why I added +# it either, maybe to fix some transitive dependency? + +# -- use_repo_rule statements -- # + +# -- repo definitions -- # + +llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm") +llvm.toolchain( + llvm_version = "15.0.6", +) +use_repo(llvm, "llvm_toolchain") + +register_toolchains("@llvm_toolchain//:all") + +go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk") +go_sdk.from_file(go_mod = "//:go.mod") + +go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps") +go_deps.from_file(go_mod = "//:go.mod") + +# See the README file located next to the patch file for an explanation of what +# it does. +go_deps.module_override( + patch_strip = 1, + patches = ["//patches/com_github_docker_cli:01-fix-broken-embeds.patch"], + path = "github.com/docker/cli", +) + +# All *direct* Go dependencies of the module have to be listed explicitly. +use_repo(go_deps, "cc_mvdan_gofumpt", "com_github_bazelbuild_buildtools", "com_github_cenkalti_backoff_v4", "com_github_google_go_cmp", "com_github_google_uuid", "com_github_jackc_pgerrcode", "com_github_jackc_pgx_v5", "com_github_jonboulle_clockwork", "com_github_masterminds_squirrel", "com_github_ory_dockertest_v3", "com_github_stretchr_testify", "io_k8s_klog_v2", "org_golang_google_grpc", "org_golang_google_grpc_cmd_protoc_gen_go_grpc", "org_golang_google_protobuf") + +oci = use_extension("@rules_oci//oci:extensions.bzl", "oci") +oci.pull( + name = "distroless_base", + digest = "sha256:d605e138bb398428779e5ab490a6bbeeabfd2551bd919578b1044718e5c30798", + image = "gcr.io/distroless/base", + platforms = ["linux/amd64"], +) +oci.pull( + name = "hello_world", + digest = "sha256:a0dfb02aac212703bfcb339d77d47ec32c8706ff250850ecc0e19c8737b18567", + image = "hello-world", + platforms = ["linux/amd64"], +) +oci.pull( + name = "nginx", + # 'latest' as of 2025-09-13. + digest = "sha256:d5f28ef21aabddd098f3dbc21fe5b7a7d7a184720bc07da0b6c9b9820e97f25e", + image = "nginx", + platforms = ["linux/amd64"], +) +oci.pull( + name = "postgres", + # 'latest' as of 2025-09-13. + digest = "sha256:feff5b24fedd610975a1f5e743c51a4b360437f4dc3a11acf740dcd708f413f6", + image = "postgres", + platforms = ["linux/amd64"], +) + +# For each oci.pull call, repeat the "name" here to expose them as dependencies. +use_repo(oci, "distroless_base", "distroless_base_linux_amd64", "hello_world", "hello_world_linux_amd64", "nginx", "nginx_linux_amd64", "postgres", "postgres_linux_amd64") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock new file mode 100644 index 0000000..9234680 --- /dev/null +++ b/MODULE.bazel.lock @@ -0,0 +1,1211 @@ +{ + "lockFileVersion": 18, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16", + "https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1", + "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215", + "https://bcr.bazel.build/modules/abseil-cpp/20250814.0/MODULE.bazel": "c43c16ca2c432566cdb78913964497259903ebe8fb7d9b57b38e9f1425b427b8", + "https://bcr.bazel.build/modules/abseil-cpp/20250814.0/source.json": "b88bff599ceaf0f56c264c749b1606f8485cec3b8c38ba30f88a4df9af142861", + "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896", + "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85", + "https://bcr.bazel.build/modules/apple_support/1.22.1/MODULE.bazel": "90bd1a660590f3ceffbdf524e37483094b29352d85317060b2327fff8f3f4458", + "https://bcr.bazel.build/modules/apple_support/1.22.1/source.json": "2bc34da8d0ebc4c4132c8b26db766ca1b86bbcf26dea94b94aa1cd73e2623aeb", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.2/MODULE.bazel": "780d1a6522b28f5edb7ea09630748720721dfe27690d65a2d33aa7509de77e07", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.2/source.json": "a9ee2898e86eb8106e67b2adcd63de788cd922dd82f90f6775f13b0bf2248d75", + "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a", + "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/source.json": "b07e17f067fe4f69f90b03b36ef1e08fe0d1f3cac254c1241a1818773e3423bc", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/source.json": "7ebaefba0b03efe59cac88ed5bbc67bcf59a3eff33af937345ede2a38b2d368a", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gazelle/0.32.0/MODULE.bazel": "b499f58a5d0d3537f3cf5b76d8ada18242f64ec474d8391247438bf04f58c7b8", + "https://bcr.bazel.build/modules/gazelle/0.33.0/MODULE.bazel": "a13a0f279b462b784fb8dd52a4074526c4a2afe70e114c7d09066097a46b3350", + "https://bcr.bazel.build/modules/gazelle/0.34.0/MODULE.bazel": "abdd8ce4d70978933209db92e436deb3a8b737859e9354fb5fd11fb5c2004c8a", + "https://bcr.bazel.build/modules/gazelle/0.36.0/MODULE.bazel": "e375d5d6e9a6ca59b0cb38b0540bc9a05b6aa926d322f2de268ad267a2ee74c0", + "https://bcr.bazel.build/modules/gazelle/0.45.0/MODULE.bazel": "ecd19ebe9f8e024e1ccffb6d997cc893a974bcc581f1ae08f386bdd448b10687", + "https://bcr.bazel.build/modules/gazelle/0.45.0/source.json": "111d182facc5f5e80f0b823d5f077b74128f40c3fd2eccc89a06f34191bd3392", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/google_benchmark/1.9.4/MODULE.bazel": "3bab7c17c10580f87b647478a72a05621f88abc275afb97b578c828f56e59d45", + "https://bcr.bazel.build/modules/google_benchmark/1.9.4/source.json": "8e0036f76a5c2aa9c16ca0da57d8065cff69edeed58f1f85584c588c0ef723a5", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108", + "https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46", + "https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/source.json": "a04756d367a2126c3541682864ecec52f92cdee80a35735a3cb249ce015ca000", + "https://bcr.bazel.build/modules/libpfm/4.11.0.bcr.1/MODULE.bazel": "e5362dadc90aab6724c83a2cc1e67cbed9c89a05d97fb1f90053c8deb1e445c8", + "https://bcr.bazel.build/modules/libpfm/4.11.0.bcr.1/source.json": "0646414d9037f8aad148781dd760bec90b0b25ac12fda5e03f8aadbd6b9c61e6", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9", + "https://bcr.bazel.build/modules/package_metadata/0.0.5/MODULE.bazel": "ef4f9439e3270fdd6b9fd4dbc3d2f29d13888e44c529a1b243f7a31dfbc2e8e4", + "https://bcr.bazel.build/modules/package_metadata/0.0.5/source.json": "2326db2f6592578177751c3e1f74786b79382cd6008834c9d01ec865b9126a85", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/23.1/MODULE.bazel": "88b393b3eb4101d18129e5db51847cd40a5517a53e81216144a8c32dfeeca52a", + "https://bcr.bazel.build/modules/protobuf/24.4/MODULE.bazel": "7bc7ce5f2abf36b3b7b7c8218d3acdebb9426aeb35c2257c96445756f970eb12", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2.bcr.1/MODULE.bazel": "52f4126f63a2f0bbf36b99c2a87648f08467a4eaf92ba726bc7d6a500bbf770c", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.2/MODULE.bazel": "532ffe5f2186b69fdde039efe6df13ba726ff338c6bc82275ad433013fa10573", + "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/protobuf/32.0/MODULE.bazel": "0741cf24f8e1185286578069060e905ed67d68eef5990bfa3dea3fc1afba14c7", + "https://bcr.bazel.build/modules/protobuf/32.0/source.json": "1e278267d3642ab361dc460cc1f2d8e607e8292b9b3f799a47181a3acf4f3294", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34", + "https://bcr.bazel.build/modules/pybind11_bazel/2.13.6/MODULE.bazel": "2d746fda559464b253b2b2e6073cb51643a2ac79009ca02100ebbc44b4548656", + "https://bcr.bazel.build/modules/pybind11_bazel/2.13.6/source.json": "6aa0703de8efb20cc897bbdbeb928582ee7beaf278bcd001ac253e1605bddfae", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a", + "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa", + "https://bcr.bazel.build/modules/re2/2025-08-12/MODULE.bazel": "79bf27a1b8b6834cea391794f2db0180b7b53203795497e261ccd89fe695c74f", + "https://bcr.bazel.build/modules/re2/2025-08-12/source.json": "45381dfd178b2bb06e981e56f84758d09e143becc7115aaf65c93f9232a8eec9", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a", + "https://bcr.bazel.build/modules/rules_apple/3.16.0/source.json": "d8b5fe461272018cc07cfafce11fe369c7525330804c37eec5a82f84cd475366", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.4/MODULE.bazel": "bb03a452a7527ac25a7518fb86a946ef63df860b9657d8323a0c50f8504fb0b9", + "https://bcr.bazel.build/modules/rules_cc/0.2.0/MODULE.bazel": "b5c17f90458caae90d2ccd114c81970062946f49f355610ed89bebf954f5783c", + "https://bcr.bazel.build/modules/rules_cc/0.2.2/MODULE.bazel": "a0656c5a8ff7f76bb1319ebf301bab9d94da5b48894cac25a14ed115f9dd0884", + "https://bcr.bazel.build/modules/rules_cc/0.2.3/MODULE.bazel": "07d7f5a97bcf2fc97bcefbee82abf4372cb07451949c81f575de94b51ec4852a", + "https://bcr.bazel.build/modules/rules_cc/0.2.3/source.json": "87a6bd4e5b5f428fc7ecd4d964ef0a9e0e7630ffb02faae8f0a4e8a658e3edee", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8", + "https://bcr.bazel.build/modules/rules_go/0.42.0/MODULE.bazel": "8cfa875b9aa8c6fce2b2e5925e73c1388173ea3c32a0db4d2b4804b453c14270", + "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd", + "https://bcr.bazel.build/modules/rules_go/0.53.0/MODULE.bazel": "a4ed760d3ac0dbc0d7b967631a9a3fd9100d28f7d9fcf214b4df87d4bfff5f9a", + "https://bcr.bazel.build/modules/rules_go/0.57.0/MODULE.bazel": "bee44028b527cd6d1b7699a2c78714bba237b40ee21f90a83b472c94bc53159d", + "https://bcr.bazel.build/modules/rules_go/0.57.0/source.json": "a782b756d87c68a223a48848eda4b0dac1c5fd1d925d648d7598b68aa1fb6d6d", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.1.0/MODULE.bazel": "30d9135a2b6561c761bd67bd4990da591e6bdc128790ce3e7afd6a3558b2fb64", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.12.0/MODULE.bazel": "8e6590b961f2defdfc2811c089c75716cb2f06c8a4edeb9a8d85eaa64ee2a761", + "https://bcr.bazel.build/modules/rules_java/8.12.0/source.json": "cbd5d55d9d38d4008a7d00bee5b5a5a4b6031fcd4a56515c9accbcd42c7be2ba", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/source.json": "5426f412d0a7fc6b611643376c7e4a82dec991491b9ce5cb1cfdd25fe2e92be4", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_oci/2.2.6/MODULE.bazel": "2ba6ddd679269e00aeffe9ca04faa2d0ca4129650982c9246d0d459fe2da47d9", + "https://bcr.bazel.build/modules/rules_oci/2.2.6/source.json": "94e7decb8f95d9465b0bbea71c65064cd16083be1350c7468f131818641dc4a5", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", + "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937", + "https://bcr.bazel.build/modules/rules_python/0.34.0/MODULE.bazel": "1d623d026e075b78c9fde483a889cda7996f5da4f36dffb24c246ab30f06513a", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6", + "https://bcr.bazel.build/modules/rules_python/1.5.1/MODULE.bazel": "acfe65880942d44a69129d4c5c3122d57baaf3edf58ae5a6bd4edea114906bf5", + "https://bcr.bazel.build/modules/rules_python/1.5.1/source.json": "aa903e1bcbdfa1580f2b8e2d55100b7c18bc92d779ebb507fec896c75635f7bd", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b", + "https://bcr.bazel.build/modules/rules_shell/0.3.0/source.json": "c55ed591aa5009401ddf80ded9762ac32c358d2517ee7820be981e2de9756cf3", + "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca", + "https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046", + "https://bcr.bazel.build/modules/rules_swift/2.1.1/source.json": "40fc69dfaac64deddbb75bd99cdac55f4427d9ca0afbe408576a65428427a186", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/source.json": "32bd87e5f4d7acc57c5b2ff7c325ae3061d5e242c0c4c214ae87e0f1c13e54cb", + "https://bcr.bazel.build/modules/toolchains_llvm/1.5.0/MODULE.bazel": "31c7077ef64bafdf2dfb46d4bca321b4e8f143b00ac68b2c31f5ff0c91044b60", + "https://bcr.bazel.build/modules/toolchains_llvm/1.5.0/source.json": "aecbd0eea924f27bf8d33d3823f1427e1eddc826ff96425e4304b0d7ad6d7ffa", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/upb/0.0.0-20230516-61a97ef/MODULE.bazel": "c0df5e35ad55e264160417fd0875932ee3c9dda63d9fccace35ac62f45e1b6f9", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@apple_support+//crosstool:setup.bzl%apple_cc_configure_extension": { + "general": { + "bzlTransitiveDigest": "mmhYNTDXSgOxxt10eW/y1OjZejj+dhGDm+f1IMfBlzE=", + "usagesDigest": "ub8r+m3BGCamcByx5L10qjTKg7vVqcZtr8MdM+DPR5Y=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "local_config_apple_cc_toolchains": { + "repoRuleId": "@@apple_support+//crosstool:setup.bzl%_apple_cc_autoconf_toolchains", + "attributes": {} + }, + "local_config_apple_cc": { + "repoRuleId": "@@apple_support+//crosstool:setup.bzl%_apple_cc_autoconf", + "attributes": {} + } + }, + "recordedRepoMappingEntries": [ + [ + "apple_support+", + "bazel_tools", + "bazel_tools" + ], + [ + "bazel_tools", + "rules_cc", + "rules_cc+" + ] + ] + } + }, + "@@aspect_bazel_lib+//lib:extensions.bzl%toolchains": { + "general": { + "bzlTransitiveDigest": "9sh0AXd3rloN/x4fVAaU4gFXbAdwSQlHBqwEzYXEVx0=", + "usagesDigest": "5TJaKAC60id12IHd5g6r5y1jPXDuQaIdf9HzY4XIHWU=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "copy_directory_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_directory_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_directory_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "copy_directory_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "copy_directory_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_directory_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_directory_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_directory" + } + }, + "copy_to_directory_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_to_directory_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_to_directory_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "copy_to_directory_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "copy_to_directory_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_to_directory_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_to_directory_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_to_directory" + } + }, + "jq_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "1.7" + } + }, + "jq_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "1.7" + } + }, + "jq_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "1.7" + } + }, + "jq_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "1.7" + } + }, + "jq_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "1.7" + } + }, + "jq": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_host_alias_repo", + "attributes": {} + }, + "jq_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_toolchains_repo", + "attributes": { + "user_repository_name": "jq" + } + }, + "yq_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "4.25.2" + } + }, + "yq_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "4.25.2" + } + }, + "yq_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "4.25.2" + } + }, + "yq_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "4.25.2" + } + }, + "yq_linux_s390x": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_s390x", + "version": "4.25.2" + } + }, + "yq_linux_ppc64le": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_ppc64le", + "version": "4.25.2" + } + }, + "yq_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "4.25.2" + } + }, + "yq": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_host_alias_repo", + "attributes": {} + }, + "yq_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_toolchains_repo", + "attributes": { + "user_repository_name": "yq" + } + }, + "coreutils_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "0.0.23" + } + }, + "coreutils_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "0.0.23" + } + }, + "coreutils_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "0.0.23" + } + }, + "coreutils_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "0.0.23" + } + }, + "coreutils_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "0.0.23" + } + }, + "coreutils_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_toolchains_repo", + "attributes": { + "user_repository_name": "coreutils" + } + }, + "bsd_tar_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "bsd_tar_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "bsd_tar_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "bsd_tar_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "bsd_tar_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%tar_toolchains_repo", + "attributes": { + "user_repository_name": "bsd_tar" + } + }, + "zstd_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:zstd_toolchain.bzl%zstd_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "zstd_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:zstd_toolchain.bzl%zstd_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "zstd_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:zstd_toolchain.bzl%zstd_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "zstd_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:zstd_toolchain.bzl%zstd_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "zstd_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:zstd_toolchain.bzl%zstd_toolchains_repo", + "attributes": { + "user_repository_name": "zstd" + } + }, + "expand_template_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "expand_template_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "expand_template_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "expand_template_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "expand_template_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "expand_template_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "expand_template_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_toolchains_repo", + "attributes": { + "user_repository_name": "expand_template" + } + }, + "bats_support": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "7815237aafeb42ddcc1b8c698fc5808026d33317d8701d5ec2396e9634e2918f", + "urls": [ + "https://github.com/bats-core/bats-support/archive/v0.3.0.tar.gz" + ], + "strip_prefix": "bats-support-0.3.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"support\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-support\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "bats_assert": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "98ca3b685f8b8993e48ec057565e6e2abcc541034ed5b0e81f191505682037fd", + "urls": [ + "https://github.com/bats-core/bats-assert/archive/v2.1.0.tar.gz" + ], + "strip_prefix": "bats-assert-2.1.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"assert\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-assert\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "bats_file": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "9b69043241f3af1c2d251f89b4fcafa5df3f05e97b89db18d7c9bdf5731bb27a", + "urls": [ + "https://github.com/bats-core/bats-file/archive/v0.4.0.tar.gz" + ], + "strip_prefix": "bats-file-0.4.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"file\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-file\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "bats_toolchains": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "a1a9f7875aa4b6a9480ca384d5865f1ccf1b0b1faead6b47aa47d79709a5c5fd", + "urls": [ + "https://github.com/bats-core/bats-core/archive/v1.10.0.tar.gz" + ], + "strip_prefix": "bats-core-1.10.0", + "build_file_content": "load(\"@local_config_platform//:constraints.bzl\", \"HOST_CONSTRAINTS\")\nload(\"@aspect_bazel_lib//lib/private:bats_toolchain.bzl\", \"bats_toolchain\")\nload(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"core\",\n hardlink = \"on\",\n srcs = glob([\n \"lib/**\",\n \"libexec/**\"\n ]) + [\"bin/bats\"],\n out = \"bats-core\",\n)\n\nbats_toolchain(\n name = \"toolchain\",\n core = \":core\",\n libraries = [\"@bats_support//:support\", \"@bats_assert//:assert\", \"@bats_file//:file\"]\n)\n\ntoolchain(\n name = \"bats_toolchain\",\n exec_compatible_with = HOST_CONSTRAINTS,\n toolchain = \":toolchain\",\n toolchain_type = \"@aspect_bazel_lib//lib:bats_toolchain_type\",\n)\n" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ], + [ + "aspect_bazel_lib+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@hedron_compile_commands+//:workspace_setup.bzl%hedron_compile_commands_extension": { + "general": { + "bzlTransitiveDigest": "ETG38zSsY5oO3BJOxG49tKRtht7UfAoeny++EJtBjkw=", + "usagesDigest": "CbJ2MjubH36j9xaONhhASfhodhpi5fzvuyg/IW2f7Ds=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": {}, + "recordedRepoMappingEntries": [ + [ + "hedron_compile_commands+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@hedron_compile_commands+//:workspace_setup_transitive.bzl%hedron_compile_commands_extension": { + "general": { + "bzlTransitiveDigest": "IfDf0vEa2jjQ11RNpUM0u4xftPXIs+pyM8IMVkRqVMk=", + "usagesDigest": "yxZQbFglJyjpn7JZ9mhIc3EhLzZivlbs6wiHWOKJ/UA=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": {}, + "recordedRepoMappingEntries": [] + } + }, + "@@hedron_compile_commands+//:workspace_setup_transitive_transitive.bzl%hedron_compile_commands_extension": { + "general": { + "bzlTransitiveDigest": "1p58k3o2Jgjt/pBE7cb8WmmkplrSguIKma/h32x7X10=", + "usagesDigest": "GkOuy/k8wz0dbKMeEJFKEJB3CWkMZt3DYcPgj4lALkI=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": {}, + "recordedRepoMappingEntries": [] + } + }, + "@@hedron_compile_commands+//:workspace_setup_transitive_transitive_transitive.bzl%hedron_compile_commands_extension": { + "general": { + "bzlTransitiveDigest": "arNWX4EleUjJxqkM5nCRTj+ce05Zz1gSdGH1DCKOoLs=", + "usagesDigest": "WZExKK/BI4lqpUZfPpv4YARDE1Y7igQB+wYGKvNoCKs=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": {}, + "recordedRepoMappingEntries": [] + } + }, + "@@pybind11_bazel+//:internal_configure.bzl%internal_configure_extension": { + "general": { + "bzlTransitiveDigest": "CkoYCqOgC/Xs59gJ1r3BNo2zDkwqdfWlBeZr5f004os=", + "usagesDigest": "tVQNvLoXMWAbiK39am3yovKGpwINdftfn7RpDyN+JZc=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "pybind11": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file": "@@pybind11_bazel+//:pybind11-BUILD.bazel", + "strip_prefix": "pybind11-2.13.6", + "url": "https://github.com/pybind/pybind11/archive/refs/tags/v2.13.6.tar.gz", + "integrity": "sha256-4Iy4f0dz2pf6e18DXeh2OrxlbYfVdz5i9toFh9Hw7CA=" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "pybind11_bazel+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "hUTp2w+RUVdL7ma5esCXZJAFnX7vLbVfLd7FwnQI6bU=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_oci+//oci:extensions.bzl%oci": { + "general": { + "bzlTransitiveDigest": "cxV4X2zNlwdVp+Fypb29N+SXzWs4M4ZSqFlvUuoT7Mg=", + "usagesDigest": "J9j8fgB7x6CXIcapAkpS81cbAFotBTONseznN1r6/Co=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "distroless_base_linux_amd64": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_pull", + "attributes": { + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "gcr.io", + "repository": "distroless/base", + "identifier": "sha256:d605e138bb398428779e5ab490a6bbeeabfd2551bd919578b1044718e5c30798", + "platform": "linux/amd64", + "target_name": "distroless_base_linux_amd64", + "bazel_tags": [] + } + }, + "distroless_base": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_alias", + "attributes": { + "target_name": "distroless_base", + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "gcr.io", + "repository": "distroless/base", + "identifier": "sha256:d605e138bb398428779e5ab490a6bbeeabfd2551bd919578b1044718e5c30798", + "platforms": { + "@@platforms//cpu:x86_64": "@distroless_base_linux_amd64" + }, + "bzlmod_repository": "distroless_base", + "reproducible": true + } + }, + "hello_world_linux_amd64": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_pull", + "attributes": { + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "index.docker.io", + "repository": "library/hello-world", + "identifier": "sha256:a0dfb02aac212703bfcb339d77d47ec32c8706ff250850ecc0e19c8737b18567", + "platform": "linux/amd64", + "target_name": "hello_world_linux_amd64", + "bazel_tags": [] + } + }, + "hello_world": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_alias", + "attributes": { + "target_name": "hello_world", + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "index.docker.io", + "repository": "library/hello-world", + "identifier": "sha256:a0dfb02aac212703bfcb339d77d47ec32c8706ff250850ecc0e19c8737b18567", + "platforms": { + "@@platforms//cpu:x86_64": "@hello_world_linux_amd64" + }, + "bzlmod_repository": "hello_world", + "reproducible": true + } + }, + "nginx_linux_amd64": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_pull", + "attributes": { + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "index.docker.io", + "repository": "library/nginx", + "identifier": "sha256:d5f28ef21aabddd098f3dbc21fe5b7a7d7a184720bc07da0b6c9b9820e97f25e", + "platform": "linux/amd64", + "target_name": "nginx_linux_amd64", + "bazel_tags": [] + } + }, + "nginx": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_alias", + "attributes": { + "target_name": "nginx", + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "index.docker.io", + "repository": "library/nginx", + "identifier": "sha256:d5f28ef21aabddd098f3dbc21fe5b7a7d7a184720bc07da0b6c9b9820e97f25e", + "platforms": { + "@@platforms//cpu:x86_64": "@nginx_linux_amd64" + }, + "bzlmod_repository": "nginx", + "reproducible": true + } + }, + "postgres_linux_amd64": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_pull", + "attributes": { + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "index.docker.io", + "repository": "library/postgres", + "identifier": "sha256:feff5b24fedd610975a1f5e743c51a4b360437f4dc3a11acf740dcd708f413f6", + "platform": "linux/amd64", + "target_name": "postgres_linux_amd64", + "bazel_tags": [] + } + }, + "postgres": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_alias", + "attributes": { + "target_name": "postgres", + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "index.docker.io", + "repository": "library/postgres", + "identifier": "sha256:feff5b24fedd610975a1f5e743c51a4b360437f4dc3a11acf740dcd708f413f6", + "platforms": { + "@@platforms//cpu:x86_64": "@postgres_linux_amd64" + }, + "bzlmod_repository": "postgres", + "reproducible": true + } + }, + "oci_crane_darwin_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "darwin_amd64", + "crane_version": "v0.18.0" + } + }, + "oci_crane_darwin_arm64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "darwin_arm64", + "crane_version": "v0.18.0" + } + }, + "oci_crane_linux_arm64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "linux_arm64", + "crane_version": "v0.18.0" + } + }, + "oci_crane_linux_armv6": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "linux_armv6", + "crane_version": "v0.18.0" + } + }, + "oci_crane_linux_i386": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "linux_i386", + "crane_version": "v0.18.0" + } + }, + "oci_crane_linux_s390x": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "linux_s390x", + "crane_version": "v0.18.0" + } + }, + "oci_crane_linux_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "linux_amd64", + "crane_version": "v0.18.0" + } + }, + "oci_crane_windows_armv6": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "windows_armv6", + "crane_version": "v0.18.0" + } + }, + "oci_crane_windows_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "windows_amd64", + "crane_version": "v0.18.0" + } + }, + "oci_crane_toolchains": { + "repoRuleId": "@@rules_oci+//oci/private:toolchains_repo.bzl%toolchains_repo", + "attributes": { + "toolchain_type": "@rules_oci//oci:crane_toolchain_type", + "toolchain": "@oci_crane_{platform}//:crane_toolchain" + } + }, + "oci_regctl_darwin_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "darwin_amd64" + } + }, + "oci_regctl_darwin_arm64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "darwin_arm64" + } + }, + "oci_regctl_linux_arm64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "linux_arm64" + } + }, + "oci_regctl_linux_s390x": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "linux_s390x" + } + }, + "oci_regctl_linux_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "linux_amd64" + } + }, + "oci_regctl_windows_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "windows_amd64" + } + }, + "oci_regctl_toolchains": { + "repoRuleId": "@@rules_oci+//oci/private:toolchains_repo.bzl%toolchains_repo", + "attributes": { + "toolchain_type": "@rules_oci//oci:regctl_toolchain_type", + "toolchain": "@oci_regctl_{platform}//:regctl_toolchain" + } + } + }, + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "distroless_base", + "distroless_base_linux_amd64", + "hello_world", + "hello_world_linux_amd64", + "nginx", + "nginx_linux_amd64", + "postgres", + "postgres_linux_amd64" + ], + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ], + [ + "bazel_features+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_oci+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ], + [ + "rules_oci+", + "bazel_features", + "bazel_features+" + ], + [ + "rules_oci+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "bGHlxez0Lkvq2VwrlfCLraKHiJIRHSIJb432X2+pky8=", + "usagesDigest": "WYhzIw9khRBy34H1GxV5+fI1yi07O90NmCXosPUdHWQ=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + }, + "@@toolchains_llvm+//toolchain/extensions:llvm.bzl%llvm": { + "general": { + "bzlTransitiveDigest": "6J0Uis1p3AmdHq6FLnJuEL6+ZyP37oFSHPZmrf6oHQw=", + "usagesDigest": "xxYdE0STSIaIAWCGG4UFXKtHvOUmsmKVlkcUI4vF5Cc=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "llvm_toolchain_llvm": { + "repoRuleId": "@@toolchains_llvm+//toolchain:rules.bzl%llvm", + "attributes": { + "alternative_llvm_sources": [], + "auth_patterns": {}, + "distribution": "auto", + "exec_arch": "", + "exec_os": "", + "extra_llvm_distributions": {}, + "libclang_rt": {}, + "llvm_mirror": "", + "llvm_version": "15.0.6", + "llvm_versions": {}, + "netrc": "", + "sha256": {}, + "strip_prefix": {}, + "urls": {} + } + }, + "llvm_toolchain": { + "repoRuleId": "@@toolchains_llvm+//toolchain:rules.bzl%toolchain", + "attributes": { + "absolute_paths": false, + "archive_flags": {}, + "compile_flags": {}, + "conly_flags": {}, + "coverage_compile_flags": {}, + "coverage_link_flags": {}, + "cxx_builtin_include_directories": {}, + "cxx_flags": {}, + "cxx_standard": {}, + "dbg_compile_flags": {}, + "exec_arch": "", + "exec_os": "", + "extra_exec_compatible_with": {}, + "extra_target_compatible_with": {}, + "fastbuild_compile_flags": {}, + "link_flags": {}, + "link_libs": {}, + "llvm_versions": { + "": "15.0.6" + }, + "opt_compile_flags": {}, + "opt_link_flags": {}, + "stdlib": {}, + "target_settings": {}, + "unfiltered_compile_flags": {}, + "toolchain_roots": {}, + "sysroot": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "toolchains_llvm+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "toolchains_llvm+", + "bazel_tools", + "bazel_tools" + ], + [ + "toolchains_llvm+", + "toolchains_llvm", + "toolchains_llvm+" + ] + ] + } + } + } +} diff --git a/Makefile b/Makefile index 5f341f8..27807ca 100644 --- a/Makefile +++ b/Makefile @@ -8,9 +8,9 @@ include tools.mk # worth the tradeoff. go_module := go.saser.se -build_files := $(shell git ls-files -- 'WORKSPACE' '**/BUILD.bazel' '*.bzl') +build_files := $(shell git ls-files -- 'MODULE.bazel' '**/BUILD.bazel' '*.bzl') cc_files := $(shell git ls-files -- '*.cc' '*.h') -go_files := $(shell git ls-files -- '*.go') +go_files := $(shell git ls-files -- '*.go' | xargs grep -L '^// Code generated .* DO NOT EDIT\.$$') proto_files := $(shell git ls-files -- '*.proto') .PHONY: generate @@ -34,9 +34,11 @@ protoc: .PHONY: fix fix: \ + fix-bazel-mod-tidy \ fix-buildifier \ fix-clang-format \ - fix-go-buildfiles \ + fix-gazelle \ + fix-go-mod-tidy \ fix-gofumpt .PHONY: fix-clang-format @@ -72,8 +74,14 @@ fix-gofumpt: -w \ $(go_files) -.PHONY: fix-go-buildfiles -fix-go-buildfiles: $(go) - $(go) mod tidy -v - ./bazel run //:gazelle_update_repos - ./bazel run //:gazelle +.PHONY: fix-go-mod-tidy +fix-go-mod-tidy: + bazel run @rules_go//go -- mod tidy -v + +.PHONY: fix-bazel-mod-tidy +fix-bazel-mod-tidy: + bazel mod tidy + +.PHONY: fix-gazelle +fix-gazelle: + bazel run //:gazelle diff --git a/WORKSPACE b/WORKSPACE deleted file mode 100644 index 42a3833..0000000 --- a/WORKSPACE +++ /dev/null @@ -1,174 +0,0 @@ -workspace(name = "code") - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -RULES_GO_TAG = "v0.39.1" - -http_archive( - name = "io_bazel_rules_go", - sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/{tag}/rules_go-{tag}.zip".format(tag = RULES_GO_TAG), - "https://github.com/bazelbuild/rules_go/releases/download/{tag}/rules_go-{tag}.zip".format(tag = RULES_GO_TAG), - ], -) - -GAZELLE_TAG = "v0.30.0" - -http_archive( - name = "bazel_gazelle", - sha256 = "727f3e4edd96ea20c29e8c2ca9e8d2af724d8c7778e7923a854b2c80952bc405", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/{tag}/bazel-gazelle-{tag}.tar.gz".format(tag = GAZELLE_TAG), - "https://github.com/bazelbuild/bazel-gazelle/releases/download/{tag}/bazel-gazelle-{tag}.tar.gz".format(tag = GAZELLE_TAG), - ], -) - -load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") -load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") -load("//:repositories.bzl", "go_repositories") - -# gazelle:repository_macro repositories.bzl%go_repositories -go_repositories() - -go_rules_dependencies() - -# This version number must be kept in sync with tools.mk. -go_register_toolchains(version = "1.20.2") - -gazelle_dependencies() - -http_archive( - name = "io_bazel_rules_docker", - sha256 = "b1e80761a8a8243d03ebca8845e9cc1ba6c82ce7c5179ce2b295cd36f7e394bf", - urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.25.0/rules_docker-v0.25.0.tar.gz"], -) - -load("@io_bazel_rules_docker//repositories:repositories.bzl", container_repositories = "repositories") - -container_repositories() - -load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps") - -container_deps() - -load( - "@io_bazel_rules_docker//go:image.bzl", - _go_image_repos = "repositories", -) - -_go_image_repos() - -load("@io_bazel_rules_docker//container:container.bzl", "container_pull") - -container_pull( - name = "nginx_image", - digest = "sha256:6b06964cdbbc517102ce5e0cef95152f3c6a7ef703e4057cb574539de91f72e6", - # tag = "1.25", - registry = "index.docker.io", - repository = "library/nginx", -) - -container_pull( - name = "postgres_image", - digest = "sha256:3691c00fc177519261bc07b06d0aa990bb17e1bfc31dd79662c9dbd432d2d48b", # tag "14.1" as of 2022-01-01 - # tag = "14.1", - registry = "index.docker.io", - repository = "library/postgres", -) - -container_pull( - name = "hello_world_image", - # tag = "linux", - digest = "sha256:f54a58bc1aac5ea1a25d796ae155dc228b3f0e11d046ae276b39c4bf2f13d8c4", # tag "linux" as of 2022-01-08 - registry = "index.docker.io", - repository = "library/hello-world", -) - -BAZEL_TOOLCHAIN_TAG = "0.8.2" - -BAZEL_TOOLCHAIN_SHA = "0fc3a2b0c9c929920f4bed8f2b446a8274cad41f5ee823fd3faa0d7641f20db0" - -http_archive( - name = "com_grail_bazel_toolchain", - canonical_id = BAZEL_TOOLCHAIN_TAG, - sha256 = BAZEL_TOOLCHAIN_SHA, - strip_prefix = "bazel-toolchain-{tag}".format(tag = BAZEL_TOOLCHAIN_TAG), - url = "https://github.com/grailbio/bazel-toolchain/archive/{tag}.tar.gz".format(tag = BAZEL_TOOLCHAIN_TAG), -) - -load("@com_grail_bazel_toolchain//toolchain:deps.bzl", "bazel_toolchain_dependencies") - -bazel_toolchain_dependencies() - -load("@com_grail_bazel_toolchain//toolchain:rules.bzl", "llvm_toolchain") - -llvm_toolchain( - name = "llvm_toolchain", - llvm_version = "15.0.6", -) - -load("@llvm_toolchain//:toolchains.bzl", "llvm_register_toolchains") - -llvm_register_toolchains() - -HEDRON_COMPILE_COMMANDS_COMMIT = "3dddf205a1f5cde20faf2444c1757abe0564ff4c" - -http_archive( - name = "hedron_compile_commands", - sha256 = "3cd0e49f0f4a6d406c1d74b53b7616f5e24f5fd319eafc1bf8eee6e14124d115", - strip_prefix = "bazel-compile-commands-extractor-{commit}".format(commit = HEDRON_COMPILE_COMMANDS_COMMIT), - url = "https://github.com/hedronvision/bazel-compile-commands-extractor/archive/{commit}.tar.gz".format(commit = HEDRON_COMPILE_COMMANDS_COMMIT), -) - -load("@hedron_compile_commands//:workspace_setup.bzl", "hedron_compile_commands_setup") - -hedron_compile_commands_setup() - -http_archive( - name = "rules_cc", - sha256 = "af6cc82d87db94585bceeda2561cb8a9d55ad435318ccb4ddfee18a43580fb5d", - strip_prefix = "rules_cc-0.0.4", - urls = ["https://github.com/bazelbuild/rules_cc/releases/download/0.0.4/rules_cc-0.0.4.tar.gz"], -) - -http_archive( - name = "com_google_googletest", - sha256 = "28744548b5c6dcd70b69dddba8ebb1c8623ace5dbe4e4457541f704290052957", - strip_prefix = "googletest-a16bfcfda1ea994c1abec23cca8f530953042dfa", - urls = ["https://github.com/google/googletest/archive/a16bfcfda1ea994c1abec23cca8f530953042dfa.zip"], -) - -http_archive( - name = "com_github_google_benchmark", - sha256 = "6430e4092653380d9dc4ccb45a1e2dc9259d581f4866dc0759713126056bc1d7", - strip_prefix = "benchmark-1.7.1", - urls = ["https://github.com/google/benchmark/archive/refs/tags/v1.7.1.tar.gz"], -) - -http_archive( - name = "com_google_absl", - sha256 = "8964b0abac57f94f4ddc3a1dcd8565e5fa5edd1620e326d931c1eabeb9267977", - strip_prefix = "abseil-cpp-4e5ff1559ca3bd7bb777a1c48106464cb656e041", - urls = ["https://github.com/abseil/abseil-cpp/archive/4e5ff1559ca3bd7bb777a1c48106464cb656e041.zip"], -) - -http_archive( - name = "bazel_skylib", - sha256 = "74d544d96f4a5bb630d465ca8bbcfe231e3594e5aae57e1edbf17a6eb3ca2506", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz", - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz", - ], -) - -load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") - -bazel_skylib_workspace() - -http_archive( - name = "com_googlesource_code_re2", - sha256 = "665b65b6668156db2b46dddd33405cd422bd611352c5052ab3dae6a5fbac5506", - strip_prefix = "re2-2022-12-01", - urls = ["https://github.com/google/re2/archive/refs/tags/2022-12-01.tar.gz"], -) diff --git a/adventofcode/cc/BUILD.bazel b/adventofcode/cc/BUILD.bazel index c8ad2fe..ede5d91 100644 --- a/adventofcode/cc/BUILD.bazel +++ b/adventofcode/cc/BUILD.bazel @@ -6,7 +6,7 @@ cc_library( name = "trim", srcs = ["trim.cc"], hdrs = ["trim.h"], - deps = ["@com_google_absl//absl/strings"], + deps = ["@abseil-cpp//absl/strings"], ) cc_test( @@ -14,6 +14,6 @@ cc_test( srcs = ["trim_test.cc"], deps = [ ":trim", - "@com_google_googletest//:gtest_main", + "@googletest//:gtest_main", ], ) diff --git a/adventofcode/cc/geometry/BUILD.bazel b/adventofcode/cc/geometry/BUILD.bazel index 77958e4..9909690 100644 --- a/adventofcode/cc/geometry/BUILD.bazel +++ b/adventofcode/cc/geometry/BUILD.bazel @@ -6,7 +6,7 @@ cc_library( name = "pos", srcs = ["pos.cc"], hdrs = ["pos.h"], - deps = ["@com_google_absl//absl/strings:str_format"], + deps = ["@abseil-cpp//absl/strings:str_format"], ) cc_test( @@ -14,8 +14,8 @@ cc_test( srcs = ["pos_test.cc"], deps = [ ":pos", - "@com_google_absl//absl/hash:hash_testing", - "@com_google_absl//absl/strings:str_format", - "@com_google_googletest//:gtest_main", + "@abseil-cpp//absl/hash:hash_testing", + "@abseil-cpp//absl/strings:str_format", + "@googletest//:gtest_main", ], ) diff --git a/adventofcode/cc/tools/build_defs.bzl b/adventofcode/cc/tools/build_defs.bzl index 420e0c0..764c90c 100644 --- a/adventofcode/cc/tools/build_defs.bzl +++ b/adventofcode/cc/tools/build_defs.bzl @@ -73,7 +73,7 @@ def cc_aoc_header( srcs = srcs, outs = outs, cmd = " ".join(cmd), - exec_tools = ["//adventofcode/cc/tools/generate_header"], + tools = ["//adventofcode/cc/tools/generate_header"], ) def cc_aoc_test( @@ -176,14 +176,14 @@ def cc_aoc_test( srcs = srcs, outs = outs, cmd = " ".join(cmd), - exec_tools = ["//adventofcode/cc/tools/generate_test"], + tools = ["//adventofcode/cc/tools/generate_test"], ) cc_test( name = name, deps = [library] + [ "//adventofcode/cc:trim", - "@com_google_googletest//:gtest_main", + "@googletest//:gtest_main", ], srcs = [output], ) @@ -280,17 +280,17 @@ def cc_aoc_benchmark( srcs = srcs, outs = outs, cmd = " ".join(cmd), - exec_tools = ["//adventofcode/cc/tools/generate_benchmark"], + tools = ["//adventofcode/cc/tools/generate_benchmark"], ) cc_binary( name = name, deps = [library] + [ "//adventofcode/cc:trim", - "@com_github_google_benchmark//:benchmark_main", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", + "@google_benchmark//:benchmark_main", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@abseil-cpp//absl/strings:str_format", ], srcs = [output], ) diff --git a/adventofcode/cc/tools/generate_benchmark/BUILD.bazel b/adventofcode/cc/tools/generate_benchmark/BUILD.bazel index fa07da2..d973dcb 100644 --- a/adventofcode/cc/tools/generate_benchmark/BUILD.bazel +++ b/adventofcode/cc/tools/generate_benchmark/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_binary", "go_library", "go_test") go_library( name = "generate_benchmark_lib", diff --git a/adventofcode/cc/tools/generate_header/BUILD.bazel b/adventofcode/cc/tools/generate_header/BUILD.bazel index bfa5198..705ba71 100644 --- a/adventofcode/cc/tools/generate_header/BUILD.bazel +++ b/adventofcode/cc/tools/generate_header/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_binary", "go_library", "go_test") go_library( name = "generate_header_lib", diff --git a/adventofcode/cc/tools/generate_test/BUILD.bazel b/adventofcode/cc/tools/generate_test/BUILD.bazel index 7d0fcfb..c7bded6 100644 --- a/adventofcode/cc/tools/generate_test/BUILD.bazel +++ b/adventofcode/cc/tools/generate_test/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_binary", "go_library", "go_test") go_library( name = "generate_test_lib", diff --git a/adventofcode/cc/year2022/BUILD.bazel b/adventofcode/cc/year2022/BUILD.bazel index 3a71e75..f7667f4 100644 --- a/adventofcode/cc/year2022/BUILD.bazel +++ b/adventofcode/cc/year2022/BUILD.bazel @@ -18,8 +18,8 @@ cc_library( srcs = ["day01.cc"], hdrs = ["day01.h"], deps = [ - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -52,8 +52,8 @@ cc_library( srcs = ["day02.cc"], hdrs = ["day02.h"], deps = [ - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -86,8 +86,8 @@ cc_library( srcs = ["day03.cc"], hdrs = ["day03.h"], deps = [ - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -120,10 +120,10 @@ cc_library( srcs = ["day04.cc"], hdrs = ["day04.h"], deps = [ - "@com_google_absl//absl/container:flat_hash_map", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", + "@abseil-cpp//absl/container:flat_hash_map", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@abseil-cpp//absl/strings:str_format", ], ) @@ -156,8 +156,8 @@ cc_library( srcs = ["day05.cc"], hdrs = ["day05.h"], deps = [ - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -190,8 +190,8 @@ cc_library( srcs = ["day06.cc"], hdrs = ["day06.h"], deps = [ - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -232,8 +232,8 @@ cc_library( srcs = ["day07.cc"], hdrs = ["day07.h"], deps = [ - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -266,8 +266,8 @@ cc_library( srcs = ["day08.cc"], hdrs = ["day08.h"], deps = [ - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -300,11 +300,11 @@ cc_library( srcs = ["day09.cc"], hdrs = ["day09.h"], deps = [ - "@com_google_absl//absl/container:flat_hash_set", - "@com_google_absl//absl/hash", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", + "@abseil-cpp//absl/container:flat_hash_set", + "@abseil-cpp//absl/hash", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@abseil-cpp//absl/strings:str_format", ], ) @@ -337,10 +337,10 @@ cc_library( srcs = ["day10.cc"], hdrs = ["day10.h"], deps = [ - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -374,12 +374,12 @@ cc_library( hdrs = ["day11.h"], deps = [ "//adventofcode/cc:trim", - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", - "@com_googlesource_code_re2//:re2", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@abseil-cpp//absl/strings:str_format", + "@re2", ], ) @@ -412,10 +412,10 @@ cc_library( srcs = ["day12.cc"], hdrs = ["day12.h"], deps = [ - "@com_google_absl//absl/container:flat_hash_map", - "@com_google_absl//absl/container:flat_hash_set", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/container:flat_hash_map", + "@abseil-cpp//absl/container:flat_hash_set", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -449,10 +449,10 @@ cc_library( hdrs = ["day13.h"], deps = [ "//adventofcode/cc:trim", - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -485,13 +485,13 @@ cc_library( srcs = ["day14.cc"], hdrs = ["day14.h"], deps = [ - "@com_google_absl//absl/container:btree", - "@com_google_absl//absl/container:flat_hash_set", - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", + "@abseil-cpp//absl/container:btree", + "@abseil-cpp//absl/container:flat_hash_set", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@abseil-cpp//absl/strings:str_format", ], ) @@ -524,13 +524,13 @@ cc_library( srcs = ["day15_shared.cc"], hdrs = ["day15_shared.h"], deps = [ - "@com_google_absl//absl/container:flat_hash_set", - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", - "@com_googlesource_code_re2//:re2", + "@abseil-cpp//absl/container:flat_hash_set", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@abseil-cpp//absl/strings:str_format", + "@re2", ], ) @@ -540,9 +540,9 @@ cc_library( hdrs = ["day15.h"], deps = [ ":day15_shared", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -563,9 +563,9 @@ cc_library( hdrs = ["day15_example.h"], deps = [ ":day15_shared", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -596,14 +596,14 @@ cc_library( srcs = ["day16.cc"], hdrs = ["day16.h"], deps = [ - "@com_google_absl//absl/container:flat_hash_map", - "@com_google_absl//absl/container:flat_hash_set", - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", - "@com_googlesource_code_re2//:re2", + "@abseil-cpp//absl/container:flat_hash_map", + "@abseil-cpp//absl/container:flat_hash_set", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@abseil-cpp//absl/strings:str_format", + "@re2", ], ) @@ -637,11 +637,11 @@ cc_library( hdrs = ["day17.h"], deps = [ "//adventofcode/cc:trim", - "@com_google_absl//absl/container:flat_hash_map", - "@com_google_absl//absl/container:flat_hash_set", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/container:flat_hash_map", + "@abseil-cpp//absl/container:flat_hash_set", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -674,12 +674,12 @@ cc_library( srcs = ["day18.cc"], hdrs = ["day18.h"], deps = [ - "@com_google_absl//absl/container:flat_hash_set", - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", + "@abseil-cpp//absl/container:flat_hash_set", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@abseil-cpp//absl/strings:str_format", ], ) @@ -712,12 +712,12 @@ cc_library( srcs = ["day19.cc"], hdrs = ["day19.h"], deps = [ - "@com_google_absl//absl/container:flat_hash_map", - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_googlesource_code_re2//:re2", + "@abseil-cpp//absl/container:flat_hash_map", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@re2", ], ) @@ -750,10 +750,10 @@ cc_library( srcs = ["day20.cc"], hdrs = ["day20.h"], deps = [ - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -786,11 +786,11 @@ cc_library( srcs = ["day21.cc"], hdrs = ["day21.h"], deps = [ - "@com_google_absl//absl/container:flat_hash_map", - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/container:flat_hash_map", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -825,12 +825,12 @@ cc_library( deps = [ "//adventofcode/cc:trim", "//adventofcode/cc/geometry:pos", - "@com_google_absl//absl/container:flat_hash_map", - "@com_google_absl//absl/log:check", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", + "@abseil-cpp//absl/container:flat_hash_map", + "@abseil-cpp//absl/log:check", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@abseil-cpp//absl/strings:str_format", ], ) @@ -863,12 +863,12 @@ cc_library( srcs = ["day23.cc"], hdrs = ["day23.h"], deps = [ - "@com_google_absl//absl/container:flat_hash_map", - "@com_google_absl//absl/container:flat_hash_set", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", + "@abseil-cpp//absl/container:flat_hash_map", + "@abseil-cpp//absl/container:flat_hash_set", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", + "@abseil-cpp//absl/strings:str_format", ], ) @@ -902,10 +902,10 @@ cc_library( hdrs = ["day24.h"], deps = [ "//adventofcode/cc/geometry:pos", - "@com_google_absl//absl/container:flat_hash_set", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/container:flat_hash_set", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) @@ -938,9 +938,9 @@ cc_library( srcs = ["day25.cc"], hdrs = ["day25.h"], deps = [ - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + "@abseil-cpp//absl/status", + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", ], ) diff --git a/auth/BUILD.bazel b/auth/BUILD.bazel index e3c8852..292d4fe 100644 --- a/auth/BUILD.bazel +++ b/auth/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@rules_go//go:def.bzl", "go_library") go_library( name = "auth", diff --git a/auth/n/basic/BUILD.bazel b/auth/n/basic/BUILD.bazel index 7596cbe..70e7c7b 100644 --- a/auth/n/basic/BUILD.bazel +++ b/auth/n/basic/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "basic", diff --git a/bazel b/bazel deleted file mode 100755 index 744835d..0000000 --- a/bazel +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -make "$(pwd)/_tools/bazelisk" -exec "$(pwd)/_tools/bazelisk" "$@" diff --git a/docker/config/generate_config/BUILD.bazel b/docker/config/generate_config/BUILD.bazel index e788b0c..3b135be 100644 --- a/docker/config/generate_config/BUILD.bazel +++ b/docker/config/generate_config/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") +load("@rules_go//go:def.bzl", "go_binary", "go_library") go_library( name = "generate_config_lib", diff --git a/docker/dockertest/BUILD.bazel b/docker/dockertest/BUILD.bazel index 2529f03..cddfdae 100644 --- a/docker/dockertest/BUILD.bazel +++ b/docker/dockertest/BUILD.bazel @@ -1,9 +1,28 @@ -load("@io_bazel_rules_docker//container:image.bzl", "container_image") -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_library", "go_test") +load("@rules_oci//oci:defs.bzl", "oci_load") -container_image( - name = "hello_world_image", - base = "@hello_world_image//image", +oci_load( + name = "hello_world", + image = "@hello_world", + repo_tags = ["saser.se/docker/dockertest/hello_world:latest"], +) + +filegroup( + name = "hello_world.tar", + srcs = [":hello_world"], + output_group = "tarball", +) + +oci_load( + name = "nginx", + image = "@nginx", + repo_tags = ["saser.se/docker/dockertest/nginx:latest"], +) + +filegroup( + name = "nginx.tar", + srcs = [":nginx"], + output_group = "tarball", ) go_library( @@ -12,13 +31,10 @@ go_library( importpath = "go.saser.se/docker/dockertest", visibility = ["//visibility:public"], deps = [ - "//docker/imagetar", "//runfiles", "@com_github_cenkalti_backoff_v4//:backoff", - "@com_github_docker_docker//api/types", - "@com_github_docker_docker//api/types/container", - "@com_github_docker_docker//client", - "@com_github_docker_go_connections//nat", + "@com_github_ory_dockertest_v3//:dockertest", + "@com_github_ory_dockertest_v3//docker", ], ) @@ -26,9 +42,12 @@ go_test( name = "dockertest_test", srcs = ["dockertest_test.go"], data = [ - ":hello_world_image.tar", - "@nginx_image//image:image.tar", + ":hello_world.tar", + ":nginx.tar", ], embed = [":dockertest"], - deps = ["@com_github_cenkalti_backoff_v4//:backoff"], + deps = [ + "//runfiles", + "@com_github_cenkalti_backoff_v4//:backoff", + ], ) diff --git a/docker/dockertest/dockertest.go b/docker/dockertest/dockertest.go index dc2ac46..d80756d 100644 --- a/docker/dockertest/dockertest.go +++ b/docker/dockertest/dockertest.go @@ -8,62 +8,69 @@ import ( "context" "errors" "net" + "strings" "testing" + "time" "github.com/cenkalti/backoff/v4" - "github.com/docker/docker/api/types" - "github.com/docker/docker/api/types/container" - "github.com/docker/docker/client" - "github.com/docker/go-connections/nat" - "go.saser.se/docker/imagetar" + "github.com/ory/dockertest/v3" + "github.com/ory/dockertest/v3/docker" "go.saser.se/runfiles" ) -// newClient creates a new Docker SDK client based on environment variables. The -// client is closed when the test ends. -func newClient(tb testing.TB) *client.Client { +// Pool wraps a [*dockertest.Pool] and provides some convenient test helpers on +// top of it. +type Pool struct { + *dockertest.Pool +} + +// NewPool initializes a new Docker client connection pool. Pass an empty string +// as the endpoint to get reasonable defaults; see the documentation for +// [dockertest.NewPool] for more details. +func NewPool(tb testing.TB, endpoint string) *Pool { tb.Helper() - c, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) + p, err := dockertest.NewPool(endpoint) if err != nil { - tb.Fatal(err) + tb.Fatalf("dockertest: create pool with endpoint %q: %v", endpoint, err) } - tb.Cleanup(func() { - if err := c.Close(); err != nil { - tb.Error(err) - } - }) - return c + return &Pool{p} } -// Load takes a runfile path (i.e., one relative to the workspace root) of a -// .tar archive containing a single Docker image and loads that image into the -// Docker daemon. -func Load(ctx context.Context, tb testing.TB, path string) string { +// Load takes a path to a tarball containing a Docker image and loads it into +// the Docker daemon, returning the image name. See the tests for an example of +// how to use this. +func (p *Pool) Load(ctx context.Context, tb testing.TB, path string) string { tb.Helper() - f := runfiles.OpenT(tb, path) - // We want to load exactly one image. - imgs, err := imagetar.Images(f) + f := runfiles.OpenT(tb, path) + var out strings.Builder + err := p.Client.LoadImage(docker.LoadImageOptions{ + Context: ctx, + InputStream: f, + OutputStream: &out, + }) if err != nil { - tb.Fatal(err) - } - if len(imgs) != 1 { - tb.Fatalf("image archive did not contain exactly one image; got %q", imgs) + tb.Fatalf("dockertest: failed to load image with path %q: %v.\nOutput: %q", path, err, out.String()) } - // Seek back to the beginning of the archive and load it into the Docker - // daemon. - f.Seek(0, 0) // First 0 means offset 0, second 0 means "relative to origin of file". - c := newClient(tb) - res, err := c.ImageLoad(ctx, f, true /*quiet*/) - if err != nil { - tb.Fatal(err) + // This is a bit hacky and relies on specific output probably intended + // for humans ... but it works well enough for now. + // The Docker daemon responds with a message like: + // + // Loaded image: example.com/my/image:tag + // + // (with a trailing newline) and we want to extract + // "example.com/my/image:tag". To do that, we simply look for a string + // following the exact format like the above, and return the image name. + output := strings.TrimSpace(out.String()) + name, ok := strings.CutPrefix(output, "Loaded image: ") + if !ok { + tb.Fatalf("dockertest: load: could not extract image name from output from Docker daemon. Full output:\n%s", output) } - defer res.Body.Close() - return imgs[0] + return name } -// RunOptions contains the options for Run. +// RunOptions contains the options for [*Pool.Run]. type RunOptions struct { // The image to run a container with. Required. Image string @@ -80,62 +87,74 @@ type RunOptions struct { KeepRunning bool } -// Run creates a new container, starts it, and then returns the container ID. -// The opts.Image field set to an image that exists in the Docker daemon. -func Run(ctx context.Context, tb testing.TB, opts RunOptions) string { +// Run starts a container and keeps it alive for the duration of the test. Opts +// must at least contain the image to run. +func (p *Pool) Run(ctx context.Context, tb testing.TB, opts RunOptions) string { tb.Helper() + // cleanupCtx is used for the common cleanup tasks (stopping/removing + // containers) but has been separated from the cancel signal carried in + // ctx (if any). This is intended to support the common use case of + // using [testing.T.Context] as the top-level context in tests, which is + // documented to be cancelled just before Cleanup functions are called. + cleanupCtx := context.WithoutCancel(ctx) + if opts.Image == "" { - tb.Fatalf("run options does not have Image set") + tb.Fatalf("dockertest: run: image is required.") } if opts.KeepRunning && !opts.KeepContainer { - tb.Fatal("KeepContainer must be true if KeepRunning is true") + tb.Fatal("dockertest: run: if KeepRunning is true then KeepContainer must also be true.") } - c := newClient(tb) - // First, create the container. - contCfg := &container.Config{ + contCfg := &docker.Config{ Image: opts.Image, } for k, v := range opts.Environment { contCfg.Env = append(contCfg.Env, k+"="+v) } - hostCfg := &container.HostConfig{ + hostCfg := &docker.HostConfig{ // As a sane default, always publish all ports. This can be revisited // later if needed. PublishAllPorts: true, } - cont, err := c.ContainerCreate(ctx, contCfg, hostCfg, nil, nil, opts.Name) + cont, err := p.Client.CreateContainer(docker.CreateContainerOptions{ + Context: ctx, + Name: opts.Name, + Config: contCfg, + HostConfig: hostCfg, + }) if err != nil { - tb.Fatal(err) - } - if len(cont.Warnings) > 0 { - for _, w := range cont.Warnings { - tb.Error(w) - } - tb.FailNow() + tb.Fatalf("dockertest: run: create container: %v", err) } // Unless opts.KeepContainer is true, the container should be removed when // the test ends. if !opts.KeepContainer { tb.Cleanup(func() { - if err := c.ContainerRemove(ctx, cont.ID, types.ContainerRemoveOptions{}); err != nil { - tb.Error(err) + if err := p.Client.RemoveContainer(docker.RemoveContainerOptions{ + ID: cont.ID, + Context: cleanupCtx, + }); err != nil { + tb.Errorf("dockertest: run: remove container after test: %v", err) } }) } // Second, after the container has been created, start the container. - if err := c.ContainerStart(ctx, cont.ID, types.ContainerStartOptions{}); err != nil { - tb.Fatal(err) + if err := p.Client.StartContainerWithContext(cont.ID, nil, ctx); err != nil { + tb.Fatalf("dockertest: run: start container: %v", err) } // Unless opts.KeepRunning is true, stop the container when the test ends. if !opts.KeepRunning { tb.Cleanup(func() { - if err := c.ContainerStop(ctx, cont.ID, nil); err != nil { - tb.Error(err) + err := p.Client.StopContainerWithContext(cont.ID, uint(time.Minute.Seconds()), cleanupCtx) + if e := new(docker.ContainerNotRunning); errors.As(err, &e) { + tb.Logf("NOTE: dockertest: run: attempted to stop container %v (running image %v) but it was not running.", cont.ID, opts.Image) + return + } + if err != nil { + tb.Errorf("dockertest: run: stop container after test: %v", err) } }) } @@ -147,40 +166,35 @@ func Run(ctx context.Context, tb testing.TB, opts RunOptions) string { // "number/protocol" format. For example, if the container image exposes port // 5432 over TCP, the host IP is "0.0.0.0", and the port on the host is 1337, // port should be given as "5432/tcp" and Address will return "0.0.0.0:1337". -func Address(ctx context.Context, tb testing.TB, id string, port string) string { +func (p *Pool) Address(ctx context.Context, tb testing.TB, id string, port string) string { tb.Helper() - c := newClient(tb) - // It seems that in testing this operation sometimes fails if it is executed - // too soon after the container has been created. Therefore, we execute the - // binding lookup with exponential backoff on errors, to increase its - // reliability. It should rarely matter in practice. + // It seems that in testing this operation sometimes fails if it is + // executed too soon after the container has been created. Therefore, we + // execute the binding lookup with exponential backoff on errors, to + // increase its reliability. It should rarely matter in practice. - var bindings []nat.PortBinding - errLessThanOneBinding := errors.New("less than one binding") + var bindings []docker.PortBinding + noBindings := errors.New("less than one binding") op := backoff.Operation(func() error { - info, err := c.ContainerInspect(ctx, id) + info, err := p.Client.InspectContainerWithContext(id, ctx) if err != nil { return err } if info.NetworkSettings == nil { - return errors.New("networksettings is nil") - } - var ok bool - bindings, ok = info.NetworkSettings.Ports[nat.Port(port)] - if !ok { - return errors.New("no port bindings at all") + return errors.New("NetworkSettings is nil") } - if len(bindings) < 1 { - return &backoff.PermanentError{Err: errLessThanOneBinding} + bindings = info.NetworkSettings.Ports[docker.Port(port)] + if len(bindings) == 0 { + return &backoff.PermanentError{Err: noBindings} } return nil }) if err := backoff.Retry(op, backoff.WithContext(backoff.NewExponentialBackOff(), ctx)); err != nil { - if errors.Is(err, errLessThanOneBinding) { - tb.Fatalf("container %v has less than one port binding for %q; got %v", id, port, bindings) + if errors.Is(err, noBindings) { + tb.Fatalf("dockertest: address: container %v does not have any port bindings for %q", id, port) } - tb.Fatalf("port %q is not exposed by container %v", port, id) + tb.Fatalf("dockertest: address: port %q is not exposed by container %v", port, id) } b := bindings[0] diff --git a/docker/dockertest/dockertest_test.go b/docker/dockertest/dockertest_test.go index 92b6678..847f4fc 100644 --- a/docker/dockertest/dockertest_test.go +++ b/docker/dockertest/dockertest_test.go @@ -1,33 +1,38 @@ package dockertest import ( - "context" "net/http" "testing" "github.com/cenkalti/backoff/v4" + "go.saser.se/runfiles" ) -const ( - helloWorld = "docker/dockertest/hello_world_image.tar" - nginx = "external/nginx_image/image/image.tar" +var ( + helloWorld = runfiles.MustPath("docker/dockertest/hello_world/tarball.tar") + nginx = runfiles.MustPath("docker/dockertest/nginx/tarball.tar") ) -func TestLoad(t *testing.T) { +func TestPool_Load(t *testing.T) { t.Parallel() - ctx := context.Background() - if got, want := Load(ctx, t, helloWorld), "bazel/docker/dockertest:hello_world_image"; got != want { + ctx := t.Context() + + p := NewPool(t, "") + got := p.Load(ctx, t, helloWorld) + want := "saser.se/docker/dockertest/hello_world:latest" + if got != want { t.Errorf("Load(%q) = %q; want %q", helloWorld, got, want) } } -func TestRun(t *testing.T) { +func TestPool_Run(t *testing.T) { t.Parallel() - ctx := context.Background() + ctx := t.Context() + p := NewPool(t, "") opts := RunOptions{ - Image: Load(ctx, t, helloWorld), + Image: p.Load(ctx, t, helloWorld), } - id := Run(ctx, t, opts) + id := p.Run(ctx, t, opts) // We can't assert much about the ID as it's assigned by the Docker daemon. // It shouldn't be empty, however. if id == "" { @@ -35,14 +40,15 @@ func TestRun(t *testing.T) { } } -func TestAddress(t *testing.T) { +func TestPool_Address(t *testing.T) { t.Parallel() - ctx := context.Background() + ctx := t.Context() + p := NewPool(t, "") opts := RunOptions{ - Image: Load(ctx, t, nginx), + Image: p.Load(ctx, t, nginx), } - id := Run(ctx, t, opts) - addr := Address(ctx, t, id, "80/tcp") + id := p.Run(ctx, t, opts) + addr := p.Address(ctx, t, id, "80/tcp") // It's not uncommon that Address returns before the container has actually // opened up a listener on the given port. Therefore, if we don't do this diff --git a/docker/dockertest/httpserver/BUILD.bazel b/docker/dockertest/httpserver/BUILD.bazel deleted file mode 100644 index a4b027c..0000000 --- a/docker/dockertest/httpserver/BUILD.bazel +++ /dev/null @@ -1,22 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") -load("//docker/go:image_with_ports.bzl", "go_image_with_ports") - -go_library( - name = "httpserver_lib", - srcs = ["main.go"], - importpath = "go.saser.se/docker/dockertest/httpserver", - visibility = ["//visibility:private"], -) - -go_binary( - name = "httpserver", - embed = [":httpserver_lib"], - visibility = ["//visibility:public"], -) - -go_image_with_ports( - name = "httpserver_image", - binary = ":httpserver", - ports = ["8080/tcp"], - visibility = ["//visibility:public"], -) diff --git a/docker/dockertest/httpserver/main.go b/docker/dockertest/httpserver/main.go deleted file mode 100644 index 8ba4c03..0000000 --- a/docker/dockertest/httpserver/main.go +++ /dev/null @@ -1,15 +0,0 @@ -package main - -import ( - "fmt" - "net/http" -) - -func handler(w http.ResponseWriter, req *http.Request) { - fmt.Fprintln(w, "Hello, world!") -} - -func main() { - http.HandleFunc("/", handler) - http.ListenAndServe(":8080", nil) -} diff --git a/docker/go/image_with_ports.bzl b/docker/go/image_with_ports.bzl deleted file mode 100644 index 9bff65b..0000000 --- a/docker/go/image_with_ports.bzl +++ /dev/null @@ -1,34 +0,0 @@ -"""Defines a `go_image` target that also exposes ports.""" - -load("@io_bazel_rules_docker//container:image.bzl", "container_image") -load("@io_bazel_rules_docker//go:image.bzl", "go_image") - -def go_image_with_ports( - name, - ports = [], - **kwargs): - """Defines a `go_image` target that also exposes ports. - - The `ports` argument will be passed to `container_image`. The remaining - kwargs will be passed to `go_image`. - - Example: - go_image_with_ports( - name = "image", - ports = ["8080/tcp"], - binary = ":server", - ) - """ - - with_ports = "_" + name + "_with_ports" - container_image( - name = with_ports, - base = "@go_image_base//image", - ports = ports, - ) - - go_image( - name = name, - base = ":" + with_ports, - **kwargs - ) diff --git a/docker/imagetar/BUILD.bazel b/docker/imagetar/BUILD.bazel deleted file mode 100644 index 3b57938..0000000 --- a/docker/imagetar/BUILD.bazel +++ /dev/null @@ -1,43 +0,0 @@ -load("@io_bazel_rules_docker//container:bundle.bzl", "container_bundle") -load("@io_bazel_rules_docker//container:image.bzl", "container_image") -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") - -container_image( - name = "testimage_hello_world", - base = "@hello_world_image//image", -) - -container_image( - name = "testimage_hola_mundo", - base = "@hello_world_image//image", -) - -container_bundle( - name = "testbundle", - images = { - "bazel/docker/imagetar:testimage_hello_world": ":testimage_hello_world", - "bazel/docker/imagetar:testimage_hola_mundo": ":testimage_hola_mundo", - }, -) - -go_library( - name = "imagetar", - srcs = ["imagetar.go"], - importpath = "go.saser.se/docker/imagetar", - visibility = ["//visibility:public"], -) - -go_test( - name = "imagetar_test", - srcs = ["imagetar_test.go"], - data = [ - "testbundle.tar", - "testimage_hello_world.tar", - ], - embed = [":imagetar"], - deps = [ - "//runfiles", - "@com_github_google_go_cmp//cmp", - "@com_github_google_go_cmp//cmp/cmpopts", - ], -) diff --git a/docker/imagetar/imagetar.go b/docker/imagetar/imagetar.go deleted file mode 100644 index 25771b1..0000000 --- a/docker/imagetar/imagetar.go +++ /dev/null @@ -1,73 +0,0 @@ -// Package imagetar contains functions for reading tarballs containing Docker -// images and repositories. -package imagetar - -import ( - "archive/tar" - "encoding/json" - "errors" - "fmt" - "io" -) - -var ( - // ErrRepositoriesNotFound is returned from Repositories when the file - // "repositories" is not found at the root of the archive. - ErrRepositoriesNotFound = errors.New("imagetar: repositories file not found") - - // ErrRepositoriesInvalid is returned from Repositories when the file - // "repositories" is found but does not have the expected JSON structure. - ErrRepositoriesInvalid = errors.New("imagetar: repositories file is invalid") -) - -// Repositories reads out the "repositories" file from the root of the archive -// and parses its contents, which is expected to be JSON, into a map. The map is -// structed as follows to match the definition of the "repositories" file as -// described at https://docs.docker.com/engine/api/v1.41/#operation/ImageGet. -// -// repository -> tag -> layer ID -// -// If no "repositories" file is found, Repositories returns -// ErrRepositoriesNotFound. If the file is found but its contents cannot be -// parsed as JSON, Repositories returns ErrRepositoriesInvalid. -func Repositories(r io.Reader) (map[string]map[string]string, error) { - tr := tar.NewReader(r) - for { - hdr, err := tr.Next() - if err == io.EOF { - return nil, ErrRepositoriesNotFound - } - if err != nil { - return nil, fmt.Errorf("imagetar: read repositories: %w", err) - } - if hdr.Name != "repositories" { - continue - } - contents, err := io.ReadAll(tr) - if err != nil { - return nil, fmt.Errorf("imagetar: read repositories: %w", err) - } - repositories := make(map[string]map[string]string) - if err := json.Unmarshal(contents, &repositories); err != nil { - return nil, ErrRepositoriesInvalid - } - return repositories, nil - } -} - -// Images parses the "repositories" file at the root of the archive and returns -// a list of image names contained in that archive. The strings will have the -// format "path/to/repo:tag". -func Images(r io.Reader) ([]string, error) { - repos, err := Repositories(r) - if err != nil { - return nil, err - } - var images []string - for repo, tags := range repos { - for tag := range tags { - images = append(images, repo+":"+tag) - } - } - return images, nil -} diff --git a/docker/imagetar/imagetar_test.go b/docker/imagetar/imagetar_test.go deleted file mode 100644 index 2af32f4..0000000 --- a/docker/imagetar/imagetar_test.go +++ /dev/null @@ -1,194 +0,0 @@ -package imagetar - -import ( - "archive/tar" - "bytes" - "io" - "testing" - - "github.com/google/go-cmp/cmp" - "github.com/google/go-cmp/cmp/cmpopts" - "go.saser.se/runfiles" -) - -var ( - testimage = runfiles.MustRead("docker/imagetar/testimage_hello_world.tar") - testbundle = runfiles.MustRead("docker/imagetar/testbundle.tar") -) - -// replaceFile reads the given tar archive, replaces the named file with the -// given contents, and returns the resulting archive as a byte slice. As a -// special case, if contents is nil the named file is not written to the new -// archive, effectively deleting it. -func replaceFile(t *testing.T, archive []byte, name string, contents []byte) []byte { - t.Helper() - var out bytes.Buffer - tw := tar.NewWriter(&out) - tr := tar.NewReader(bytes.NewReader(archive)) - for { - hdr, err := tr.Next() - if err == io.EOF { - break - } - if err != nil { - t.Fatal(err) - } - var body []byte - if hdr.Name == name { - if contents == nil { - continue - } - hdr.Size = int64(len(contents)) - body = contents - } else { - var err error - body, err = io.ReadAll(tr) - if err != nil { - t.Fatal(err) - } - } - if err := tw.WriteHeader(hdr); err != nil { - t.Fatal(err) - } - if _, err := tw.Write(body); err != nil { - t.Fatal(err) - } - } - return out.Bytes() -} - -func TestRepositories(t *testing.T) { - t.Parallel() - for _, tt := range []struct { - name string - r io.Reader - want map[string]map[string]string - }{ - { - name: "SingleImage", - r: bytes.NewReader(testimage), - want: map[string]map[string]string{ - "bazel/docker/imagetar": { - "testimage_hello_world": "a5f34025714d147c8ad37b8e237b52af7b58a5f44be46a5e550f0873705d1f24", - }, - }, - }, - { - name: "Bundle", - r: bytes.NewReader(testbundle), - want: map[string]map[string]string{ - "bazel/docker/imagetar": { - "testimage_hello_world": "a5f34025714d147c8ad37b8e237b52af7b58a5f44be46a5e550f0873705d1f24", - "testimage_hola_mundo": "a5f34025714d147c8ad37b8e237b52af7b58a5f44be46a5e550f0873705d1f24", - }, - }, - }, - } { - tt := tt - t.Run(tt.name, func(t *testing.T) { - t.Parallel() - got, err := Repositories(tt.r) - if err != nil { - t.Fatal(err) - } - if diff := cmp.Diff(tt.want, got); diff != "" { - t.Errorf("Repositories: unexpected return value (-want +got)\n%s", diff) - } - }) - } -} - -func TestRepositories_Error(t *testing.T) { - t.Parallel() - for _, tt := range []struct { - name string - r io.Reader - want error - }{ - { - name: "NotFound", - r: bytes.NewReader(replaceFile(t, testimage, "repositories", nil)), - want: ErrRepositoriesNotFound, - }, - { - name: "Invalid", - r: bytes.NewReader(replaceFile(t, testimage, "repositories", []byte("this is not JSON"))), - want: ErrRepositoriesInvalid, - }, - } { - tt := tt - t.Run(tt.name, func(t *testing.T) { - t.Parallel() - _, got := Repositories(tt.r) - if diff := cmp.Diff(tt.want, got, cmpopts.EquateErrors()); diff != "" { - t.Errorf("unexpected error from Repositories (-want +got)\n%s", diff) - } - }) - } -} - -func TestImages(t *testing.T) { - t.Parallel() - for _, tt := range []struct { - name string - r io.Reader - want []string - }{ - { - name: "SingleImage", - r: bytes.NewReader(testimage), - want: []string{ - "bazel/docker/imagetar:testimage_hello_world", - }, - }, - { - name: "Bundle", - r: bytes.NewReader(testbundle), - want: []string{ - "bazel/docker/imagetar:testimage_hello_world", - "bazel/docker/imagetar:testimage_hola_mundo", - }, - }, - } { - tt := tt - t.Run(tt.name, func(t *testing.T) { - got, err := Images(tt.r) - if err != nil { - t.Fatal(err) - } - lessFunc := func(s1, s2 string) bool { return s1 < s2 } - if diff := cmp.Diff(tt.want, got, cmpopts.SortSlices(lessFunc)); diff != "" { - t.Errorf("unexpected result from Images (-want +got)\n%s", diff) - } - }) - } -} - -func TestImages_Error(t *testing.T) { - t.Parallel() - for _, tt := range []struct { - name string - r io.Reader - want error - }{ - { - name: "NotFound", - r: bytes.NewReader(replaceFile(t, testimage, "repositories", nil)), - want: ErrRepositoriesNotFound, - }, - { - name: "Invalid", - r: bytes.NewReader(replaceFile(t, testimage, "repositories", []byte("this is not JSON"))), - want: ErrRepositoriesInvalid, - }, - } { - tt := tt - t.Run(tt.name, func(t *testing.T) { - t.Parallel() - _, got := Images(tt.r) - if diff := cmp.Diff(tt.want, got, cmpopts.EquateErrors()); diff != "" { - t.Errorf("unexpected error from Images (-want +got)\n%s", diff) - } - }) - } -} diff --git a/go.mod b/go.mod index ccf8874..aef7317 100644 --- a/go.mod +++ b/go.mod @@ -1,60 +1,74 @@ module go.saser.se -go 1.20 +go 1.25.0 require ( github.com/Masterminds/squirrel v1.5.3 - github.com/bazelbuild/bazelisk v1.14.0 - github.com/bazelbuild/buildtools v0.0.0-20220531122519-a43aed7014c8 - github.com/bazelbuild/rules_go v0.35.0 - github.com/cenkalti/backoff/v4 v4.1.3 - github.com/docker/docker v20.10.17+incompatible - github.com/docker/go-connections v0.4.0 - github.com/google/go-cmp v0.5.9 - github.com/google/uuid v1.3.0 + github.com/bazelbuild/buildtools v0.0.0-20250826111327-4006b543a694 + github.com/bazelbuild/rules_go v0.57.0 + github.com/cenkalti/backoff/v4 v4.3.0 + github.com/google/go-cmp v0.7.0 + github.com/google/uuid v1.6.0 github.com/jackc/pgerrcode v0.0.0-20220416144525-469b46aa5efa github.com/jackc/pgx/v5 v5.0.2 github.com/jonboulle/clockwork v0.3.0 - github.com/stretchr/testify v1.8.0 - google.golang.org/grpc v1.50.0 - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 - google.golang.org/protobuf v1.28.1 + github.com/stretchr/testify v1.11.1 + google.golang.org/grpc v1.75.0 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 + google.golang.org/protobuf v1.36.8 k8s.io/klog/v2 v2.80.1 mvdan.cc/gofumpt v0.4.0 ) require ( - github.com/Microsoft/go-winio v0.5.2 // indirect - github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect + github.com/docker/docker v27.1.1+incompatible // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + go.opentelemetry.io/otel v1.38.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect + github.com/containerd/continuity v0.4.5 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/docker/distribution v2.8.1+incompatible // indirect - github.com/docker/go-units v0.4.0 // indirect - github.com/go-logr/logr v1.2.0 // indirect + github.com/docker/cli v27.4.1+incompatible // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/go-logr/logr v1.4.3 // indirect + github.com/go-viper/mapstructure/v2 v2.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.2 // indirect - github.com/hashicorp/go-version v1.6.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect github.com/jackc/puddle/v2 v2.0.0 // indirect github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect - github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect - github.com/morikuni/aec v1.0.0 // indirect + github.com/moby/docker-image-spec v1.3.1 // indirect + github.com/moby/sys/user v0.3.0 // indirect + github.com/moby/term v0.5.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/opencontainers/runc v1.2.3 // indirect + github.com/ory/dockertest/v3 v3.12.0 github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/sirupsen/logrus v1.8.1 // indirect - golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 // indirect - golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect - golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde // indirect - golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 // indirect - golang.org/x/text v0.3.7 // indirect - golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect - golang.org/x/tools v0.1.12 // indirect - google.golang.org/genproto v0.0.0-20220615141314-f1464d18c36b // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xeipuuv/gojsonschema v1.2.0 // indirect + golang.org/x/crypto v0.41.0 // indirect + golang.org/x/mod v0.26.0 // indirect + golang.org/x/net v0.43.0 // indirect + golang.org/x/sync v0.16.0 // indirect + golang.org/x/sys v0.35.0 // indirect + golang.org/x/text v0.28.0 // indirect + golang.org/x/tools v0.35.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - gotest.tools/v3 v3.0.3 // indirect ) diff --git a/go.sum b/go.sum index bcb467c..5ce50d7 100644 --- a/go.sum +++ b/go.sum @@ -1,92 +1,58 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Masterminds/squirrel v1.5.3 h1:YPpoceAcxuzIljlr5iWpNKaql7hLeG1KLSrhvdHpkZc= github.com/Masterminds/squirrel v1.5.3/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= -github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= -github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/bazelbuild/bazelisk v1.14.0 h1:2VXAeyKE3vU0kF2x5Oj5FLsBIbxF4+NCb51bTZiaEL8= -github.com/bazelbuild/bazelisk v1.14.0/go.mod h1:jVD8/E7hMAXgWKCljEz8hOV0PZ+nFBgCpjIOJ6Xyzus= -github.com/bazelbuild/buildtools v0.0.0-20220531122519-a43aed7014c8 h1:fmdo+fvvWlhldUcqkhAMpKndSxMN3vH5l7yow5cEaiQ= -github.com/bazelbuild/buildtools v0.0.0-20220531122519-a43aed7014c8/go.mod h1:689QdV3hBP7Vo9dJMmzhoYIyo/9iMhEmHkJcnaPRCbo= -github.com/bazelbuild/rules_go v0.34.0/go.mod h1:MC23Dc/wkXEyk3Wpq6lCqz0ZAYOZDw2DR5y3N1q2i7M= -github.com/bazelbuild/rules_go v0.35.0 h1:ViPR65vOrg74JKntAUFY6qZkheBKGB6to7wFd8gCRU4= -github.com/bazelbuild/rules_go v0.35.0/go.mod h1:ahciH68Viyxtm/gvCQplaAiu8buhf/b+gWswcPjFixI= -github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= -github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= -github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= -github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= +github.com/bazelbuild/buildtools v0.0.0-20250826111327-4006b543a694 h1:LiKs9FsSfMx3NomNclXYkv9enY77oft5Mc/vX/AKHgI= +github.com/bazelbuild/buildtools v0.0.0-20250826111327-4006b543a694/go.mod h1:PLNUetjLa77TCCziPsz0EI8a6CUxgC+1jgmWv0H25tg= +github.com/bazelbuild/rules_go v0.57.0 h1:qBFxjy29iJg22xWlu5A3mNwrXtCHiEnHcIt91SsiFGU= +github.com/bazelbuild/rules_go v0.57.0/go.mod h1:Pn30cb4M513fe2rQ6GiJ3q8QyrRsgC7zhuDvi50Lw4Y= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4= +github.com/containerd/continuity v0.4.5/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= -github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v20.10.17+incompatible h1:JYCuMrWaVNophQTOrMMoSwudOVEfcegoZZrleKc1xwE= -github.com/docker/docker v20.10.17+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/docker/cli v27.4.1+incompatible h1:VzPiUlRJ/xh+otB75gva3r05isHMo5wXDfPRi5/b4hI= +github.com/docker/cli v27.4.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/docker v27.1.1+incompatible h1:hO/M4MtV36kzKldqnA37IWhebRA+LnqqcqDja6kVaKY= +github.com/docker/docker v27.1.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-logr/logr v1.2.0 h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE= +github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= +github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= +github.com/go-viper/mapstructure/v2 v2.1.0 h1:gHnMa2Y/pIxElCH2GlZZ1lZSsn6XMtufpGyP1XxdC/w= +github.com/go-viper/mapstructure/v2 v2.1.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= -github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/jackc/pgerrcode v0.0.0-20220416144525-469b46aa5efa h1:s+4MhCQ6YrzisK6hFJUX53drDT4UsSW3DEhKn0ifuHw= github.com/jackc/pgerrcode v0.0.0-20220416144525-469b46aa5efa/go.mod h1:a/s9Lp5W7n/DD0VrVoyJ00FbP2ytTPDVOivvn2bMlds= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= @@ -101,167 +67,130 @@ github.com/jonboulle/clockwork v0.3.0 h1:9BSCMi8C+0qdApAp4auwX0RkLGUjs956h0EkuQy github.com/jonboulle/clockwork v0.3.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw= github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o= github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk= github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= -github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= +github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= +github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 h1:rc3tiVYb5z54aKaDfakKn0dDjIyPpTtszkjuMzyt7ec= -github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opencontainers/runc v1.2.3 h1:fxE7amCzfZflJO2lHXf4y/y8M1BoAqp+FVmG19oYB80= +github.com/opencontainers/runc v1.2.3/go.mod h1:nSxcWUydXrsBZVYNSkTjoQ/N6rcyTtn+1SD5D4+kRIM= +github.com/ory/dockertest/v3 v3.12.0 h1:3oV9d0sDzlSQfHtIaB5k6ghUCVMVLpAY8hwrqoCyRCw= +github.com/ory/dockertest/v3 v3.12.0/go.mod h1:aKNDTva3cp8dwOWwb9cWuX84aH5akkxXRvO7KCwWVjE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.starlark.net v0.0.0-20210223155950-e043a3d3c984/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= +go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= +go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= +go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= +go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= +go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= +go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= +go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= +go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= +go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM= -golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= +golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= +golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= +golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde h1:ejfdSekXMDxDLbRrJMwUk6KnSLZ2McaUCVcIKM+N6jc= -golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 h1:v6hYoSR9T5oet+pMXwUWkbiVqx/63mlHjefrHmxwfeY= -golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= +golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= +golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= +golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20220615141314-f1464d18c36b h1:2LXbOcxY7BehyA9yu5hxYzaY67bLaJQhBX9O1zxxVis= -google.golang.org/genproto v0.0.0-20220615141314-f1464d18c36b/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.50.0 h1:fPVVDxY9w++VjTZsYvXWqEf9Rqar/e+9zYfxKK+W+YU= -google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 h1:TLkBREm4nIsEcexnCjgQd5GQWaHcqMzwQV0TX9pq8S0= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0/go.mod h1:DNq5QpG7LJqD2AamLZ7zvKE0DEpVl2BSEVjFycAAjRY= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1:eaY8u2EuxbRv7c3NiGK0/NedzVsCcV6hDuU5qPX5EGE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc= +google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= +google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= -gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4= k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM= diff --git a/grpclog/klogger/BUILD.bazel b/grpclog/klogger/BUILD.bazel index 6ffe1b9..12c3302 100644 --- a/grpclog/klogger/BUILD.bazel +++ b/grpclog/klogger/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@rules_go//go:def.bzl", "go_library") go_library( name = "klogger", diff --git a/grpctest/BUILD.bazel b/grpctest/BUILD.bazel index af605b6..a7e8da5 100644 --- a/grpctest/BUILD.bazel +++ b/grpctest/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "grpctest", diff --git a/patches/com_github_docker_cli/01-fix-broken-embeds.patch b/patches/com_github_docker_cli/01-fix-broken-embeds.patch new file mode 100644 index 0000000..cb5148b --- /dev/null +++ b/patches/com_github_docker_cli/01-fix-broken-embeds.patch @@ -0,0 +1,46 @@ +diff --git a/cli/compose/schema/BUILD.bazel b/cli/compose/schema/BUILD.bazel +index e8a4e79..0ae1114 100644 +--- a/cli/compose/schema/BUILD.bazel ++++ b/cli/compose/schema/BUILD.bazel +@@ -3,6 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + go_library( + name = "schema", + srcs = ["schema.go"], ++ embedsrcs = glob(["data/config_schema_v*.json"]), + importpath = "github.com/docker/cli/cli/compose/schema", + visibility = ["//visibility:public"], + deps = [ +diff --git a/cli/compose/schema/data/BUILD.bazel b/cli/compose/schema/data/BUILD.bazel +deleted file mode 100644 +index 444c30a..0000000 +--- a/cli/compose/schema/data/BUILD.bazel ++++ /dev/null +@@ -1,14 +0,0 @@ +-load("@io_bazel_rules_go//go:def.bzl", "go_library") +- +-go_library( +- name = "data", +- srcs = ["doc.go"], +- importpath = "github.com/docker/cli/cli/compose/schema/data", +- visibility = ["//visibility:public"], +-) +- +-alias( +- name = "go_default_library", +- actual = ":data", +- visibility = ["//visibility:public"], +-) +diff --git a/cli/compose/schema/data/doc.go b/cli/compose/schema/data/doc.go +deleted file mode 100644 +index f8ddd00..0000000 +--- a/cli/compose/schema/data/doc.go ++++ /dev/null +@@ -1,8 +0,0 @@ +-/* +- Package data contains all the Compose file JSON schemas, starting from v3.0. +-*/ +- +-// +-// +domain=docker.com +- +-package data diff --git a/docker/go/BUILD.bazel b/patches/com_github_docker_cli/BUILD.bazel similarity index 100% rename from docker/go/BUILD.bazel rename to patches/com_github_docker_cli/BUILD.bazel diff --git a/patches/com_github_docker_cli/README.md b/patches/com_github_docker_cli/README.md new file mode 100644 index 0000000..a38e25c --- /dev/null +++ b/patches/com_github_docker_cli/README.md @@ -0,0 +1,33 @@ +# Patches for https://github.com/docker/cli + +## `01-fix-broken-embeds.patch` + +Background: + +The source file `cli/compose/schema/schema.go` has a `//go:embed` directive that embeds the files `cli/compose/schema/data/*.json`. + +There is also a file `cli/compose/schema/data/doc.go` that essentially makes a Go package out of the `data` directory, even though that package doesn't contain any real Go code. The purpose seems to be to keep the `data/*.json` files when `github.com/docker/cli` is a vendored dependency: https://github.com/docker/cli/pull/1169. + +Gazelle does support generating `embedsrcs` attributes for `//go:embed` directives. However, for complicated reasons that I don't understand, it seems that Gazelle won't generate `embedsrcs` if the files being embedded are also part of a Bazel package. See these issues: +- https://github.com/bazel-contrib/bazel-gazelle/issues/1392 +- https://github.com/bazel-contrib/bazel-gazelle/issues/1316 + +This means that this directive: +```go +//go:embed data/config_schema_v*.json +var schemas embed.FS +``` +will silently fail to generate an `embedsrcs` attribute. Anything that later transitively depends on the generated `go_library` target for the `cli/compose/schema` Go package will fail to build, with an error saying that no such files `data/config_schema_v*.json` exist. + +This patch works around this by: +- Adding the right `embedsrcs` attribute +- Removing the `BUILD.bazel` and `doc.go` files in the `data/` directory. + +The patch must be applied _after_ Gazelle has already generated `BUILD.bazel` files, and the way to achieve this in the Bzlmod world with `go_deps.from_file("go.mod")` seems to be to use `go_deps.module_override`: +```starlark +go_deps.module_override( + path = "github.com/docker/cli", + patches = ["//patches/com_github_docker_cli:01-fix-broken-embeds.patch"], + patch_strip = 1, +) +``` diff --git a/postgres/BUILD.bazel b/postgres/BUILD.bazel index c9915e6..09d7a44 100644 --- a/postgres/BUILD.bazel +++ b/postgres/BUILD.bazel @@ -1,10 +1,17 @@ -load("@io_bazel_rules_docker//container:image.bzl", "container_image") -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@rules_go//go:def.bzl", "go_library") +load("@rules_oci//oci:defs.bzl", "oci_load") -container_image( +oci_load( name = "image", - base = "@postgres_image//image", - visibility = ["//visibility:public"], + image = "@postgres", + repo_tags = ["saser.se/postgres/postgres:latest"], +) + +filegroup( + name = "image.tar", + srcs = [":image"], + output_group = "tarball", + visibility = ["//postgres:__subpackages__"], ) go_library( diff --git a/postgres/log/klogadapter/BUILD.bazel b/postgres/log/klogadapter/BUILD.bazel index 54ff3d0..7718bd0 100644 --- a/postgres/log/klogadapter/BUILD.bazel +++ b/postgres/log/klogadapter/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@rules_go//go:def.bzl", "go_library") go_library( name = "klogadapter", diff --git a/postgres/postgrestest/BUILD.bazel b/postgres/postgrestest/BUILD.bazel index 2412d58..49f54e8 100644 --- a/postgres/postgrestest/BUILD.bazel +++ b/postgres/postgrestest/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "postgrestest", diff --git a/postgres/postgrestest/postgrestest.go b/postgres/postgrestest/postgrestest.go index 57b694d..eb8114f 100644 --- a/postgres/postgrestest/postgrestest.go +++ b/postgres/postgrestest/postgrestest.go @@ -33,16 +33,16 @@ func Open(ctx context.Context, tb testing.TB, schemaPath string) *postgres.Pool dbName = strings.ReplaceAll(dbName, "/", "_") // Start a Postgres container and get the address it's listening on. - opts := dockertest.RunOptions{ - Image: dockertest.Load(ctx, tb, "postgres/image.tar"), + p := dockertest.NewPool(tb, "") + id := p.Run(ctx, tb, dockertest.RunOptions{ + Image: p.Load(ctx, tb, runfiles.PathT(tb, "postgres/image/tarball.tar")), Environment: map[string]string{ "POSTGRES_USER": user, "POSTGRES_PASSWORD": password, "POSTGRES_DB": dbName, }, - } - id := dockertest.Run(ctx, tb, opts) - addr := dockertest.Address(ctx, tb, id, "5432/tcp") + }) + addr := p.Address(ctx, tb, id, "5432/tcp") // Connect to the container. connString := (&url.URL{ diff --git a/repositories.bzl b/repositories.bzl deleted file mode 100644 index b52f6ad..0000000 --- a/repositories.bzl +++ /dev/null @@ -1,626 +0,0 @@ -load("@bazel_gazelle//:deps.bzl", "go_repository") - -def go_repositories(): - go_repository( - name = "cc_mvdan_gofumpt", - importpath = "mvdan.cc/gofumpt", - sum = "h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM=", - version = "v0.4.0", - ) - go_repository( - name = "co_honnef_go_tools", - importpath = "honnef.co/go/tools", - sum = "h1:/hemPrYIhOhy8zYrNj+069zDB68us2sMGsfkFJO0iZs=", - version = "v0.0.0-20190523083050-ea95bdfd59fc", - ) - - go_repository( - name = "com_github_antihax_optional", - importpath = "github.com/antihax/optional", - sum = "h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg=", - version = "v1.0.0", - ) - - go_repository( - name = "com_github_azure_go_ansiterm", - importpath = "github.com/Azure/go-ansiterm", - sum = "h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=", - version = "v0.0.0-20210617225240-d185dfc1b5a1", - ) - - go_repository( - name = "com_github_bazelbuild_bazelisk", - importpath = "github.com/bazelbuild/bazelisk", - sum = "h1:2VXAeyKE3vU0kF2x5Oj5FLsBIbxF4+NCb51bTZiaEL8=", - version = "v1.14.0", - ) - go_repository( - name = "com_github_bazelbuild_buildtools", - importpath = "github.com/bazelbuild/buildtools", - sum = "h1:fmdo+fvvWlhldUcqkhAMpKndSxMN3vH5l7yow5cEaiQ=", - version = "v0.0.0-20220531122519-a43aed7014c8", - ) - go_repository( - name = "com_github_bazelbuild_rules_go", - importpath = "github.com/bazelbuild/rules_go", - sum = "h1:ViPR65vOrg74JKntAUFY6qZkheBKGB6to7wFd8gCRU4=", - version = "v0.35.0", - ) - go_repository( - name = "com_github_bgentry_go_netrc", - importpath = "github.com/bgentry/go-netrc", - sum = "h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas=", - version = "v0.0.0-20140422174119-9fd32a8b3d3d", - ) - - go_repository( - name = "com_github_burntsushi_toml", - importpath = "github.com/BurntSushi/toml", - sum = "h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=", - version = "v0.3.1", - ) - - go_repository( - name = "com_github_cenkalti_backoff_v4", - importpath = "github.com/cenkalti/backoff/v4", - sum = "h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4=", - version = "v4.1.3", - ) - - go_repository( - name = "com_github_census_instrumentation_opencensus_proto", - importpath = "github.com/census-instrumentation/opencensus-proto", - sum = "h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk=", - version = "v0.2.1", - ) - - go_repository( - name = "com_github_cespare_xxhash_v2", - importpath = "github.com/cespare/xxhash/v2", - sum = "h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=", - version = "v2.1.1", - ) - - go_repository( - name = "com_github_chzyer_logex", - importpath = "github.com/chzyer/logex", - sum = "h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=", - version = "v1.1.10", - ) - go_repository( - name = "com_github_chzyer_readline", - importpath = "github.com/chzyer/readline", - sum = "h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=", - version = "v0.0.0-20180603132655-2972be24d48e", - ) - go_repository( - name = "com_github_chzyer_test", - importpath = "github.com/chzyer/test", - sum = "h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8=", - version = "v0.0.0-20180213035817-a1ea475d72b1", - ) - - go_repository( - name = "com_github_client9_misspell", - importpath = "github.com/client9/misspell", - sum = "h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI=", - version = "v0.3.4", - ) - go_repository( - name = "com_github_cncf_udpa_go", - importpath = "github.com/cncf/udpa/go", - sum = "h1:hzAQntlaYRkVSFEfj9OTWlVV1H155FMD8BTKktLv0QI=", - version = "v0.0.0-20210930031921-04548b0d99d4", - ) - go_repository( - name = "com_github_cncf_xds_go", - importpath = "github.com/cncf/xds/go", - sum = "h1:zH8ljVhhq7yC0MIeUL/IviMtY8hx2mK8cN9wEYb8ggw=", - version = "v0.0.0-20211011173535-cb28da3451f1", - ) - - go_repository( - name = "com_github_creack_pty", - importpath = "github.com/creack/pty", - sum = "h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=", - version = "v1.1.11", - ) - - go_repository( - name = "com_github_davecgh_go_spew", - importpath = "github.com/davecgh/go-spew", - sum = "h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=", - version = "v1.1.1", - ) - - go_repository( - name = "com_github_docker_distribution", - importpath = "github.com/docker/distribution", - sum = "h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=", - version = "v2.8.1+incompatible", - ) - go_repository( - name = "com_github_docker_docker", - build_file_proto_mode = "disable_global", - importpath = "github.com/docker/docker", - sum = "h1:JYCuMrWaVNophQTOrMMoSwudOVEfcegoZZrleKc1xwE=", - version = "v20.10.17+incompatible", - ) - go_repository( - name = "com_github_docker_go_connections", - importpath = "github.com/docker/go-connections", - sum = "h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=", - version = "v0.4.0", - ) - - go_repository( - name = "com_github_docker_go_units", - importpath = "github.com/docker/go-units", - sum = "h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=", - version = "v0.4.0", - ) - - go_repository( - name = "com_github_envoyproxy_go_control_plane", - importpath = "github.com/envoyproxy/go-control-plane", - sum = "h1:xvqufLtNVwAhN8NMyWklVgxnWohi+wtMGQMhtxexlm0=", - version = "v0.10.2-0.20220325020618-49ff273808a1", - ) - go_repository( - name = "com_github_envoyproxy_protoc_gen_validate", - importpath = "github.com/envoyproxy/protoc-gen-validate", - sum = "h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A=", - version = "v0.1.0", - ) - - go_repository( - name = "com_github_frankban_quicktest", - importpath = "github.com/frankban/quicktest", - sum = "h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=", - version = "v1.14.3", - ) - - go_repository( - name = "com_github_ghodss_yaml", - importpath = "github.com/ghodss/yaml", - sum = "h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=", - version = "v1.0.0", - ) - - go_repository( - name = "com_github_go_logr_logr", - importpath = "github.com/go-logr/logr", - sum = "h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE=", - version = "v1.2.0", - ) - - go_repository( - name = "com_github_gogo_protobuf", - build_file_proto_mode = "disable_global", - importpath = "github.com/gogo/protobuf", - sum = "h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=", - version = "v1.3.2", - ) - - go_repository( - name = "com_github_golang_glog", - importpath = "github.com/golang/glog", - sum = "h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=", - version = "v0.0.0-20160126235308-23def4e6c14b", - ) - - go_repository( - name = "com_github_golang_mock", - importpath = "github.com/golang/mock", - sum = "h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=", - version = "v1.6.0", - ) - go_repository( - name = "com_github_golang_protobuf", - build_file_proto_mode = "disable_global", - importpath = "github.com/golang/protobuf", - sum = "h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=", - version = "v1.5.2", - ) - - go_repository( - name = "com_github_google_go_cmp", - importpath = "github.com/google/go-cmp", - sum = "h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=", - version = "v0.5.9", - ) - - go_repository( - name = "com_github_google_uuid", - importpath = "github.com/google/uuid", - sum = "h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=", - version = "v1.3.0", - ) - - go_repository( - name = "com_github_grpc_ecosystem_grpc_gateway", - importpath = "github.com/grpc-ecosystem/grpc-gateway", - sum = "h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=", - version = "v1.16.0", - ) - - go_repository( - name = "com_github_hashicorp_go_version", - importpath = "github.com/hashicorp/go-version", - sum = "h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek=", - version = "v1.6.0", - ) - - go_repository( - name = "com_github_jackc_pgerrcode", - importpath = "github.com/jackc/pgerrcode", - sum = "h1:s+4MhCQ6YrzisK6hFJUX53drDT4UsSW3DEhKn0ifuHw=", - version = "v0.0.0-20220416144525-469b46aa5efa", - ) - - go_repository( - name = "com_github_jackc_pgpassfile", - importpath = "github.com/jackc/pgpassfile", - sum = "h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=", - version = "v1.0.0", - ) - - go_repository( - name = "com_github_jackc_pgservicefile", - importpath = "github.com/jackc/pgservicefile", - sum = "h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg=", - version = "v0.0.0-20200714003250-2b9c44734f2b", - ) - - go_repository( - name = "com_github_jackc_pgx_v5", - importpath = "github.com/jackc/pgx/v5", - sum = "h1:V+EonE9i33VwJR9YIHRdglAmrODLLkwIdHjko6b1rRk=", - version = "v5.0.2", - ) - - go_repository( - name = "com_github_jackc_puddle_v2", - importpath = "github.com/jackc/puddle/v2", - sum = "h1:Kwk/AlLigcnZsDssc3Zun1dk1tAtQNPaBBxBHWn0Mjc=", - version = "v2.0.0", - ) - - go_repository( - name = "com_github_jonboulle_clockwork", - importpath = "github.com/jonboulle/clockwork", - sum = "h1:9BSCMi8C+0qdApAp4auwX0RkLGUjs956h0EkuQymUhg=", - version = "v0.3.0", - ) - - go_repository( - name = "com_github_kisielk_errcheck", - importpath = "github.com/kisielk/errcheck", - sum = "h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY=", - version = "v1.5.0", - ) - - go_repository( - name = "com_github_kisielk_gotool", - importpath = "github.com/kisielk/gotool", - sum = "h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg=", - version = "v1.0.0", - ) - - go_repository( - name = "com_github_kr_pretty", - importpath = "github.com/kr/pretty", - sum = "h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=", - version = "v0.3.0", - ) - - go_repository( - name = "com_github_kr_text", - importpath = "github.com/kr/text", - sum = "h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=", - version = "v0.2.0", - ) - go_repository( - name = "com_github_lann_builder", - importpath = "github.com/lann/builder", - sum = "h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw=", - version = "v0.0.0-20180802200727-47ae307949d0", - ) - go_repository( - name = "com_github_lann_ps", - importpath = "github.com/lann/ps", - sum = "h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk=", - version = "v0.0.0-20150810152359-62de8c46ede0", - ) - - go_repository( - name = "com_github_masterminds_squirrel", - importpath = "github.com/Masterminds/squirrel", - sum = "h1:YPpoceAcxuzIljlr5iWpNKaql7hLeG1KLSrhvdHpkZc=", - version = "v1.5.3", - ) - - go_repository( - name = "com_github_microsoft_go_winio", - importpath = "github.com/Microsoft/go-winio", - sum = "h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA=", - version = "v0.5.2", - ) - - go_repository( - name = "com_github_mitchellh_go_homedir", - importpath = "github.com/mitchellh/go-homedir", - sum = "h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=", - version = "v1.1.0", - ) - - go_repository( - name = "com_github_moby_term", - importpath = "github.com/moby/term", - sum = "h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc=", - version = "v0.0.0-20210619224110-3f7ff695adc6", - ) - - go_repository( - name = "com_github_morikuni_aec", - importpath = "github.com/morikuni/aec", - sum = "h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=", - version = "v1.0.0", - ) - - go_repository( - name = "com_github_opencontainers_go_digest", - importpath = "github.com/opencontainers/go-digest", - sum = "h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=", - version = "v1.0.0", - ) - go_repository( - name = "com_github_opencontainers_image_spec", - importpath = "github.com/opencontainers/image-spec", - sum = "h1:rc3tiVYb5z54aKaDfakKn0dDjIyPpTtszkjuMzyt7ec=", - version = "v1.0.3-0.20211202183452-c5a74bcca799", - ) - - go_repository( - name = "com_github_pkg_diff", - importpath = "github.com/pkg/diff", - sum = "h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A=", - version = "v0.0.0-20210226163009-20ebb0f2a09e", - ) - go_repository( - name = "com_github_pkg_errors", - importpath = "github.com/pkg/errors", - sum = "h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=", - version = "v0.9.1", - ) - - go_repository( - name = "com_github_pmezard_go_difflib", - importpath = "github.com/pmezard/go-difflib", - sum = "h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=", - version = "v1.0.0", - ) - - go_repository( - name = "com_github_prometheus_client_model", - importpath = "github.com/prometheus/client_model", - sum = "h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM=", - version = "v0.0.0-20190812154241-14fe0d1b01d4", - ) - - go_repository( - name = "com_github_rogpeppe_fastuuid", - importpath = "github.com/rogpeppe/fastuuid", - sum = "h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s=", - version = "v1.2.0", - ) - go_repository( - name = "com_github_rogpeppe_go_internal", - importpath = "github.com/rogpeppe/go-internal", - sum = "h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=", - version = "v1.9.0", - ) - - go_repository( - name = "com_github_sirupsen_logrus", - importpath = "github.com/sirupsen/logrus", - sum = "h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=", - version = "v1.8.1", - ) - - go_repository( - name = "com_github_spf13_pflag", - importpath = "github.com/spf13/pflag", - sum = "h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=", - version = "v1.0.3", - ) - - go_repository( - name = "com_github_stretchr_objx", - importpath = "github.com/stretchr/objx", - sum = "h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4=", - version = "v0.4.0", - ) - go_repository( - name = "com_github_stretchr_testify", - importpath = "github.com/stretchr/testify", - sum = "h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=", - version = "v1.8.0", - ) - - go_repository( - name = "com_github_yuin_goldmark", - importpath = "github.com/yuin/goldmark", - sum = "h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE=", - version = "v1.4.13", - ) - - go_repository( - name = "com_google_cloud_go", - importpath = "cloud.google.com/go", - sum = "h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg=", - version = "v0.34.0", - ) - - go_repository( - name = "in_gopkg_check_v1", - importpath = "gopkg.in/check.v1", - sum = "h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=", - version = "v1.0.0-20201130134442-10cb98267c6c", - ) - - go_repository( - name = "in_gopkg_yaml_v2", - importpath = "gopkg.in/yaml.v2", - sum = "h1:fvjTMHxHEw/mxHbtzPi3JCcKXQRAnQTBRo6YCJSVHKI=", - version = "v2.2.3", - ) - go_repository( - name = "in_gopkg_yaml_v3", - importpath = "gopkg.in/yaml.v3", - sum = "h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=", - version = "v3.0.1", - ) - go_repository( - name = "io_k8s_klog_v2", - importpath = "k8s.io/klog/v2", - sum = "h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4=", - version = "v2.80.1", - ) - - go_repository( - name = "io_opentelemetry_go_proto_otlp", - importpath = "go.opentelemetry.io/proto/otlp", - sum = "h1:rwOQPCuKAKmwGKq2aVNnYIibI6wnV7EvzgfTCzcdGg8=", - version = "v0.7.0", - ) - - go_repository( - name = "net_starlark_go", - importpath = "go.starlark.net", - sum = "h1:xwwDQW5We85NaTk2APgoN9202w/l0DVGp+GZMfsrh7s=", - version = "v0.0.0-20210223155950-e043a3d3c984", - ) - - go_repository( - name = "org_golang_google_appengine", - importpath = "google.golang.org/appengine", - sum = "h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=", - version = "v1.4.0", - ) - - go_repository( - name = "org_golang_google_genproto", - build_file_proto_mode = "disable_global", - importpath = "google.golang.org/genproto", - sum = "h1:2LXbOcxY7BehyA9yu5hxYzaY67bLaJQhBX9O1zxxVis=", - version = "v0.0.0-20220615141314-f1464d18c36b", - ) - go_repository( - name = "org_golang_google_grpc", - build_file_proto_mode = "disable_global", - importpath = "google.golang.org/grpc", - sum = "h1:fPVVDxY9w++VjTZsYvXWqEf9Rqar/e+9zYfxKK+W+YU=", - version = "v1.50.0", - ) - go_repository( - name = "org_golang_google_grpc_cmd_protoc_gen_go_grpc", - importpath = "google.golang.org/grpc/cmd/protoc-gen-go-grpc", - sum = "h1:TLkBREm4nIsEcexnCjgQd5GQWaHcqMzwQV0TX9pq8S0=", - version = "v1.2.0", - ) - go_repository( - name = "org_golang_google_protobuf", - build_file_proto_mode = "disable_global", - importpath = "google.golang.org/protobuf", - sum = "h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=", - version = "v1.28.1", - ) - go_repository( - name = "org_golang_x_crypto", - importpath = "golang.org/x/crypto", - sum = "h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM=", - version = "v0.0.0-20220829220503-c86fa9a7ed90", - ) - go_repository( - name = "org_golang_x_exp", - importpath = "golang.org/x/exp", - sum = "h1:c2HOrn5iMezYjSlGPncknSEr/8x5LELb/ilJbXi9DEA=", - version = "v0.0.0-20190121172915-509febef88a4", - ) - - go_repository( - name = "org_golang_x_lint", - importpath = "golang.org/x/lint", - sum = "h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0=", - version = "v0.0.0-20190313153728-d0100b6bd8b3", - ) - - go_repository( - name = "org_golang_x_mod", - importpath = "golang.org/x/mod", - sum = "h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=", - version = "v0.6.0-dev.0.20220419223038-86c51ed26bb4", - ) - go_repository( - name = "org_golang_x_net", - importpath = "golang.org/x/net", - sum = "h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0=", - version = "v0.0.0-20220722155237-a158d28d115b", - ) - go_repository( - name = "org_golang_x_oauth2", - importpath = "golang.org/x/oauth2", - sum = "h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw=", - version = "v0.0.0-20200107190931-bf48bf16ab8d", - ) - go_repository( - name = "org_golang_x_sync", - importpath = "golang.org/x/sync", - sum = "h1:ejfdSekXMDxDLbRrJMwUk6KnSLZ2McaUCVcIKM+N6jc=", - version = "v0.0.0-20220819030929-7fc1605a5dde", - ) - go_repository( - name = "org_golang_x_sys", - importpath = "golang.org/x/sys", - sum = "h1:v6hYoSR9T5oet+pMXwUWkbiVqx/63mlHjefrHmxwfeY=", - version = "v0.0.0-20220829200755-d48e67d00261", - ) - go_repository( - name = "org_golang_x_term", - importpath = "golang.org/x/term", - sum = "h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=", - version = "v0.0.0-20210927222741-03fcf44c2211", - ) - go_repository( - name = "org_golang_x_text", - importpath = "golang.org/x/text", - sum = "h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=", - version = "v0.3.7", - ) - go_repository( - name = "org_golang_x_time", - importpath = "golang.org/x/time", - sum = "h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs=", - version = "v0.0.0-20210723032227-1f47c861a9ac", - ) - - go_repository( - name = "org_golang_x_tools", - importpath = "golang.org/x/tools", - sum = "h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=", - version = "v0.1.12", - ) - go_repository( - name = "org_golang_x_xerrors", - importpath = "golang.org/x/xerrors", - sum = "h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=", - version = "v0.0.0-20200804184101-5ec99f83aff1", - ) - - go_repository( - name = "tools_gotest_v3", - importpath = "gotest.tools/v3", - sum = "h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0=", - version = "v3.0.3", - ) diff --git a/runfiles/BUILD.bazel b/runfiles/BUILD.bazel index b22b606..be260c3 100644 --- a/runfiles/BUILD.bazel +++ b/runfiles/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_library", "go_test") exports_files( ["test.txt"], @@ -10,7 +10,7 @@ go_library( srcs = ["runfiles.go"], importpath = "go.saser.se/runfiles", visibility = ["//visibility:public"], - deps = ["@io_bazel_rules_go//go/tools/bazel:go_default_library"], + deps = ["@rules_go//go/tools/bazel"], ) go_test( diff --git a/runfiles/cc/BUILD.bazel b/runfiles/cc/BUILD.bazel index 25588c7..14ee484 100644 --- a/runfiles/cc/BUILD.bazel +++ b/runfiles/cc/BUILD.bazel @@ -7,9 +7,9 @@ cc_library( srcs = ["runfiles.cc"], hdrs = ["runfiles.h"], deps = [ + "@abseil-cpp//absl/status:statusor", + "@abseil-cpp//absl/strings", "@bazel_tools//tools/cpp/runfiles", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", ], ) @@ -19,7 +19,7 @@ cc_test( data = ["//runfiles:test.txt"], deps = [ ":runfiles", - "@com_google_absl//absl/status", - "@com_google_googletest//:gtest_main", + "@abseil-cpp//absl/status", + "@googletest//:gtest_main", ], ) diff --git a/tasks/fake/BUILD.bazel b/tasks/fake/BUILD.bazel index ee47f4e..5dc7507 100644 --- a/tasks/fake/BUILD.bazel +++ b/tasks/fake/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "fake", diff --git a/tasks/fake/server/BUILD.bazel b/tasks/fake/server/BUILD.bazel index d885974..b56494e 100644 --- a/tasks/fake/server/BUILD.bazel +++ b/tasks/fake/server/BUILD.bazel @@ -1,5 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") -load("//docker/go:image_with_ports.bzl", "go_image_with_ports") +load("@rules_go//go:def.bzl", "go_binary", "go_library") go_library( name = "server_lib", @@ -21,9 +20,3 @@ go_binary( embed = [":server_lib"], visibility = ["//visibility:public"], ) - -go_image_with_ports( - name = "server_image", - binary = ":server", - ports = ["8080/tcp"], -) diff --git a/tasks/postgres/BUILD.bazel b/tasks/postgres/BUILD.bazel index 2017305..9ca2f8c 100644 --- a/tasks/postgres/BUILD.bazel +++ b/tasks/postgres/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_test") +load("@rules_go//go:def.bzl", "go_test") exports_files(["schema.sql"]) diff --git a/tasks/server/BUILD.bazel b/tasks/server/BUILD.bazel index d88805f..381ab8e 100644 --- a/tasks/server/BUILD.bazel +++ b/tasks/server/BUILD.bazel @@ -1,5 +1,4 @@ -load("@io_bazel_rules_docker//go:image.bzl", "go_image") -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") +load("@rules_go//go:def.bzl", "go_binary", "go_library") go_library( name = "server_lib", @@ -24,8 +23,3 @@ go_binary( embed = [":server_lib"], visibility = ["//visibility:public"], ) - -go_image( - name = "server_image", - binary = ":server", -) diff --git a/tasks/service/BUILD.bazel b/tasks/service/BUILD.bazel index bf81e95..3519703 100644 --- a/tasks/service/BUILD.bazel +++ b/tasks/service/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "service", diff --git a/tasks/tasks_go_proto/BUILD.bazel b/tasks/tasks_go_proto/BUILD.bazel index 80b7ab1..5934552 100644 --- a/tasks/tasks_go_proto/BUILD.bazel +++ b/tasks/tasks_go_proto/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@rules_go//go:def.bzl", "go_library") go_library( name = "tasks_go_proto", diff --git a/tasks/tasks_go_proto/tasks.pb.go b/tasks/tasks_go_proto/tasks.pb.go index 98414a4..ddeb045 100644 --- a/tasks/tasks_go_proto/tasks.pb.go +++ b/tasks/tasks_go_proto/tasks.pb.go @@ -1,20 +1,20 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 +// protoc-gen-go v1.36.8 // protoc v3.21.1 // source: tasks/tasks.proto package tasks_go_proto import ( - reflect "reflect" - sync "sync" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" + unsafe "unsafe" ) const ( @@ -26,10 +26,7 @@ const ( // A task is a single action that can be completed. type Task struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the task. // Format: tasks/{task} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -57,16 +54,16 @@ type Task struct { // When the task was last soft deleted, if ever. DeleteTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"` // When the task will be permanently deleted after being soft deleted. - ExpireTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` + ExpireTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Task) Reset() { *x = Task{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Task) String() string { @@ -77,7 +74,7 @@ func (*Task) ProtoMessage() {} func (x *Task) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -165,10 +162,7 @@ func (x *Task) GetExpireTime() *timestamppb.Timestamp { // A project is a container of tasks. Projects map to the GTD concept of a // project: something that requires more than one action to complete. type Project struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: projects/{project} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -187,16 +181,16 @@ type Project struct { ExpireTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` // When the project was archived, if ever. If a project is archived and // later unarchived this timestamp will be empty. - ArchiveTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=archive_time,json=archiveTime,proto3" json:"archive_time,omitempty"` + ArchiveTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=archive_time,json=archiveTime,proto3" json:"archive_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Project) Reset() { *x = Project{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Project) String() string { @@ -207,7 +201,7 @@ func (*Project) ProtoMessage() {} func (x *Project) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -282,10 +276,7 @@ func (x *Project) GetArchiveTime() *timestamppb.Timestamp { // in organizing and listing tasks. Attaching a label to a task carries no // semantic meaning otherwise. type Label struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The resource name. // Format: labels/{label} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -302,16 +293,16 @@ type Label struct { // When the label was created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // When the label was last updated, if ever. - UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Label) Reset() { *x = Label{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Label) String() string { @@ -322,7 +313,7 @@ func (*Label) ProtoMessage() {} func (x *Label) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -366,22 +357,19 @@ func (x *Label) GetUpdateTime() *timestamppb.Timestamp { } type GetTaskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: tasks/{task} - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetTaskRequest) Reset() { *x = GetTaskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTaskRequest) String() string { @@ -392,7 +380,7 @@ func (*GetTaskRequest) ProtoMessage() {} func (x *GetTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -415,10 +403,7 @@ func (x *GetTaskRequest) GetName() string { } type ListTasksRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The standard page size. Optional. If unspecified, the server will choose // a suitable default. Values larger than 1000 will be truncated to 1000. PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` @@ -426,16 +411,16 @@ type ListTasksRequest struct { // ListTasks. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // Whether soft deleted resources should be included in the response. - ShowDeleted bool `protobuf:"varint,3,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"` + ShowDeleted bool `protobuf:"varint,3,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListTasksRequest) Reset() { *x = ListTasksRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListTasksRequest) String() string { @@ -446,7 +431,7 @@ func (*ListTasksRequest) ProtoMessage() {} func (x *ListTasksRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -483,24 +468,21 @@ func (x *ListTasksRequest) GetShowDeleted() bool { } type ListTasksResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The tasks. Tasks []*Task `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"` // The token required to get the next page in a subsequent call to // ListTasks. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListTasksResponse) Reset() { *x = ListTasksResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListTasksResponse) String() string { @@ -511,7 +493,7 @@ func (*ListTasksResponse) ProtoMessage() {} func (x *ListTasksResponse) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -541,23 +523,20 @@ func (x *ListTasksResponse) GetNextPageToken() string { } type CreateTaskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The task to be created. The `name` field will be ignored. The `title` // field must not be empty, and the `completed` field, if specified, must be // false. - Task *Task `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` + Task *Task `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateTaskRequest) Reset() { *x = CreateTaskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateTaskRequest) String() string { @@ -568,7 +547,7 @@ func (*CreateTaskRequest) ProtoMessage() {} func (x *CreateTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -591,10 +570,7 @@ func (x *CreateTaskRequest) GetTask() *Task { } type UpdateTaskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The task to be updated. The `name` field is used to specify which task to // update. Only fields with non-default values will be updated, as long as // they are specified in `update_mask`. @@ -605,16 +581,16 @@ type UpdateTaskRequest struct { // A field mask of which fields to update. A nil or empty field mask will be // interpreted as updating all fields specified in `task`. Specifying a // single `*` means doing a full replacement of the task. - UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateTaskRequest) Reset() { *x = UpdateTaskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateTaskRequest) String() string { @@ -625,7 +601,7 @@ func (*UpdateTaskRequest) ProtoMessage() {} func (x *UpdateTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -655,10 +631,7 @@ func (x *UpdateTaskRequest) GetUpdateMask() *fieldmaskpb.FieldMask { } type DeleteTaskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: tasks/{task} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -666,16 +639,16 @@ type DeleteTaskRequest struct { // tasks, and `force` is omitted or set to false, the deletion will fail. If // `force` is set to true, the named task will be deleted along with all // child tasks in a recursive fashion. - Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteTaskRequest) Reset() { *x = DeleteTaskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteTaskRequest) String() string { @@ -686,7 +659,7 @@ func (*DeleteTaskRequest) ProtoMessage() {} func (x *DeleteTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -716,10 +689,7 @@ func (x *DeleteTaskRequest) GetForce() bool { } type UndeleteTaskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: tasks/{task} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -734,15 +704,15 @@ type UndeleteTaskRequest struct { // `undelete_descendants` or set it to false even if the named task has // deleted descendants. UndeleteDescendants bool `protobuf:"varint,3,opt,name=undelete_descendants,json=undeleteDescendants,proto3" json:"undelete_descendants,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UndeleteTaskRequest) Reset() { *x = UndeleteTaskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UndeleteTaskRequest) String() string { @@ -753,7 +723,7 @@ func (*UndeleteTaskRequest) ProtoMessage() {} func (x *UndeleteTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -790,10 +760,7 @@ func (x *UndeleteTaskRequest) GetUndeleteDescendants() bool { } type CompleteTaskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The task to complete. // Format: tasks/{task} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -802,16 +769,16 @@ type CompleteTaskRequest struct { // completion will fail. If `force` is set to true, the task will be // completed along with any uncompleted descendant tasks, direct or // transitive. - Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CompleteTaskRequest) Reset() { *x = CompleteTaskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CompleteTaskRequest) String() string { @@ -822,7 +789,7 @@ func (*CompleteTaskRequest) ProtoMessage() {} func (x *CompleteTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -852,10 +819,7 @@ func (x *CompleteTaskRequest) GetForce() bool { } type ModifyTaskLabelsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The task to modify labels for. // Format: tasks/{task} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -878,16 +842,16 @@ type ModifyTaskLabelsRequest struct { // is returned. // // Format: labels/{label} - RemoveLabels []string `protobuf:"bytes,3,rep,name=remove_labels,json=removeLabels,proto3" json:"remove_labels,omitempty"` + RemoveLabels []string `protobuf:"bytes,3,rep,name=remove_labels,json=removeLabels,proto3" json:"remove_labels,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ModifyTaskLabelsRequest) Reset() { *x = ModifyTaskLabelsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ModifyTaskLabelsRequest) String() string { @@ -898,7 +862,7 @@ func (*ModifyTaskLabelsRequest) ProtoMessage() {} func (x *ModifyTaskLabelsRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -935,10 +899,7 @@ func (x *ModifyTaskLabelsRequest) GetRemoveLabels() []string { } type UncompleteTaskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The task to uncomplete. // Format: tasks/{task} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -953,15 +914,15 @@ type UncompleteTaskRequest struct { // `undelete_descendants` or set it to false even if the task has // uncompleted descendants. UncompleteDescendants bool `protobuf:"varint,3,opt,name=uncomplete_descendants,json=uncompleteDescendants,proto3" json:"uncomplete_descendants,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UncompleteTaskRequest) Reset() { *x = UncompleteTaskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UncompleteTaskRequest) String() string { @@ -972,7 +933,7 @@ func (*UncompleteTaskRequest) ProtoMessage() {} func (x *UncompleteTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1009,22 +970,19 @@ func (x *UncompleteTaskRequest) GetUncompleteDescendants() bool { } type GetProjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: projects/{project} - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetProjectRequest) Reset() { *x = GetProjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetProjectRequest) String() string { @@ -1035,7 +993,7 @@ func (*GetProjectRequest) ProtoMessage() {} func (x *GetProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1058,22 +1016,19 @@ func (x *GetProjectRequest) GetName() string { } type CreateProjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The project to be created. The `name` field will be ignored. The `title` // field must not be empty. - Project *Project `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + Project *Project `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateProjectRequest) Reset() { *x = CreateProjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateProjectRequest) String() string { @@ -1084,7 +1039,7 @@ func (*CreateProjectRequest) ProtoMessage() {} func (x *CreateProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1107,10 +1062,7 @@ func (x *CreateProjectRequest) GetProject() *Project { } type ListProjectsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The standard page size. Optional. If unspecified, the server will choose // a suitable default. Values larger than 1000 will be truncated to 1000. PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` @@ -1118,16 +1070,16 @@ type ListProjectsRequest struct { // ListProjects. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // Whether soft deleted resources should be included in the response. - ShowDeleted bool `protobuf:"varint,3,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"` + ShowDeleted bool `protobuf:"varint,3,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListProjectsRequest) Reset() { *x = ListProjectsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListProjectsRequest) String() string { @@ -1138,7 +1090,7 @@ func (*ListProjectsRequest) ProtoMessage() {} func (x *ListProjectsRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1175,24 +1127,21 @@ func (x *ListProjectsRequest) GetShowDeleted() bool { } type ListProjectsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The projects. Projects []*Project `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` // The token required to get the next page in a subsequent call to // ListProjects. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListProjectsResponse) Reset() { *x = ListProjectsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListProjectsResponse) String() string { @@ -1203,7 +1152,7 @@ func (*ListProjectsResponse) ProtoMessage() {} func (x *ListProjectsResponse) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1233,10 +1182,7 @@ func (x *ListProjectsResponse) GetNextPageToken() string { } type UpdateProjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The project to be updated. The `name` field is used to specify which // project to update. Only fields with non-default values will be updated, // as long as they are specified in `update_mask`. @@ -1244,16 +1190,16 @@ type UpdateProjectRequest struct { // A field mask of which fields to update. A nil or empty field mask will be // interpreted as updating all fields specified in `project`. Specifying a // single `*` means doing a full replacement of the project. - UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateProjectRequest) Reset() { *x = UpdateProjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateProjectRequest) String() string { @@ -1264,7 +1210,7 @@ func (*UpdateProjectRequest) ProtoMessage() {} func (x *UpdateProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1294,22 +1240,19 @@ func (x *UpdateProjectRequest) GetUpdateMask() *fieldmaskpb.FieldMask { } type DeleteProjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: projects/{project} - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteProjectRequest) Reset() { *x = DeleteProjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteProjectRequest) String() string { @@ -1320,7 +1263,7 @@ func (*DeleteProjectRequest) ProtoMessage() {} func (x *DeleteProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1343,22 +1286,19 @@ func (x *DeleteProjectRequest) GetName() string { } type UndeleteProjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: projects/{project} - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UndeleteProjectRequest) Reset() { *x = UndeleteProjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UndeleteProjectRequest) String() string { @@ -1369,7 +1309,7 @@ func (*UndeleteProjectRequest) ProtoMessage() {} func (x *UndeleteProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1392,22 +1332,19 @@ func (x *UndeleteProjectRequest) GetName() string { } type ArchiveProjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: projects/{project} - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ArchiveProjectRequest) Reset() { *x = ArchiveProjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArchiveProjectRequest) String() string { @@ -1418,7 +1355,7 @@ func (*ArchiveProjectRequest) ProtoMessage() {} func (x *ArchiveProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1441,22 +1378,19 @@ func (x *ArchiveProjectRequest) GetName() string { } type UnarchiveProjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: projects/{project} - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UnarchiveProjectRequest) Reset() { *x = UnarchiveProjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UnarchiveProjectRequest) String() string { @@ -1467,7 +1401,7 @@ func (*UnarchiveProjectRequest) ProtoMessage() {} func (x *UnarchiveProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1490,22 +1424,19 @@ func (x *UnarchiveProjectRequest) GetName() string { } type GetLabelRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: labels/{label} - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetLabelRequest) Reset() { *x = GetLabelRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetLabelRequest) String() string { @@ -1516,7 +1447,7 @@ func (*GetLabelRequest) ProtoMessage() {} func (x *GetLabelRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1539,22 +1470,19 @@ func (x *GetLabelRequest) GetName() string { } type CreateLabelRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The label to be created. The `name` field will be ignored. The `label` // field must not be empty. - Label *Label `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Label *Label `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateLabelRequest) Reset() { *x = CreateLabelRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateLabelRequest) String() string { @@ -1565,7 +1493,7 @@ func (*CreateLabelRequest) ProtoMessage() {} func (x *CreateLabelRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1588,25 +1516,22 @@ func (x *CreateLabelRequest) GetLabel() *Label { } type ListLabelsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The standard page size. Optional. If unspecified, the server will choose // a suitable default. Values larger than 1000 will be truncated to 1000. PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // The standard page token. Optional. Get the values from responses to // ListLabels. - PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListLabelsRequest) Reset() { *x = ListLabelsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListLabelsRequest) String() string { @@ -1617,7 +1542,7 @@ func (*ListLabelsRequest) ProtoMessage() {} func (x *ListLabelsRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1647,24 +1572,21 @@ func (x *ListLabelsRequest) GetPageToken() string { } type ListLabelsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The labels. Labels []*Label `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty"` // The token required to get the next page in a subsequent call to // ListLabels. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListLabelsResponse) Reset() { *x = ListLabelsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListLabelsResponse) String() string { @@ -1675,7 +1597,7 @@ func (*ListLabelsResponse) ProtoMessage() {} func (x *ListLabelsResponse) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1705,10 +1627,7 @@ func (x *ListLabelsResponse) GetNextPageToken() string { } type UpdateLabelRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The label to be updated. The `name` field is used to specify which // label to update. Only fields with non-default values will be updated, // as long as they are specified in `update_mask`. @@ -1716,16 +1635,16 @@ type UpdateLabelRequest struct { // A field mask of which fields to update. A nil or empty field mask will be // interpreted as updating all fields specified in `label`. Specifying a // single `*` means doing a full replacement of the label. - UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateLabelRequest) Reset() { *x = UpdateLabelRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateLabelRequest) String() string { @@ -1736,7 +1655,7 @@ func (*UpdateLabelRequest) ProtoMessage() {} func (x *UpdateLabelRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1766,22 +1685,19 @@ func (x *UpdateLabelRequest) GetUpdateMask() *fieldmaskpb.FieldMask { } type DeleteLabelRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name. // Format: labels/{label} - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteLabelRequest) Reset() { *x = DeleteLabelRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tasks_tasks_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tasks_tasks_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteLabelRequest) String() string { @@ -1792,7 +1708,7 @@ func (*DeleteLabelRequest) ProtoMessage() {} func (x *DeleteLabelRequest) ProtoReflect() protoreflect.Message { mi := &file_tasks_tasks_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1816,342 +1732,197 @@ func (x *DeleteLabelRequest) GetName() string { var File_tasks_tasks_proto protoreflect.FileDescriptor -var file_tasks_tasks_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb7, 0x03, 0x0a, 0x04, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, - 0x3f, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, - 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x22, 0x88, 0x03, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0xab, 0x01, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x24, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x5e, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, - 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x05, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x34, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x74, - 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x71, 0x0a, 0x11, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x74, 0x61, - 0x73, 0x6b, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, - 0x3d, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x8b, - 0x01, 0x0a, 0x13, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x75, 0x6e, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x75, 0x6e, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x44, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x73, 0x22, 0x3f, 0x0a, 0x13, - 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x71, 0x0a, - 0x17, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x61, 0x64, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x61, 0x64, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x22, 0x95, 0x01, 0x0a, 0x15, 0x55, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, - 0x0a, 0x14, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x75, 0x6e, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x73, 0x12, 0x35, 0x0a, 0x16, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, - 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x15, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x73, 0x22, 0x27, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x40, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x22, 0x74, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x68, - 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x6a, 0x0a, 0x14, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x2a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x26, 0x0a, - 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7d, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, - 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x2a, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x2c, 0x0a, 0x16, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2b, - 0x0a, 0x15, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x17, 0x55, - 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x38, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x4f, 0x0a, 0x11, 0x4c, - 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x62, 0x0a, 0x12, - 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x24, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x22, 0x75, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x28, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x32, 0xad, 0x0a, 0x0a, 0x05, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x47, - 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x15, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0b, 0x2e, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3e, 0x0a, 0x09, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x0b, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, - 0x33, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x18, 0x2e, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0b, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x33, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x12, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0b, 0x2e, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x37, 0x0a, 0x0c, 0x55, 0x6e, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1a, 0x2e, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0b, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x54, 0x61, - 0x73, 0x6b, 0x12, 0x37, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x12, 0x1a, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0b, - 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3b, 0x0a, 0x0e, 0x55, - 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x2e, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x55, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0b, 0x2e, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3f, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x69, - 0x66, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1e, 0x2e, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0b, 0x2e, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, 0x0a, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x0e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x12, 0x47, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x12, 0x1a, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x2e, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3c, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x2e, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x40, 0x0a, 0x0f, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, - 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3e, 0x0a, 0x0e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x42, 0x0a, 0x10, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x2e, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x47, 0x65, - 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x16, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, - 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x41, 0x0a, 0x0a, - 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x18, 0x2e, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x36, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x19, - 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x36, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x0c, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, - 0x40, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x19, - 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x42, 0x22, 0x5a, 0x20, 0x67, 0x6f, 0x2e, 0x73, 0x61, 0x73, 0x65, 0x72, 0x2e, 0x73, 0x65, - 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x67, 0x6f, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_tasks_tasks_proto_rawDesc = "" + + "\n" + + "\x11tasks/tasks.proto\x12\x05tasks\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb7\x03\n" + + "\x04Task\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n" + + "\x06parent\x18\x02 \x01(\tR\x06parent\x12\x14\n" + + "\x05title\x18\x03 \x01(\tR\x05title\x12 \n" + + "\vdescription\x18\x04 \x01(\tR\vdescription\x12\x16\n" + + "\x06labels\x18\x05 \x03(\tR\x06labels\x12?\n" + + "\rcomplete_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\fcompleteTime\x12;\n" + + "\vcreate_time\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "createTime\x12;\n" + + "\vupdate_time\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "updateTime\x12;\n" + + "\vdelete_time\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "deleteTime\x12;\n" + + "\vexpire_time\x18\n" + + " \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "expireTime\"\x88\x03\n" + + "\aProject\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\x12;\n" + + "\vcreate_time\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "createTime\x12;\n" + + "\vupdate_time\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "updateTime\x12;\n" + + "\vdelete_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "deleteTime\x12;\n" + + "\vexpire_time\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "expireTime\x12=\n" + + "\farchive_time\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\varchiveTime\"\xab\x01\n" + + "\x05Label\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05label\x18\x02 \x01(\tR\x05label\x12;\n" + + "\vcreate_time\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "createTime\x12;\n" + + "\vupdate_time\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "updateTime\"$\n" + + "\x0eGetTaskRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"q\n" + + "\x10ListTasksRequest\x12\x1b\n" + + "\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\x1d\n" + + "\n" + + "page_token\x18\x02 \x01(\tR\tpageToken\x12!\n" + + "\fshow_deleted\x18\x03 \x01(\bR\vshowDeleted\"^\n" + + "\x11ListTasksResponse\x12!\n" + + "\x05tasks\x18\x01 \x03(\v2\v.tasks.TaskR\x05tasks\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"4\n" + + "\x11CreateTaskRequest\x12\x1f\n" + + "\x04task\x18\x01 \x01(\v2\v.tasks.TaskR\x04task\"q\n" + + "\x11UpdateTaskRequest\x12\x1f\n" + + "\x04task\x18\x01 \x01(\v2\v.tasks.TaskR\x04task\x12;\n" + + "\vupdate_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskR\n" + + "updateMask\"=\n" + + "\x11DeleteTaskRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05force\x18\x02 \x01(\bR\x05force\"\x8b\x01\n" + + "\x13UndeleteTaskRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12-\n" + + "\x12undelete_ancestors\x18\x02 \x01(\bR\x11undeleteAncestors\x121\n" + + "\x14undelete_descendants\x18\x03 \x01(\bR\x13undeleteDescendants\"?\n" + + "\x13CompleteTaskRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05force\x18\x02 \x01(\bR\x05force\"q\n" + + "\x17ModifyTaskLabelsRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x1d\n" + + "\n" + + "add_labels\x18\x02 \x03(\tR\taddLabels\x12#\n" + + "\rremove_labels\x18\x03 \x03(\tR\fremoveLabels\"\x95\x01\n" + + "\x15UncompleteTaskRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x121\n" + + "\x14uncomplete_ancestors\x18\x02 \x01(\bR\x13uncompleteAncestors\x125\n" + + "\x16uncomplete_descendants\x18\x03 \x01(\bR\x15uncompleteDescendants\"'\n" + + "\x11GetProjectRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"@\n" + + "\x14CreateProjectRequest\x12(\n" + + "\aproject\x18\x01 \x01(\v2\x0e.tasks.ProjectR\aproject\"t\n" + + "\x13ListProjectsRequest\x12\x1b\n" + + "\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\x1d\n" + + "\n" + + "page_token\x18\x02 \x01(\tR\tpageToken\x12!\n" + + "\fshow_deleted\x18\x03 \x01(\bR\vshowDeleted\"j\n" + + "\x14ListProjectsResponse\x12*\n" + + "\bprojects\x18\x01 \x03(\v2\x0e.tasks.ProjectR\bprojects\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"}\n" + + "\x14UpdateProjectRequest\x12(\n" + + "\aproject\x18\x01 \x01(\v2\x0e.tasks.ProjectR\aproject\x12;\n" + + "\vupdate_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskR\n" + + "updateMask\"*\n" + + "\x14DeleteProjectRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\",\n" + + "\x16UndeleteProjectRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"+\n" + + "\x15ArchiveProjectRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"-\n" + + "\x17UnarchiveProjectRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"%\n" + + "\x0fGetLabelRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"8\n" + + "\x12CreateLabelRequest\x12\"\n" + + "\x05label\x18\x01 \x01(\v2\f.tasks.LabelR\x05label\"O\n" + + "\x11ListLabelsRequest\x12\x1b\n" + + "\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\x1d\n" + + "\n" + + "page_token\x18\x02 \x01(\tR\tpageToken\"b\n" + + "\x12ListLabelsResponse\x12$\n" + + "\x06labels\x18\x01 \x03(\v2\f.tasks.LabelR\x06labels\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"u\n" + + "\x12UpdateLabelRequest\x12\"\n" + + "\x05label\x18\x01 \x01(\v2\f.tasks.LabelR\x05label\x12;\n" + + "\vupdate_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskR\n" + + "updateMask\"(\n" + + "\x12DeleteLabelRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name2\xad\n" + + "\n" + + "\x05Tasks\x12-\n" + + "\aGetTask\x12\x15.tasks.GetTaskRequest\x1a\v.tasks.Task\x12>\n" + + "\tListTasks\x12\x17.tasks.ListTasksRequest\x1a\x18.tasks.ListTasksResponse\x123\n" + + "\n" + + "CreateTask\x12\x18.tasks.CreateTaskRequest\x1a\v.tasks.Task\x123\n" + + "\n" + + "UpdateTask\x12\x18.tasks.UpdateTaskRequest\x1a\v.tasks.Task\x123\n" + + "\n" + + "DeleteTask\x12\x18.tasks.DeleteTaskRequest\x1a\v.tasks.Task\x127\n" + + "\fUndeleteTask\x12\x1a.tasks.UndeleteTaskRequest\x1a\v.tasks.Task\x127\n" + + "\fCompleteTask\x12\x1a.tasks.CompleteTaskRequest\x1a\v.tasks.Task\x12;\n" + + "\x0eUncompleteTask\x12\x1c.tasks.UncompleteTaskRequest\x1a\v.tasks.Task\x12?\n" + + "\x10ModifyTaskLabels\x12\x1e.tasks.ModifyTaskLabelsRequest\x1a\v.tasks.Task\x126\n" + + "\n" + + "GetProject\x12\x18.tasks.GetProjectRequest\x1a\x0e.tasks.Project\x12G\n" + + "\fListProjects\x12\x1a.tasks.ListProjectsRequest\x1a\x1b.tasks.ListProjectsResponse\x12<\n" + + "\rCreateProject\x12\x1b.tasks.CreateProjectRequest\x1a\x0e.tasks.Project\x12<\n" + + "\rUpdateProject\x12\x1b.tasks.UpdateProjectRequest\x1a\x0e.tasks.Project\x12<\n" + + "\rDeleteProject\x12\x1b.tasks.DeleteProjectRequest\x1a\x0e.tasks.Project\x12@\n" + + "\x0fUndeleteProject\x12\x1d.tasks.UndeleteProjectRequest\x1a\x0e.tasks.Project\x12>\n" + + "\x0eArchiveProject\x12\x1c.tasks.ArchiveProjectRequest\x1a\x0e.tasks.Project\x12B\n" + + "\x10UnarchiveProject\x12\x1e.tasks.UnarchiveProjectRequest\x1a\x0e.tasks.Project\x120\n" + + "\bGetLabel\x12\x16.tasks.GetLabelRequest\x1a\f.tasks.Label\x12A\n" + + "\n" + + "ListLabels\x12\x18.tasks.ListLabelsRequest\x1a\x19.tasks.ListLabelsResponse\x126\n" + + "\vCreateLabel\x12\x19.tasks.CreateLabelRequest\x1a\f.tasks.Label\x126\n" + + "\vUpdateLabel\x12\x19.tasks.UpdateLabelRequest\x1a\f.tasks.Label\x12@\n" + + "\vDeleteLabel\x12\x19.tasks.DeleteLabelRequest\x1a\x16.google.protobuf.EmptyB\"Z go.saser.se/tasks/tasks_go_protob\x06proto3" var ( file_tasks_tasks_proto_rawDescOnce sync.Once - file_tasks_tasks_proto_rawDescData = file_tasks_tasks_proto_rawDesc + file_tasks_tasks_proto_rawDescData []byte ) func file_tasks_tasks_proto_rawDescGZIP() []byte { file_tasks_tasks_proto_rawDescOnce.Do(func() { - file_tasks_tasks_proto_rawDescData = protoimpl.X.CompressGZIP(file_tasks_tasks_proto_rawDescData) + file_tasks_tasks_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_tasks_tasks_proto_rawDesc), len(file_tasks_tasks_proto_rawDesc))) }) return file_tasks_tasks_proto_rawDescData } -var ( - file_tasks_tasks_proto_msgTypes = make([]protoimpl.MessageInfo, 28) - file_tasks_tasks_proto_goTypes = []interface{}{ - (*Task)(nil), // 0: tasks.Task - (*Project)(nil), // 1: tasks.Project - (*Label)(nil), // 2: tasks.Label - (*GetTaskRequest)(nil), // 3: tasks.GetTaskRequest - (*ListTasksRequest)(nil), // 4: tasks.ListTasksRequest - (*ListTasksResponse)(nil), // 5: tasks.ListTasksResponse - (*CreateTaskRequest)(nil), // 6: tasks.CreateTaskRequest - (*UpdateTaskRequest)(nil), // 7: tasks.UpdateTaskRequest - (*DeleteTaskRequest)(nil), // 8: tasks.DeleteTaskRequest - (*UndeleteTaskRequest)(nil), // 9: tasks.UndeleteTaskRequest - (*CompleteTaskRequest)(nil), // 10: tasks.CompleteTaskRequest - (*ModifyTaskLabelsRequest)(nil), // 11: tasks.ModifyTaskLabelsRequest - (*UncompleteTaskRequest)(nil), // 12: tasks.UncompleteTaskRequest - (*GetProjectRequest)(nil), // 13: tasks.GetProjectRequest - (*CreateProjectRequest)(nil), // 14: tasks.CreateProjectRequest - (*ListProjectsRequest)(nil), // 15: tasks.ListProjectsRequest - (*ListProjectsResponse)(nil), // 16: tasks.ListProjectsResponse - (*UpdateProjectRequest)(nil), // 17: tasks.UpdateProjectRequest - (*DeleteProjectRequest)(nil), // 18: tasks.DeleteProjectRequest - (*UndeleteProjectRequest)(nil), // 19: tasks.UndeleteProjectRequest - (*ArchiveProjectRequest)(nil), // 20: tasks.ArchiveProjectRequest - (*UnarchiveProjectRequest)(nil), // 21: tasks.UnarchiveProjectRequest - (*GetLabelRequest)(nil), // 22: tasks.GetLabelRequest - (*CreateLabelRequest)(nil), // 23: tasks.CreateLabelRequest - (*ListLabelsRequest)(nil), // 24: tasks.ListLabelsRequest - (*ListLabelsResponse)(nil), // 25: tasks.ListLabelsResponse - (*UpdateLabelRequest)(nil), // 26: tasks.UpdateLabelRequest - (*DeleteLabelRequest)(nil), // 27: tasks.DeleteLabelRequest - (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp - (*fieldmaskpb.FieldMask)(nil), // 29: google.protobuf.FieldMask - (*emptypb.Empty)(nil), // 30: google.protobuf.Empty - } -) - +var file_tasks_tasks_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_tasks_tasks_proto_goTypes = []any{ + (*Task)(nil), // 0: tasks.Task + (*Project)(nil), // 1: tasks.Project + (*Label)(nil), // 2: tasks.Label + (*GetTaskRequest)(nil), // 3: tasks.GetTaskRequest + (*ListTasksRequest)(nil), // 4: tasks.ListTasksRequest + (*ListTasksResponse)(nil), // 5: tasks.ListTasksResponse + (*CreateTaskRequest)(nil), // 6: tasks.CreateTaskRequest + (*UpdateTaskRequest)(nil), // 7: tasks.UpdateTaskRequest + (*DeleteTaskRequest)(nil), // 8: tasks.DeleteTaskRequest + (*UndeleteTaskRequest)(nil), // 9: tasks.UndeleteTaskRequest + (*CompleteTaskRequest)(nil), // 10: tasks.CompleteTaskRequest + (*ModifyTaskLabelsRequest)(nil), // 11: tasks.ModifyTaskLabelsRequest + (*UncompleteTaskRequest)(nil), // 12: tasks.UncompleteTaskRequest + (*GetProjectRequest)(nil), // 13: tasks.GetProjectRequest + (*CreateProjectRequest)(nil), // 14: tasks.CreateProjectRequest + (*ListProjectsRequest)(nil), // 15: tasks.ListProjectsRequest + (*ListProjectsResponse)(nil), // 16: tasks.ListProjectsResponse + (*UpdateProjectRequest)(nil), // 17: tasks.UpdateProjectRequest + (*DeleteProjectRequest)(nil), // 18: tasks.DeleteProjectRequest + (*UndeleteProjectRequest)(nil), // 19: tasks.UndeleteProjectRequest + (*ArchiveProjectRequest)(nil), // 20: tasks.ArchiveProjectRequest + (*UnarchiveProjectRequest)(nil), // 21: tasks.UnarchiveProjectRequest + (*GetLabelRequest)(nil), // 22: tasks.GetLabelRequest + (*CreateLabelRequest)(nil), // 23: tasks.CreateLabelRequest + (*ListLabelsRequest)(nil), // 24: tasks.ListLabelsRequest + (*ListLabelsResponse)(nil), // 25: tasks.ListLabelsResponse + (*UpdateLabelRequest)(nil), // 26: tasks.UpdateLabelRequest + (*DeleteLabelRequest)(nil), // 27: tasks.DeleteLabelRequest + (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 29: google.protobuf.FieldMask + (*emptypb.Empty)(nil), // 30: google.protobuf.Empty +} var file_tasks_tasks_proto_depIdxs = []int32{ 28, // 0: tasks.Task.complete_time:type_name -> google.protobuf.Timestamp 28, // 1: tasks.Task.create_time:type_name -> google.protobuf.Timestamp @@ -2233,349 +2004,11 @@ func file_tasks_tasks_proto_init() { if File_tasks_tasks_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_tasks_tasks_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Task); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Label); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTaskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListTasksRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListTasksResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateTaskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateTaskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteTaskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UndeleteTaskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CompleteTaskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ModifyTaskLabelsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UncompleteTaskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProjectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateProjectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListProjectsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListProjectsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateProjectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteProjectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UndeleteProjectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArchiveProjectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnarchiveProjectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetLabelRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateLabelRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListLabelsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListLabelsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateLabelRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tasks_tasks_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteLabelRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_tasks_tasks_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_tasks_tasks_proto_rawDesc), len(file_tasks_tasks_proto_rawDesc)), NumEnums: 0, NumMessages: 28, NumExtensions: 0, @@ -2586,7 +2019,6 @@ func file_tasks_tasks_proto_init() { MessageInfos: file_tasks_tasks_proto_msgTypes, }.Build() File_tasks_tasks_proto = out.File - file_tasks_tasks_proto_rawDesc = nil file_tasks_tasks_proto_goTypes = nil file_tasks_tasks_proto_depIdxs = nil } diff --git a/tasks/tasks_go_proto/tasks_grpc.pb.go b/tasks/tasks_go_proto/tasks_grpc.pb.go index 9dcd8b3..924a76f 100644 --- a/tasks/tasks_go_proto/tasks_grpc.pb.go +++ b/tasks/tasks_go_proto/tasks_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 +// - protoc-gen-go-grpc v1.5.1 // - protoc v3.21.1 // source: tasks/tasks.proto @@ -8,7 +8,6 @@ package tasks_go_proto import ( context "context" - grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -17,8 +16,33 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Tasks_GetTask_FullMethodName = "/tasks.Tasks/GetTask" + Tasks_ListTasks_FullMethodName = "/tasks.Tasks/ListTasks" + Tasks_CreateTask_FullMethodName = "/tasks.Tasks/CreateTask" + Tasks_UpdateTask_FullMethodName = "/tasks.Tasks/UpdateTask" + Tasks_DeleteTask_FullMethodName = "/tasks.Tasks/DeleteTask" + Tasks_UndeleteTask_FullMethodName = "/tasks.Tasks/UndeleteTask" + Tasks_CompleteTask_FullMethodName = "/tasks.Tasks/CompleteTask" + Tasks_UncompleteTask_FullMethodName = "/tasks.Tasks/UncompleteTask" + Tasks_ModifyTaskLabels_FullMethodName = "/tasks.Tasks/ModifyTaskLabels" + Tasks_GetProject_FullMethodName = "/tasks.Tasks/GetProject" + Tasks_ListProjects_FullMethodName = "/tasks.Tasks/ListProjects" + Tasks_CreateProject_FullMethodName = "/tasks.Tasks/CreateProject" + Tasks_UpdateProject_FullMethodName = "/tasks.Tasks/UpdateProject" + Tasks_DeleteProject_FullMethodName = "/tasks.Tasks/DeleteProject" + Tasks_UndeleteProject_FullMethodName = "/tasks.Tasks/UndeleteProject" + Tasks_ArchiveProject_FullMethodName = "/tasks.Tasks/ArchiveProject" + Tasks_UnarchiveProject_FullMethodName = "/tasks.Tasks/UnarchiveProject" + Tasks_GetLabel_FullMethodName = "/tasks.Tasks/GetLabel" + Tasks_ListLabels_FullMethodName = "/tasks.Tasks/ListLabels" + Tasks_CreateLabel_FullMethodName = "/tasks.Tasks/CreateLabel" + Tasks_UpdateLabel_FullMethodName = "/tasks.Tasks/UpdateLabel" + Tasks_DeleteLabel_FullMethodName = "/tasks.Tasks/DeleteLabel" +) // TasksClient is the client API for Tasks service. // @@ -83,8 +107,9 @@ func NewTasksClient(cc grpc.ClientConnInterface) TasksClient { } func (c *tasksClient) GetTask(ctx context.Context, in *GetTaskRequest, opts ...grpc.CallOption) (*Task, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Task) - err := c.cc.Invoke(ctx, "/tasks.Tasks/GetTask", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_GetTask_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -92,8 +117,9 @@ func (c *tasksClient) GetTask(ctx context.Context, in *GetTaskRequest, opts ...g } func (c *tasksClient) ListTasks(ctx context.Context, in *ListTasksRequest, opts ...grpc.CallOption) (*ListTasksResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListTasksResponse) - err := c.cc.Invoke(ctx, "/tasks.Tasks/ListTasks", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_ListTasks_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -101,8 +127,9 @@ func (c *tasksClient) ListTasks(ctx context.Context, in *ListTasksRequest, opts } func (c *tasksClient) CreateTask(ctx context.Context, in *CreateTaskRequest, opts ...grpc.CallOption) (*Task, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Task) - err := c.cc.Invoke(ctx, "/tasks.Tasks/CreateTask", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_CreateTask_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -110,8 +137,9 @@ func (c *tasksClient) CreateTask(ctx context.Context, in *CreateTaskRequest, opt } func (c *tasksClient) UpdateTask(ctx context.Context, in *UpdateTaskRequest, opts ...grpc.CallOption) (*Task, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Task) - err := c.cc.Invoke(ctx, "/tasks.Tasks/UpdateTask", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_UpdateTask_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -119,8 +147,9 @@ func (c *tasksClient) UpdateTask(ctx context.Context, in *UpdateTaskRequest, opt } func (c *tasksClient) DeleteTask(ctx context.Context, in *DeleteTaskRequest, opts ...grpc.CallOption) (*Task, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Task) - err := c.cc.Invoke(ctx, "/tasks.Tasks/DeleteTask", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_DeleteTask_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -128,8 +157,9 @@ func (c *tasksClient) DeleteTask(ctx context.Context, in *DeleteTaskRequest, opt } func (c *tasksClient) UndeleteTask(ctx context.Context, in *UndeleteTaskRequest, opts ...grpc.CallOption) (*Task, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Task) - err := c.cc.Invoke(ctx, "/tasks.Tasks/UndeleteTask", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_UndeleteTask_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -137,8 +167,9 @@ func (c *tasksClient) UndeleteTask(ctx context.Context, in *UndeleteTaskRequest, } func (c *tasksClient) CompleteTask(ctx context.Context, in *CompleteTaskRequest, opts ...grpc.CallOption) (*Task, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Task) - err := c.cc.Invoke(ctx, "/tasks.Tasks/CompleteTask", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_CompleteTask_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -146,8 +177,9 @@ func (c *tasksClient) CompleteTask(ctx context.Context, in *CompleteTaskRequest, } func (c *tasksClient) UncompleteTask(ctx context.Context, in *UncompleteTaskRequest, opts ...grpc.CallOption) (*Task, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Task) - err := c.cc.Invoke(ctx, "/tasks.Tasks/UncompleteTask", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_UncompleteTask_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -155,8 +187,9 @@ func (c *tasksClient) UncompleteTask(ctx context.Context, in *UncompleteTaskRequ } func (c *tasksClient) ModifyTaskLabels(ctx context.Context, in *ModifyTaskLabelsRequest, opts ...grpc.CallOption) (*Task, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Task) - err := c.cc.Invoke(ctx, "/tasks.Tasks/ModifyTaskLabels", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_ModifyTaskLabels_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -164,8 +197,9 @@ func (c *tasksClient) ModifyTaskLabels(ctx context.Context, in *ModifyTaskLabels } func (c *tasksClient) GetProject(ctx context.Context, in *GetProjectRequest, opts ...grpc.CallOption) (*Project, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Project) - err := c.cc.Invoke(ctx, "/tasks.Tasks/GetProject", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_GetProject_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -173,8 +207,9 @@ func (c *tasksClient) GetProject(ctx context.Context, in *GetProjectRequest, opt } func (c *tasksClient) ListProjects(ctx context.Context, in *ListProjectsRequest, opts ...grpc.CallOption) (*ListProjectsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListProjectsResponse) - err := c.cc.Invoke(ctx, "/tasks.Tasks/ListProjects", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_ListProjects_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -182,8 +217,9 @@ func (c *tasksClient) ListProjects(ctx context.Context, in *ListProjectsRequest, } func (c *tasksClient) CreateProject(ctx context.Context, in *CreateProjectRequest, opts ...grpc.CallOption) (*Project, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Project) - err := c.cc.Invoke(ctx, "/tasks.Tasks/CreateProject", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_CreateProject_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -191,8 +227,9 @@ func (c *tasksClient) CreateProject(ctx context.Context, in *CreateProjectReques } func (c *tasksClient) UpdateProject(ctx context.Context, in *UpdateProjectRequest, opts ...grpc.CallOption) (*Project, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Project) - err := c.cc.Invoke(ctx, "/tasks.Tasks/UpdateProject", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_UpdateProject_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -200,8 +237,9 @@ func (c *tasksClient) UpdateProject(ctx context.Context, in *UpdateProjectReques } func (c *tasksClient) DeleteProject(ctx context.Context, in *DeleteProjectRequest, opts ...grpc.CallOption) (*Project, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Project) - err := c.cc.Invoke(ctx, "/tasks.Tasks/DeleteProject", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_DeleteProject_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -209,8 +247,9 @@ func (c *tasksClient) DeleteProject(ctx context.Context, in *DeleteProjectReques } func (c *tasksClient) UndeleteProject(ctx context.Context, in *UndeleteProjectRequest, opts ...grpc.CallOption) (*Project, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Project) - err := c.cc.Invoke(ctx, "/tasks.Tasks/UndeleteProject", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_UndeleteProject_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -218,8 +257,9 @@ func (c *tasksClient) UndeleteProject(ctx context.Context, in *UndeleteProjectRe } func (c *tasksClient) ArchiveProject(ctx context.Context, in *ArchiveProjectRequest, opts ...grpc.CallOption) (*Project, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Project) - err := c.cc.Invoke(ctx, "/tasks.Tasks/ArchiveProject", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_ArchiveProject_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -227,8 +267,9 @@ func (c *tasksClient) ArchiveProject(ctx context.Context, in *ArchiveProjectRequ } func (c *tasksClient) UnarchiveProject(ctx context.Context, in *UnarchiveProjectRequest, opts ...grpc.CallOption) (*Project, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Project) - err := c.cc.Invoke(ctx, "/tasks.Tasks/UnarchiveProject", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_UnarchiveProject_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -236,8 +277,9 @@ func (c *tasksClient) UnarchiveProject(ctx context.Context, in *UnarchiveProject } func (c *tasksClient) GetLabel(ctx context.Context, in *GetLabelRequest, opts ...grpc.CallOption) (*Label, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Label) - err := c.cc.Invoke(ctx, "/tasks.Tasks/GetLabel", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_GetLabel_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -245,8 +287,9 @@ func (c *tasksClient) GetLabel(ctx context.Context, in *GetLabelRequest, opts .. } func (c *tasksClient) ListLabels(ctx context.Context, in *ListLabelsRequest, opts ...grpc.CallOption) (*ListLabelsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListLabelsResponse) - err := c.cc.Invoke(ctx, "/tasks.Tasks/ListLabels", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_ListLabels_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -254,8 +297,9 @@ func (c *tasksClient) ListLabels(ctx context.Context, in *ListLabelsRequest, opt } func (c *tasksClient) CreateLabel(ctx context.Context, in *CreateLabelRequest, opts ...grpc.CallOption) (*Label, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Label) - err := c.cc.Invoke(ctx, "/tasks.Tasks/CreateLabel", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_CreateLabel_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -263,8 +307,9 @@ func (c *tasksClient) CreateLabel(ctx context.Context, in *CreateLabelRequest, o } func (c *tasksClient) UpdateLabel(ctx context.Context, in *UpdateLabelRequest, opts ...grpc.CallOption) (*Label, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Label) - err := c.cc.Invoke(ctx, "/tasks.Tasks/UpdateLabel", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_UpdateLabel_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -272,8 +317,9 @@ func (c *tasksClient) UpdateLabel(ctx context.Context, in *UpdateLabelRequest, o } func (c *tasksClient) DeleteLabel(ctx context.Context, in *DeleteLabelRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/tasks.Tasks/DeleteLabel", in, out, opts...) + err := c.cc.Invoke(ctx, Tasks_DeleteLabel_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -282,7 +328,7 @@ func (c *tasksClient) DeleteLabel(ctx context.Context, in *DeleteLabelRequest, o // TasksServer is the server API for Tasks service. // All implementations must embed UnimplementedTasksServer -// for forward compatibility +// for forward compatibility. type TasksServer interface { // Get a single task by name. GetTask(context.Context, *GetTaskRequest) (*Task, error) @@ -335,97 +381,81 @@ type TasksServer interface { mustEmbedUnimplementedTasksServer() } -// UnimplementedTasksServer must be embedded to have forward compatible implementations. +// UnimplementedTasksServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. type UnimplementedTasksServer struct{} func (UnimplementedTasksServer) GetTask(context.Context, *GetTaskRequest) (*Task, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTask not implemented") } - func (UnimplementedTasksServer) ListTasks(context.Context, *ListTasksRequest) (*ListTasksResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListTasks not implemented") } - func (UnimplementedTasksServer) CreateTask(context.Context, *CreateTaskRequest) (*Task, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateTask not implemented") } - func (UnimplementedTasksServer) UpdateTask(context.Context, *UpdateTaskRequest) (*Task, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateTask not implemented") } - func (UnimplementedTasksServer) DeleteTask(context.Context, *DeleteTaskRequest) (*Task, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteTask not implemented") } - func (UnimplementedTasksServer) UndeleteTask(context.Context, *UndeleteTaskRequest) (*Task, error) { return nil, status.Errorf(codes.Unimplemented, "method UndeleteTask not implemented") } - func (UnimplementedTasksServer) CompleteTask(context.Context, *CompleteTaskRequest) (*Task, error) { return nil, status.Errorf(codes.Unimplemented, "method CompleteTask not implemented") } - func (UnimplementedTasksServer) UncompleteTask(context.Context, *UncompleteTaskRequest) (*Task, error) { return nil, status.Errorf(codes.Unimplemented, "method UncompleteTask not implemented") } - func (UnimplementedTasksServer) ModifyTaskLabels(context.Context, *ModifyTaskLabelsRequest) (*Task, error) { return nil, status.Errorf(codes.Unimplemented, "method ModifyTaskLabels not implemented") } - func (UnimplementedTasksServer) GetProject(context.Context, *GetProjectRequest) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method GetProject not implemented") } - func (UnimplementedTasksServer) ListProjects(context.Context, *ListProjectsRequest) (*ListProjectsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListProjects not implemented") } - func (UnimplementedTasksServer) CreateProject(context.Context, *CreateProjectRequest) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateProject not implemented") } - func (UnimplementedTasksServer) UpdateProject(context.Context, *UpdateProjectRequest) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateProject not implemented") } - func (UnimplementedTasksServer) DeleteProject(context.Context, *DeleteProjectRequest) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteProject not implemented") } - func (UnimplementedTasksServer) UndeleteProject(context.Context, *UndeleteProjectRequest) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method UndeleteProject not implemented") } - func (UnimplementedTasksServer) ArchiveProject(context.Context, *ArchiveProjectRequest) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method ArchiveProject not implemented") } - func (UnimplementedTasksServer) UnarchiveProject(context.Context, *UnarchiveProjectRequest) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method UnarchiveProject not implemented") } - func (UnimplementedTasksServer) GetLabel(context.Context, *GetLabelRequest) (*Label, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLabel not implemented") } - func (UnimplementedTasksServer) ListLabels(context.Context, *ListLabelsRequest) (*ListLabelsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListLabels not implemented") } - func (UnimplementedTasksServer) CreateLabel(context.Context, *CreateLabelRequest) (*Label, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateLabel not implemented") } - func (UnimplementedTasksServer) UpdateLabel(context.Context, *UpdateLabelRequest) (*Label, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateLabel not implemented") } - func (UnimplementedTasksServer) DeleteLabel(context.Context, *DeleteLabelRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteLabel not implemented") } func (UnimplementedTasksServer) mustEmbedUnimplementedTasksServer() {} +func (UnimplementedTasksServer) testEmbeddedByValue() {} // UnsafeTasksServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to TasksServer will @@ -435,6 +465,13 @@ type UnsafeTasksServer interface { } func RegisterTasksServer(s grpc.ServiceRegistrar, srv TasksServer) { + // If the following call pancis, it indicates UnimplementedTasksServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&Tasks_ServiceDesc, srv) } @@ -448,7 +485,7 @@ func _Tasks_GetTask_Handler(srv interface{}, ctx context.Context, dec func(inter } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/GetTask", + FullMethod: Tasks_GetTask_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).GetTask(ctx, req.(*GetTaskRequest)) @@ -466,7 +503,7 @@ func _Tasks_ListTasks_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/ListTasks", + FullMethod: Tasks_ListTasks_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).ListTasks(ctx, req.(*ListTasksRequest)) @@ -484,7 +521,7 @@ func _Tasks_CreateTask_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/CreateTask", + FullMethod: Tasks_CreateTask_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).CreateTask(ctx, req.(*CreateTaskRequest)) @@ -502,7 +539,7 @@ func _Tasks_UpdateTask_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/UpdateTask", + FullMethod: Tasks_UpdateTask_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).UpdateTask(ctx, req.(*UpdateTaskRequest)) @@ -520,7 +557,7 @@ func _Tasks_DeleteTask_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/DeleteTask", + FullMethod: Tasks_DeleteTask_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).DeleteTask(ctx, req.(*DeleteTaskRequest)) @@ -538,7 +575,7 @@ func _Tasks_UndeleteTask_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/UndeleteTask", + FullMethod: Tasks_UndeleteTask_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).UndeleteTask(ctx, req.(*UndeleteTaskRequest)) @@ -556,7 +593,7 @@ func _Tasks_CompleteTask_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/CompleteTask", + FullMethod: Tasks_CompleteTask_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).CompleteTask(ctx, req.(*CompleteTaskRequest)) @@ -574,7 +611,7 @@ func _Tasks_UncompleteTask_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/UncompleteTask", + FullMethod: Tasks_UncompleteTask_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).UncompleteTask(ctx, req.(*UncompleteTaskRequest)) @@ -592,7 +629,7 @@ func _Tasks_ModifyTaskLabels_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/ModifyTaskLabels", + FullMethod: Tasks_ModifyTaskLabels_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).ModifyTaskLabels(ctx, req.(*ModifyTaskLabelsRequest)) @@ -610,7 +647,7 @@ func _Tasks_GetProject_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/GetProject", + FullMethod: Tasks_GetProject_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).GetProject(ctx, req.(*GetProjectRequest)) @@ -628,7 +665,7 @@ func _Tasks_ListProjects_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/ListProjects", + FullMethod: Tasks_ListProjects_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).ListProjects(ctx, req.(*ListProjectsRequest)) @@ -646,7 +683,7 @@ func _Tasks_CreateProject_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/CreateProject", + FullMethod: Tasks_CreateProject_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).CreateProject(ctx, req.(*CreateProjectRequest)) @@ -664,7 +701,7 @@ func _Tasks_UpdateProject_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/UpdateProject", + FullMethod: Tasks_UpdateProject_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).UpdateProject(ctx, req.(*UpdateProjectRequest)) @@ -682,7 +719,7 @@ func _Tasks_DeleteProject_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/DeleteProject", + FullMethod: Tasks_DeleteProject_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).DeleteProject(ctx, req.(*DeleteProjectRequest)) @@ -700,7 +737,7 @@ func _Tasks_UndeleteProject_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/UndeleteProject", + FullMethod: Tasks_UndeleteProject_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).UndeleteProject(ctx, req.(*UndeleteProjectRequest)) @@ -718,7 +755,7 @@ func _Tasks_ArchiveProject_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/ArchiveProject", + FullMethod: Tasks_ArchiveProject_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).ArchiveProject(ctx, req.(*ArchiveProjectRequest)) @@ -736,7 +773,7 @@ func _Tasks_UnarchiveProject_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/UnarchiveProject", + FullMethod: Tasks_UnarchiveProject_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).UnarchiveProject(ctx, req.(*UnarchiveProjectRequest)) @@ -754,7 +791,7 @@ func _Tasks_GetLabel_Handler(srv interface{}, ctx context.Context, dec func(inte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/GetLabel", + FullMethod: Tasks_GetLabel_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).GetLabel(ctx, req.(*GetLabelRequest)) @@ -772,7 +809,7 @@ func _Tasks_ListLabels_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/ListLabels", + FullMethod: Tasks_ListLabels_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).ListLabels(ctx, req.(*ListLabelsRequest)) @@ -790,7 +827,7 @@ func _Tasks_CreateLabel_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/CreateLabel", + FullMethod: Tasks_CreateLabel_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).CreateLabel(ctx, req.(*CreateLabelRequest)) @@ -808,7 +845,7 @@ func _Tasks_UpdateLabel_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/UpdateLabel", + FullMethod: Tasks_UpdateLabel_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).UpdateLabel(ctx, req.(*UpdateLabelRequest)) @@ -826,7 +863,7 @@ func _Tasks_DeleteLabel_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tasks.Tasks/DeleteLabel", + FullMethod: Tasks_DeleteLabel_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TasksServer).DeleteLabel(ctx, req.(*DeleteLabelRequest)) diff --git a/tasks/testsuite/BUILD.bazel b/tasks/testsuite/BUILD.bazel index b079704..1016225 100644 --- a/tasks/testsuite/BUILD.bazel +++ b/tasks/testsuite/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@rules_go//go:def.bzl", "go_library") go_library( name = "testsuite", diff --git a/testing/echo/BUILD.bazel b/testing/echo/BUILD.bazel index 46ac429..c07ba3c 100644 --- a/testing/echo/BUILD.bazel +++ b/testing/echo/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@rules_go//go:def.bzl", "go_library") go_library( name = "echo", diff --git a/testing/echo_go_proto/BUILD.bazel b/testing/echo_go_proto/BUILD.bazel index 84fbc0b..ff2c8c6 100644 --- a/testing/echo_go_proto/BUILD.bazel +++ b/testing/echo_go_proto/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@rules_go//go:def.bzl", "go_library") go_library( name = "echo_go_proto", diff --git a/testing/echo_go_proto/echo.pb.go b/testing/echo_go_proto/echo.pb.go index e764fcf..7acb569 100644 --- a/testing/echo_go_proto/echo.pb.go +++ b/testing/echo_go_proto/echo.pb.go @@ -1,17 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 +// protoc-gen-go v1.36.8 // protoc v3.21.1 // source: testing/echo.proto package echo_go_proto import ( - reflect "reflect" - sync "sync" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" ) const ( @@ -22,21 +22,18 @@ const ( ) type EchoRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The message. Optional. - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EchoRequest) Reset() { *x = EchoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_testing_echo_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_testing_echo_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EchoRequest) String() string { @@ -47,7 +44,7 @@ func (*EchoRequest) ProtoMessage() {} func (x *EchoRequest) ProtoReflect() protoreflect.Message { mi := &file_testing_echo_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -70,21 +67,18 @@ func (x *EchoRequest) GetMessage() string { } type EchoResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The message given in the request. - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EchoResponse) Reset() { *x = EchoResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_testing_echo_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_testing_echo_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EchoResponse) String() string { @@ -95,7 +89,7 @@ func (*EchoResponse) ProtoMessage() {} func (x *EchoResponse) ProtoReflect() protoreflect.Message { mi := &file_testing_echo_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -119,43 +113,33 @@ func (x *EchoResponse) GetMessage() string { var File_testing_echo_proto protoreflect.FileDescriptor -var file_testing_echo_proto_rawDesc = []byte{ - 0x0a, 0x12, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x65, 0x63, 0x68, 0x6f, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x27, 0x0a, - 0x0b, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x28, 0x0a, 0x0c, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x32, 0x3b, 0x0a, 0x04, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x33, 0x0a, 0x04, 0x45, 0x63, 0x68, 0x6f, - 0x12, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x23, 0x5a, - 0x21, 0x67, 0x6f, 0x2e, 0x73, 0x61, 0x73, 0x65, 0x72, 0x2e, 0x73, 0x65, 0x2f, 0x74, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x67, 0x6f, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_testing_echo_proto_rawDesc = "" + + "\n" + + "\x12testing/echo.proto\x12\atesting\"'\n" + + "\vEchoRequest\x12\x18\n" + + "\amessage\x18\x01 \x01(\tR\amessage\"(\n" + + "\fEchoResponse\x12\x18\n" + + "\amessage\x18\x01 \x01(\tR\amessage2;\n" + + "\x04Echo\x123\n" + + "\x04Echo\x12\x14.testing.EchoRequest\x1a\x15.testing.EchoResponseB#Z!go.saser.se/testing/echo_go_protob\x06proto3" var ( file_testing_echo_proto_rawDescOnce sync.Once - file_testing_echo_proto_rawDescData = file_testing_echo_proto_rawDesc + file_testing_echo_proto_rawDescData []byte ) func file_testing_echo_proto_rawDescGZIP() []byte { file_testing_echo_proto_rawDescOnce.Do(func() { - file_testing_echo_proto_rawDescData = protoimpl.X.CompressGZIP(file_testing_echo_proto_rawDescData) + file_testing_echo_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_testing_echo_proto_rawDesc), len(file_testing_echo_proto_rawDesc))) }) return file_testing_echo_proto_rawDescData } -var ( - file_testing_echo_proto_msgTypes = make([]protoimpl.MessageInfo, 2) - file_testing_echo_proto_goTypes = []interface{}{ - (*EchoRequest)(nil), // 0: testing.EchoRequest - (*EchoResponse)(nil), // 1: testing.EchoResponse - } -) - +var file_testing_echo_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_testing_echo_proto_goTypes = []any{ + (*EchoRequest)(nil), // 0: testing.EchoRequest + (*EchoResponse)(nil), // 1: testing.EchoResponse +} var file_testing_echo_proto_depIdxs = []int32{ 0, // 0: testing.Echo.Echo:input_type -> testing.EchoRequest 1, // 1: testing.Echo.Echo:output_type -> testing.EchoResponse @@ -171,37 +155,11 @@ func file_testing_echo_proto_init() { if File_testing_echo_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_testing_echo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EchoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_testing_echo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EchoResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_testing_echo_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_testing_echo_proto_rawDesc), len(file_testing_echo_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, @@ -212,7 +170,6 @@ func file_testing_echo_proto_init() { MessageInfos: file_testing_echo_proto_msgTypes, }.Build() File_testing_echo_proto = out.File - file_testing_echo_proto_rawDesc = nil file_testing_echo_proto_goTypes = nil file_testing_echo_proto_depIdxs = nil } diff --git a/testing/echo_go_proto/echo_grpc.pb.go b/testing/echo_go_proto/echo_grpc.pb.go index ba950f6..bec43f3 100644 --- a/testing/echo_go_proto/echo_grpc.pb.go +++ b/testing/echo_go_proto/echo_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 +// - protoc-gen-go-grpc v1.5.1 // - protoc v3.21.1 // source: testing/echo.proto @@ -8,7 +8,6 @@ package echo_go_proto import ( context "context" - grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -16,12 +15,19 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Echo_Echo_FullMethodName = "/testing.Echo/Echo" +) // EchoClient is the client API for Echo service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// The Echo service is a simple service intended to be used in various testing +// scenarios where an arbitrary gRPC service is needed. type EchoClient interface { // Echo takes in a message and returns that same message. Echo(ctx context.Context, in *EchoRequest, opts ...grpc.CallOption) (*EchoResponse, error) @@ -36,8 +42,9 @@ func NewEchoClient(cc grpc.ClientConnInterface) EchoClient { } func (c *echoClient) Echo(ctx context.Context, in *EchoRequest, opts ...grpc.CallOption) (*EchoResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(EchoResponse) - err := c.cc.Invoke(ctx, "/testing.Echo/Echo", in, out, opts...) + err := c.cc.Invoke(ctx, Echo_Echo_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -46,20 +53,28 @@ func (c *echoClient) Echo(ctx context.Context, in *EchoRequest, opts ...grpc.Cal // EchoServer is the server API for Echo service. // All implementations must embed UnimplementedEchoServer -// for forward compatibility +// for forward compatibility. +// +// The Echo service is a simple service intended to be used in various testing +// scenarios where an arbitrary gRPC service is needed. type EchoServer interface { // Echo takes in a message and returns that same message. Echo(context.Context, *EchoRequest) (*EchoResponse, error) mustEmbedUnimplementedEchoServer() } -// UnimplementedEchoServer must be embedded to have forward compatible implementations. +// UnimplementedEchoServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. type UnimplementedEchoServer struct{} func (UnimplementedEchoServer) Echo(context.Context, *EchoRequest) (*EchoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Echo not implemented") } func (UnimplementedEchoServer) mustEmbedUnimplementedEchoServer() {} +func (UnimplementedEchoServer) testEmbeddedByValue() {} // UnsafeEchoServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to EchoServer will @@ -69,6 +84,13 @@ type UnsafeEchoServer interface { } func RegisterEchoServer(s grpc.ServiceRegistrar, srv EchoServer) { + // If the following call pancis, it indicates UnimplementedEchoServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&Echo_ServiceDesc, srv) } @@ -82,7 +104,7 @@ func _Echo_Echo_Handler(srv interface{}, ctx context.Context, dec func(interface } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/testing.Echo/Echo", + FullMethod: Echo_Echo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EchoServer).Echo(ctx, req.(*EchoRequest)) diff --git a/testing/tls/BUILD.bazel b/testing/tls/BUILD.bazel index c20e992..4b488e3 100644 --- a/testing/tls/BUILD.bazel +++ b/testing/tls/BUILD.bazel @@ -12,6 +12,6 @@ genrule( '--cert_out="$(location test_cert.pem)"', '--key_out="$(location test_key.pem)"', ]), - exec_tools = ["//testing/tls/generate_certificate"], + tools = ["//testing/tls/generate_certificate"], visibility = ["//visibility:public"], ) diff --git a/testing/tls/generate_certificate/BUILD.bazel b/testing/tls/generate_certificate/BUILD.bazel index 07658ab..826345a 100644 --- a/testing/tls/generate_certificate/BUILD.bazel +++ b/testing/tls/generate_certificate/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") +load("@rules_go//go:def.bzl", "go_binary", "go_library") go_library( name = "generate_certificate_lib", diff --git a/tools.go b/tools.go index 9d05bfd..75b6f2d 100644 --- a/tools.go +++ b/tools.go @@ -4,7 +4,6 @@ package tools import ( - _ "github.com/bazelbuild/bazelisk" _ "github.com/bazelbuild/buildtools/buildifier" _ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" _ "google.golang.org/protobuf/cmd/protoc-gen-go" diff --git a/tools.mk b/tools.mk index 75cc6ed..87f9b67 100644 --- a/tools.mk +++ b/tools.mk @@ -11,10 +11,10 @@ $(tools): # go: the Go toolchain. # NOTE: this is only installed to be used to install other tools. The Go # toolchain used for actually building stuff is pulled down via Bazel and -# specified in the WORKSPACE file. +# specified in the go.mod file. # -# The version must be kept in sync with the WORKSPACE file. -go_version := 1.20.2 +# The version must be kept in sync with the go.mod file. +go_version := 1.25.0 go_archive := $(tools)/go_$(go_version).tar.gz $(go_archive): | $(tools) curl \ @@ -38,14 +38,6 @@ $(go_dir): $(go_archive) go := $(go_dir)/bin/go $(go): $(go_dir) -# bazelisk: a script to run Bazel with a given version. -bazelisk := $(tools)/bazelisk -$(bazelisk): go.mod $(go) | $(tools) - $(go) \ - build \ - -o='$@' \ - github.com/bazelbuild/bazelisk - # buildifier: a formatter and linter for BUILD.bazel files. buildifier := $(tools)/buildifier $(buildifier): go.mod $(go) | $(tools)