Skip to content

v0.41.0

Compare
Choose a tag to compare
@linzhp linzhp released this 10 Jul 21:54
58534a2

What's Changed

Starting this release, rules_go no longer ship with @go_googleapis repo. Together with Gazelle v0.32.0, it means that all Go code importing generated code from Google APIs will depend on @org_golang_google_genproto, which is resolved by Go modules. For proto files importing Google APIs proto and generating Go code, users need to:

  1. Add an http_archive rule to download Google APIs, e.g.,
http_archive(
    name = "googleapis",
    sha256 = "9d1a930e767c93c825398b8f8692eca3fe353b9aaadedfbcf1fca2282c85df88",
    strip_prefix = "googleapis-64926d52febbf298cb82a8f472ade4a3969ba922",
    urls = [
        "https://github.com/googleapis/googleapis/archive/64926d52febbf298cb82a8f472ade4a3969ba922.zip",
    ],
)

load("@googleapis//:repository_rules.bzl", "switched_rules_by_language")

switched_rules_by_language(
    name = "com_google_googleapis_imports",
)

Note that the version of Google APIs archive needs to be compatible with the pre-generated code in @org_golang_google_genproto.

  1. Resolve the proto manually. If Gazelle is being used, directives like the following need to be added to a parent directory of the proto files:
# gazelle:resolve proto proto google/rpc/status.proto @googleapis//google/rpc:status_proto
# gazelle:resolve proto go google/rpc/status.proto  @org_golang_google_genproto//googleapis/rpc/status
# gazelle:resolve proto google/longrunning/operations.proto @googleapis//google/longrunning:operations_proto
# gazelle:resolve proto go google/longrunning/operations.proto @org_golang_google_genproto//googleapis/longrunning

Other changes included in this release

  • detect_sdk_version: Support 1.21's new VERSION file format by @evanj in #3600
  • stdlib: Do not pass -static to cgo by @zecke in #3593
  • Expand stdlib packages when queried by @JamyDev in #3606
  • Fix stdlib file outputs pointing to processwrapper by @JamyDev in #3608
  • Fix go_sdk extension failure for unnamed root module by @fmeum in #3612
  • Adding Uber's hermetic cc toolchain for tests by @linzhp in #3609
  • Implement functionality to skip tests via TESTBRIDGE_TEST_ONLY env by @yushan26 in #3618

Full Changelog: v0.40.1...v0.41.0

WORKSPACE code

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "io_bazel_rules_go",
    sha256 = "278b7ff5a826f3dc10f04feaf0b70d48b68748ccd512d7f98bf442077f043fe3",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.41.0/rules_go-v0.41.0.zip",
        "https://github.com/bazelbuild/rules_go/releases/download/v0.41.0/rules_go-v0.41.0.zip",
    ],
)

load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")

go_rules_dependencies()

go_register_toolchains(version = "1.20.5")