Releases: bazelbuild/rules_go
v0.35.0
What's Changed
- Add platform contraints for GOAMD64 by @fmeum in #3251
- bzlmod: Fix after breaking change to go_deps.module by @fmeum in #3254
- bzlmod: Check in io_bazel_rules_go -> rules_go patch for tests by @fmeum in #3262
- Export support files needed for using Go's WebAssembly (WASM) output. by @ralimi in #3266
- Add support for --@io_bazel_rules_go//go/toolchain:sdk_version flag. by @JamesMBartlett in #3260
- Add support for
go_binary
to gopackagesdriver. by @DrewMonroe in #3271 - migrating to rbe_preconfig by @aranguyen in #3272
- Add
go_cross_binary
rule for cross-compilation. by @JamesMBartlett in #3261 - delete duplicate return by @Abirdcfly in #3267
- bzlmod: Use repo_name attribute on module instead of patches by @fmeum in #3279
- Fix non_executable_test to work with
@//
labels by @Wyverald in #3281 - bzlmod: Bump version to 0.34.0 by @fmeum in #3280
- bzlmod: Add support for
go_proto_library
by @fmeum in #3283 - Bumping minimal Bazel version to 5.1.0 by @linzhp in #3286
- Getting architecture from JRE by @linzhp in #3282
- Collect coverage for other languages by @fmeum in #3287
New Contributors
- @ralimi made their first contribution in #3266
- @JamesMBartlett made their first contribution in #3260
- @DrewMonroe made their first contribution in #3271
- @aranguyen made their first contribution in #3272
- @Abirdcfly made their first contribution in #3267
Full Changelog: v0.34.0...v0.35.0
WORKSPACE
code
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "099a9fb96a376ccbbb7d291ed4ecbdfd42f6bc822ab77ae6f1b5cb9e914e94fa",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(version = "1.19.1")
v0.34.0
What's Changed
- releaser: fix scrubbing timestamp from patch files by @sluongng in #3180
- Replace Starlark JSON parser with json.decode by @fmeum in #3184
- gopackagesdriver: separates "s" files in pkg info by @iamricard in #3165
- Refactor away references to @io_bazel_rules_go by @fmeum in #3185
- Do not print to stderr if cgo linking succeeds after retry by @fmeum in #3187
- Use param files with go-protoc by @fmeum in #3190
- Don't include non-executable go_binary in dependent's runfiles by @fmeum in #3151
- Link in native libraries of transitive dependencies in archive mode by @fmeum in #3186
- runfiles: remove deprecated api by @sluongng in #3198
- Fix failing open hermeticity test by @fmeum in #3206
- Fix go_googleapis Gazelle patch by @nickgooding in #3193
- Exclude unsupported C/C++ features by @fmeum in #3189
- Allow gomock to take Bazel common attributes by @linzhp in #3207
- Transition on edges not self by @illicitonion in #3116
- Include go_transition_test in bazel aspect by @ian-h-chamberlain in #3160
- Add an example for go_download_sdk.sdks by @fishy in #3139
- tests: nogo over generated code by @sluongng in #3214
- test nogo/coverage: test generated code by @sluongng in #3213
- Remove references to go_transition_test by @linzhp in #3215
- Basic bzlmod setup by @fmeum in #3047
- Run BCR tests against Bazel 6.0.0-pre.20220608.2 by @fmeum in #3223
- Use repo-relative labels in MODULE.bazel by @fmeum in #3226
- upkeep: upgrade to go 1.18.3 and gazelle v0.26.0 by @sluongng in #3220
- nogo: ignore generated source files by @sluongng in #3216
- asm: Pass package path with -p by @fmeum in #3231
- bzlmod: Add support for gomock by @fmeum in #3232
- test cgo: ensure helper script works by @sluongng in #3236
- Fix //tests/legacy/examples/cgo:cgo_lib_test on M1 Macs by @fmeum in #3237
- gopackagesdriver: Descend into go_proto_compiler's deps by @fmeum in #3240
- new_library: remove unused resolver by @sluongng in #3219
- nogo: instantiate type info for generic types when running under Go >=1.18 by @farhaven in #3212
New Contributors
- @iamricard made their first contribution in #3165
- @ian-h-chamberlain made their first contribution in #3160
- @fishy made their first contribution in #3139
- @farhaven made their first contribution in #3212
Full Changelog: v0.33.0...v0.34.0
WORKSPACE
code
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "16e9fca53ed6bd4ff4ad76facc9b7b651a89db1689a2877d6fd7b82aa824e366",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.34.0/rules_go-v0.34.0.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.34.0/rules_go-v0.34.0.zip",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(version = "1.18.4")
v0.33.0
Breaking changes
- cover has been removed in v0.32.0. Please leave a comment if you are affected by this.
Deprecations
- The asm, compile, and pack action generators provided by go_context are deprecated and planned for removal in version v0.36.0. Please leave a comment on the tracking bug if archive and link are not suitable replacements for your use cases.
Bug Fixes
- @sluongng fixed a race condition that could cause non-sandboxed builds of
go_test
targets to fail (#3145) - @abhinav made
//go:embed
work withgo_path
(#3163) - @xytan0056 made gopackagesdriver work with Go 1.18 (#3157)
- @nickgooding ensured that
gomock
can be used with any Gazelle naming convention (#3155) go_library
targets using CGo can now reference unresolved symbols (#3174)
Thanks to all of the contributors!
Compatibility
The minimum required version of Bazel remains at 4.2.1.
Updated dependencies
- Updated
org_golang_x_sys
,org_golang_x_xerrors
,org_golang_google_genproto
,go_googleapis
to their most recent commit as of 2022-06-05
As always, you can use higher versions of rules_go's dependencies by declaring them in WORKSPACE before calling go_rules_dependencies. Lower versions may work but are not supported.
WORKSPACE
code
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "685052b498b6ddfe562ca7a97736741d87916fe536623afb7da2824c0211c369",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.33.0/rules_go-v0.33.0.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.33.0/rules_go-v0.33.0.zip",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(version = "1.18.3")
v0.32.0
This release brings many exciting changes
New features
gomock
rule is officially supported in rules_go (doc), replacing the original jmhodges/bazel_gomock repository. Thanks to @jmhodges for the original implementation.- rules_go now generates coverage reports in LCOV format by default (#3117), to be compatible with Bazel's
--combined_report=lcov
. To generate reports in the oldgo tool cover
format, please use--//go/config:cover_format=go_cover
. Thanks to @fmeum @abhinav - supporting windows/arm64 (#3072). Thanks to @nsait-linaro
- nogo config can now takes analyzer_flags (#3082), thanks to @navneethjayendran
Bug fixes
- Consider volatile and stable status files separately (#3079) Thanks to @siddharthab
- Reducing duplicate information passed by go_pkg_info_aspect (#3111)
- Fix include paths for CGo deps in external repositories (#3115) thanks to @fmeum
- Revert change to use resolved shared lib links (#2907), thanks to @glukasiknuro
- Fix lost x_defs on test execution (#3135), thanks to @bozaro
- Let go_binary's executable bit depend on linkmode (#3143) thanks to @fmeum
Deprecations
go_embed_data
and bindata
will be deprecated in rules_go 0.35.0. Users are encourage to migrate to go:embed
and embedsrcs
.
Other changes
- Use output dir for empty packages to be hermetic (#3098), thanks to @joeljeske
- Prevent downgrading platforms (#3076), thanks to @cpsauer
- Doc improvements (#3100), thanks to @sluongng
- Remove legacy proto code for Bazel < 0.21 (#3099), thanks to @cpsauer
- Remove unused coverage code (#3118), thanks to @fmeum
- Moving tests for go_embed_data and gomock to tests/extras (#3122)
- Add command line copts/cxxopts to Cgo compile flags (#3126), thanks to @dchen496
- Reset Go settings for protoc dependencies (#3005), thanks to @fmeum
- Trim transitioned Go settings on non-Go dependencies (#3108), thanks to @fmeum
Updated dependencies
As always, you can use higher versions of rules_go's dependencies by declaring
them in WORKSPACE before calling go_rules_dependencies. Lower versions may
work but are not supported.
org_golang_google_protobuf
updated to v1.28.0org_golang_x_sys
,org_golang_x_xerrors
,org_golang_google_genproto
andgo_googleapis
updated tomaster
, as of 2022-05-09
WORKSPACE
code
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "ab21448cef298740765f33a7f5acee0607203e4ea321219f2a4c85a6e0fb0a27",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.32.0/rules_go-v0.32.0.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.32.0/rules_go-v0.32.0.zip",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(version = "1.18.2")
v0.31.0
This is a maintenance release to support Bazel 5.0. No new feature was added since last release.
Changes
- Add support for bazel 5.0.0 (#3068). Thanks to @moisesvega
- Update documents (#3057, #3067). Thanks to @bcspragu and @jeongukjae
- BUILD file clean up. Thanks to @JamyDev
- symlink everything under lib/ when using local SDK (#3074). Thanks to @irfansharif
Updated dependencies
As always, you can use higher versions of rules_go's dependencies by declaring
them in WORKSPACE before calling go_rules_dependencies. Lower versions may
work but are not supported.
platforms
updated to 0.0.5 as of 2022-03-14.bazel_skylib
updated to 1.2.1 as of 2022-03-14.org_golang_x_tools
updated to v0.1.9 as of 2022-03-14.org_golang_x_sys
updated tomaster
as of 2022-03-14.org_golang_google_genproto
updated tomain
as of 2022-03-14.go_googleapis
updated tomaster
as of 2022-03-14.
Thanks @moisesvega for updating the dependencies and preparing the release notes.
WORKSPACE
code
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "f2dcd210c7095febe54b804bb1cd3a58fe8435a909db2ec04e31542631cf715c",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.31.0/rules_go-v0.31.0.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.31.0/rules_go-v0.31.0.zip",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(version = "1.18")
v0.30.0
Changes
-
Add first class support for GOOS=ios (#3013)
-
Always include debug symbols with -c dbg (#3029)
Previously, debugging a go_test target was only possible with an explicit --@io_bazel_rules_go//go/config:debug.
-
go_test: Add env attribute (#3004)
This allows setting environment variables before static initialisers run, and which reference expanded locations.
-
tests/core/cgo: do not assume test is being run from main repo (#2956)
-
reproducibility_test: explicitly build the go_sdk builder (#3026)
-
map bazel's --test_runner_fail_fast to go's -failfast (#3058)
Bug Fixes
- Emit correct header in CGo c-archive (#2874)
- Append path into trimpath if option already exists (#2994)
- Fixed issue with
go_bazel_test
rule on Windows (#3036) - Skipping linker flag for versioned dylib on Darwin (#2989)
- Trim absolute paths in files generated by cgo (#3011)
- builders/cover: register coverage without changing line numbers (#2993)
- cover: use Z instead of underscore for variable name separator (#2995)
- .bazelci/presubmit.yml: remove old flag (#3023)
- builders/gentestmain: register correct cover mode in the coverage report file when enabling race mode (#3019)
- -fsanitize-ignorelist should have an absolute path (#3001)
- internal changes: #2942, #2987, #2988, #2992, #3000, #3035, #3038, #3046
Thanks to all of the contributors
Compatibility
- Bazel 4.2.1 or higher is now required. The previous minimum version
was 4.2.0.
Updated dependencies
As always, you can use higher versions of rules_go's dependencies by declaring
them in WORKSPACE before calling go_rules_dependencies. Lower versions may
work but are not supported.
org_golang_x_tools
updated tov0.1.8
(#3031)org_golang_x_sys
updated tomaster
as of 2022-01-24.org_golang_google_genproto
updated tomaster
as of 2022-01-24.go_googleapis
updated tomaster
as of 2022-01-24.
WORKSPACE
code
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "d6b2513456fe2229811da7eb67a444be7785f5323c6708b38d851d2b51e54d83",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.30.0/rules_go-v0.30.0.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.30.0/rules_go-v0.30.0.zip",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(version = "1.17.6")
v0.29.0
Changes
-
nogo analyzers may now depend on
go_library
rules (#2922).This is a major upgrade to nogo usability that enables the use of
the popular staticcheck tool, via
https://github.com/sluongng/staticcheck-codegen.This requires an update to Gazelle v0.24
Many thanks to @thomas-wk
-
Editor / IDE integration (gopackagesdriver) now supports automatic target detection (#2932).
No user input is required after the
GOPACKAGESDRIVER
setup.
This effectively deprecates the following environment variables:GOPACKAGESDRIVER_BAZEL_TARGETS
GOPACKAGESDRIVER_BAZEL_QUERY
GOPACKAGESDRIVER_BAZEL_TAG_FILTERS
Many thanks to @steeve for his ongoing development of gopackagesdriver
-
The rules_cc dependency has been removed (#2950).
-
rules_go tool builds are now reproducible (#2952).
Thanks to all of the contributors.
Compatibility
- Bazel 4.2.0 or higher is now required. The previous minimum version
was 4.0.0.
Updated dependencies
As always, you can use higher versions of rules_go's dependencies by declaring
them in WORKSPACE before calling go_rules_dependencies
. Lower versions may
work but are not supported.
bazel_skylib
updated tov1.1.1
org_golang_x_tools
updated tov0.1.7
org_golang_x_sys
updated tomaster
as of 2021-10-06.org_golang_google_genproto
updated tomaster
as of 2021-10-06.go_googleapis
updated tomaster
as of 2021-10-06.
WORKSPACE
code
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "2b1641428dff9018f9e85c0384f03ec6c10660d935b750e3fa1492a281a53b0f",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.29.0/rules_go-v0.29.0.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.29.0/rules_go-v0.29.0.zip",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(version = "1.17.1")
http_archive(
name = "bazel_gazelle",
sha256 = "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
],
)
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()
v0.28.0
Changes
- Experimental editor / IDE integration added in the form of a
gopackagesdriver tool that reports information about the Bazel workspace
to gopls (or any other tool based ongolang.org/x/tools/go/packages
).
See the Editor setup
on the wiki for information and setup instructions. Huge thanks to @steeve
for shipping this. - Target platform may be automatically inferred from
--crosstool_top
and
--cpu
for iOS and Android platforms that still require these flags.
Again, thanks to @steeve. go_proto_library
no longer implicitly depends on APIv1 Well Known Type
packages. Since protoc 3.14, the Well Known Types declare APIv2 package paths,
which means generated code that imports them will import APIv2 packages,
so the APIv1 dependencies are unnecessary.
Compatibility
- Bazel 4.0.0 (LTS) or higher is now required. The previous minimum version
was 3.5.0.
Updated dependencies
As always, you can use higher versions of rules_go's dependencies by declaring
them in WORKSPACE before calling go_rules_dependencies
. Lower versions may
work but are not supported.
org_golang_x_tools
updated tov0.1.4
org_golang_x_sys
updated tomaster
as of 2021-06-30.rules_cc
updated tomain
as of 2021-06-30.org_golang_google_protobuf
updated tov1.27.1
.org_github_golang_protobuf
updated tov1.5.2
.org_golang_google_genproto
updated tomaster
as of 2021-06-30.go_googleapis
updated tomaster
as of 2021-06-30.
WORKSPACE
code
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "8e968b5fcea1d2d64071872b12737bbb5514524ee5f0a4f54f5920266c261acb",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.28.0/rules_go-v0.28.0.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.28.0/rules_go-v0.28.0.zip",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(version = "1.16.5")
v0.27.0
Updated dependencies
This release updates golang.org/x/tools
, which was mistakenly not updated in v0.26.0. Additionally, the latest version of golang.org/x/tools
requires golang.org/x/sys/execabs
, so that module is added as a new dependency.
As always, you can use higher versions of rules_go's dependencies by declaring them in WORKSPACE before calling go_rules_dependencies
. Lower versions may work but are not supported.
org_golang_x_tools
is updated tov0.1.0
.org_golang_x_sys
is added atmaster
as of 2021-03-17.
WORKSPACE
code
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "69de5c704a05ff37862f7e0f5534d4f479418afc21806c887db544a316f3cb6b",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz",
"https://github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(version = "1.16.2")
v0.24.14
New Go versions
Go 1.16.2, 1.16.1, 1.15.10, and 1.15.9 are now supported.
WORKSPACE code
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "e0015762cdeb5a2a9c48f96fb079c6a98e001d44ec23ad4fa2ca27208c5be4fb",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.24.14/rules_go-v0.24.14.tar.gz",
"https://github.com/bazelbuild/rules_go/releases/download/v0.24.14/rules_go-v0.24.14.tar.gz",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains()