rules_nixpkgs icon indicating copy to clipboard operation
rules_nixpkgs copied to clipboard

chore(deps): update dependency rules_go to v0.55.1

Open renovate[bot] opened this issue 1 year ago • 4 comments

This PR contains the following updates:

Package Type Update Change
rules_go bazel_dep minor 0.50.1 -> 0.55.1

[!WARNING] Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

bazelbuild/rules_go (rules_go)

v0.55.1

This includes:

WORKSPACE code

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

http_archive(
    name = "io_bazel_rules_go",
    sha256 = "9d72f7b8904128afb98d46bbef82ad7223ec9ff3718d419afb355fddd9f9484a",
    urls = [
        "https://mirror.bazel.build/github.com/bazel-contrib/rules_go/releases/download/v0.55.1/rules_go-v0.55.1.zip",
        "https://github.com/bazel-contrib/rules_go/releases/download/v0.55.1/rules_go-v0.55.1.zip",
    ],
)

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

go_rules_dependencies()

go_register_toolchains(version = "1.24.4")

v0.55.0

WORKSPACE code

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

http_archive(
    name = "io_bazel_rules_go",
    sha256 = "c6cf9da6668ac84c470c43cbfccb8fdc844ead2b5a8b918e2816d44f2986f644",
    urls = [
        "https://mirror.bazel.build/github.com/bazel-contrib/rules_go/releases/download/v0.55.0/rules_go-v0.55.0.zip",
        "https://github.com/bazel-contrib/rules_go/releases/download/v0.55.0/rules_go-v0.55.0.zip",
    ],
)

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

go_rules_dependencies()

go_register_toolchains(version = "1.24.3")

What's Changed

New Contributors

Full Changelog: https://github.com/bazel-contrib/rules_go/compare/v0.54.1...v0.55.0

v0.54.1

This release include two bug fixes:

WORKSPACE code

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

http_archive(
    name = "io_bazel_rules_go",
    sha256 = "130739704540caa14e77c54810b9f01d6d9ae897d53eedceb40fd6b75efc3c23",
    urls = [
        "https://mirror.bazel.build/github.com/bazel-contrib/rules_go/releases/download/v0.54.1/rules_go-v0.54.1.zip",
        "https://github.com/bazel-contrib/rules_go/releases/download/v0.54.1/rules_go-v0.54.1.zip",
    ],
)

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

go_rules_dependencies()

go_register_toolchains(version = "1.24.3")

Full Changelog: https://github.com/bazel-contrib/rules_go/compare/v0.54.0...v0.54.1

v0.54.0

WORKSPACE code

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

http_archive(
    name = "io_bazel_rules_go",
    sha256 = "f2d15bea3e241aa0e3a90fb17a82e6a8ab12214789f6aeddd53b8d04316d2b7c",
    urls = [
        "https://mirror.bazel.build/github.com/bazel-contrib/rules_go/releases/download/v0.54.0/rules_go-v0.54.0.zip",
        "https://github.com/bazel-contrib/rules_go/releases/download/v0.54.0/rules_go-v0.54.0.zip",
    ],
)

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

go_rules_dependencies()

go_register_toolchains(version = "1.24.2")

What's Changed

New Contributors

Full Changelog: https://github.com/bazel-contrib/rules_go/compare/v0.53.0...v0.54.0

v0.53.0

WORKSPACE code

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

http_archive(
    name = "io_bazel_rules_go",
    sha256 = "b78f77458e77162f45b4564d6b20b6f92f56431ed59eaaab09e7819d1d850313",
    urls = [
        "https://mirror.bazel.build/github.com/bazel-contrib/rules_go/releases/download/v0.53.0/rules_go-v0.53.0.zip",
        "https://github.com/bazel-contrib/rules_go/releases/download/v0.53.0/rules_go-v0.53.0.zip",
    ],
)

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

go_rules_dependencies()

go_register_toolchains(version = "1.24.0")

What's Changed

New Contributors

Full Changelog: https://github.com/bazel-contrib/rules_go/compare/v0.52.0...v0.53.0

v0.52.0

MODULE.bazel code

bazel_dep(name = "rules_go", version = "0.52.0")

WORKSPACE code

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

http_archive(
    name = "io_bazel_rules_go",
    sha256 = "90fe8fb402dee957a375f3eb8511455bd738c7ed562695f4dd117ac7d2d833b1",
    urls = [
        "https://mirror.bazel.build/github.com/bazel-contrib/rules_go/releases/download/v0.52.0/rules_go-v0.52.0.zip",
        "https://github.com/bazel-contrib/rules_go/releases/download/v0.52.0/rules_go-v0.52.0.zip",
    ],
)

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

go_rules_dependencies()

go_register_toolchains(version = "1.23.4")

What's Changed

New Contributors

Full Changelog: https://github.com/bazel-contrib/rules_go/compare/v0.51.0...v0.52.0

v0.51.0

Breaking changes

In order to reduce CPU and memory usage in the analysis phase and to improve the maintainability of the codebase, this release contains a number of breaking changes. As the bulk of these changes are to the Go context API, users of the go_* rules should not be affected (with a very minor exception below).

The maintainers would like to give a special thanks to @​dzbarsky for numerous contributions to this release!

Changes to rules

  • Support for inferring an importpath for libraries named go_default_library has been removed. Modern versions of Gazelle do not generate this target name, please ensure you are up to date. (c8a7ebca3)

Changes to the Go context API and behavior

  • Converted SDK files to depsets (go.sdk.tools, go.sdk.headers, go.sdk.libs, go.sdk.srcs). To migrate, either call to_list() on those properties or, preferably, use them as depsets in your downstream actions. To remain compatible with older versions, consider a conditional conversion such as depset_or_list if type(depset_or_list) == type([]) else depset_or_list.to_list() (3994841a)

  • go.sdk_files has been removed and can be replaced with depset(direct = [go.sdk.go], transitive = [go.sdk.srcs, go.sdk.headers, go.sdk.libs, go.sdk.tools]) (which is a depset). Wherever possible, try to use only the subset of those files that's actually needed.

  • GoSource and GoLibrary providers have been merged and renamed to GoInfo. The previous names are now aliases, but can result in errors about duplicate providers when both are returned from the same rule. go.new_library and go.library_to_source are now deprecated. To migrate, use go.new_go_info. To remain compatible with older versions that require both providers, consider checking whether GoSource != GoLibrary. (564f8204)

  • Some fields on the Go context object are marked deprecated. go_context will still add them to the context object, unless it is invoked with include_deprecated_properties = False. This default will be flipped in the future and eventually this codepath will be removed. (aa96a1174) You can migrate as follows:

    • go.root -> go.env["GOROOT"]
    • go.go -> go.sdk.go
    • go.sdk_root -> go.sdk.root_file
    • go.sdk_tools -> go.sdk.tools
    • go.package_list -> go.sdk.package_list
    • go.tags -> go.mode.tags
    • go.stamp -> go.mode.stamp
    • go.cover_format -> go.mode.cover_format
    • go.pgoprofile -> go.mode.pgoprofile
  • Removed get_nogo from the Go context object (0f88f8c8)

  • Removed exe_extension and shared_extension from the Go context object. (c419453a)

  • Removed GoSource.cc_info. If you need to access the CcInfo from a Go target, you will need to apply the _go_cc_aspect from go/private/rules/binary.bzl. Please let us know if it's needed and we can move it to public API. (a01ba7c72)

  • go_binary and go_test targets no longer expose GoInfo, GoSource or GoLibrary providers. If you need a dedicated provider to attach an aspect to, please let us know. (2d2266)

  • The Go context's mode property is now a GoConfigInfo provider instead of a bare struct. go.mode.link has been renamed to go.mode.linkmode (5933f872)

  • If you are relying on go_context to read an _stdlib attribute from your attrs, please ensure the attribute is not transitioned, as it will no longer handle a list value. (9214edcd126)

  • go_context now accepts keyword arguments for the following fields: go_context_data, importpath, importmap, embed, importpath_aliases. If these properties are omitted, the function will continue to fall back to reading them from attr. Consider passing these explicitly to improve code clarity and analysis phase performance. (6749a3819, f3029e2a8)

Changes to providers

GoSource

  • Removed cgo_deps, use cdeps instead (56d415d)

  • Removed orig_srcs (520bee50)

  • Removed cgo_exports (86c3f3ae97)

  • Converted cover to a depset (692d008c96)

  • deps is now a list of GoArchives instead of Targets (a32f3e1)

GoArchive

  • Removed mode, use source.mode instead (bfd99a663)

GoArchiveData

  • Removed data_files, use with runfiles instead, which is a runfiles object (60f55c91ce)

CgoContextInfo

  • Converted cc_toolchain_files to a depset (3994841)

WORKSPACE code

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

http_archive(
    name = "io_bazel_rules_go",
    sha256 = "0936c9bc3c4321ee372cb8f66dd972d368cb940ed01a9ba9fd7debcf0093f09b",
    urls = [
        "https://mirror.bazel.build/github.com/bazel-contrib/rules_go/releases/download/v0.51.0/rules_go-v0.51.0.zip",
        "https://github.com/bazel-contrib/rules_go/releases/download/v0.51.0/rules_go-v0.51.0.zip",
    ],
)

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

go_rules_dependencies()

go_register_toolchains(version = "1.23.4")

What's Changed

New Contributors


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

renovate[bot] avatar Dec 16 '24 04:12 renovate[bot]

This won't work because rules_go v0.51.0 is not backwards compatible with v0.50.1. See discussion on the pull request, including a comment that this might be fixed upstream in rules_go so that rules_nixpkgs can continue to work with both older and newer versions of rules_go (but not v0.51.0). If it is fixed upstream that way, then waiting for the next release of rules_go to restore the original API might be the best way to deal with this.

jtacoma avatar Dec 31 '24 16:12 jtacoma

Thank you for pointing this out. @jtacoma since you appear to be a user of rules_nixpkgs and the Go toolchain provided by it, do you have an opinion on #473? I'm trying to understand what value existing users get from a Go toolchain provided by Nix.

malt3 avatar Dec 31 '24 17:12 malt3

Thank you for pointing this out. @jtacoma since you appear to be a user of rules_nixpkgs and the Go toolchain provided by it, do you have an opinion on #473? I'm trying to understand what value existing users get from a Go toolchain provided by Nix.

I didn't notice a problem when using rules_go without Nix yet in my hobby project but I expect I would soon. I like to freely mix programming languages and I've learned this works best when all parts of the final binary+libraries are built as similarly as possible. Since rules_nixpkgs_rust is required to use Bazel with Rust on Nix, I tried to use rules_nixpkgs for C++, Python, and Go too. With a local copy of rules_nixpkgs, some Bazel module overrides, and a tiny diff to work around this issue, I've now got a hello-world in each language. Hoping to find out soon whether I can link libraries from each language into a single binary!

jtacoma avatar Jan 01 '25 08:01 jtacoma

FWIW: The issue I mentioned above was resolved with https://github.com/bazel-contrib/rules_go/commit/f53a3f765d680911637924b6676643fc3db73e77 which is included in v0.52.0.

jtacoma avatar Jan 20 '25 23:01 jtacoma