Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(mode): add purego tag when pure #3901

Merged
merged 1 commit into from
May 8, 2024

Conversation

mattyclarkson
Copy link
Contributor

The community has agreed1 that "pure" builds of Go code should use the purego build tag.

This change adds that de-facto tag.

Spun out from bazelbuild/bazel-central-registry#1629 to solve building of circl.

@mattyclarkson
Copy link
Contributor Author

For what it's worth: this works with cloudflare/circl#492

@mattyclarkson
Copy link
Contributor Author

mattyclarkson commented Apr 6, 2024

This branch updates Gazelle to 0.36.0 to get the purego patch.

The Bazel 6.0.0 CI states:

Error computing the main repository mapping: The MODULE.bazel file of gazelle@0.36.0 declares overrides

That would come from the single_version_override that is in the Gazelle release.

I can reproduce that locally:

$ USE_BAZEL_VERSION=6.0.0 bazelisk build --announce_rc -- //...
Starting local Bazel server and connecting to it...
INFO: Options provided by the client:
  Inherited 'common' options: --isatty=1 --terminal_columns=190
INFO: Reading rc options for 'build' from /home/matt-clarkson/git/github/bazelbuild/rules_go/tests/bcr/.bazelrc:
  Inherited 'common' options: --enable_bzlmod
ERROR: Error computing the main repository mapping: The MODULE.bazel file of gazelle@0.36.0 declares overrides

That is a a bug with Bazel 6.0.0, 6.1.0, 6.2.0. Fixed in 6.3.0. We may have to update to 6.3.0 in the CI.

FYI: @tyler-french, @fmeum

@fmeum
Copy link
Member

fmeum commented Apr 6, 2024

I think it's fine to require 6.3.0+ and make the according change to CI. Minor updates are assumed to be backwards compatible anyway.

@mattyclarkson
Copy link
Contributor Author

OK. Updated to 6.3.0. All green on CI 🎉

@fmeum
Copy link
Member

fmeum commented Apr 6, 2024

@mattyclarkson Thanks!

@tyler-french Could you test this on the Über codebase?

@mattyclarkson
Copy link
Contributor Author

@tyler-french / @fmeum if you have time in the next release cycle: it'd be great to get this in. It would allow cloudflare/circl#492 to build without modification to the generated Gazelle build files (and possibly other modules). Thanks.

The community has agreed[1] that "pure" builds of Go code should
use the `purego` build tag.

This change adds that de-facto tag.

The minimum version of Gazelle is bumped to `0.36.0` which includes a patch[2]
for ignoring the `purego` tag so that the source flies are passed to the
compiler for conditional compilation decisions.

[1]: golang/go#23172
[2]: bazel-contrib/bazel-gazelle#1767
@tyler-french
Copy link
Contributor

@tyler-french / @fmeum if you have time in the next release cycle: it'd be great to get this in. It would allow cloudflare/circl#492 to build without modification to the generated Gazelle build files (and possibly other modules). Thanks.

Yes. I was blocked on something else but I will get this tested this week.

@tyler-french
Copy link
Contributor

I tested this and its compatible with all existing rules, but I'm trying to remove patches from github.com/cloudflare/circl that add the cgo tags and export the .h files and it's failing.

Are there other changes needed to fix this build?

Copy link
Contributor

@tyler-french tyler-french left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested at Uber

@mattyclarkson
Copy link
Contributor Author

mattyclarkson commented May 8, 2024

I tested this and its compatible with all existing rules, but I'm trying to remove patches from github.com/cloudflare/circl that add the cgo tags and export the .h files and it's failing.

Are there other changes needed to fix this build?

You need cloudflare/circl#492 which switches all their build tags to purego. That is in circl@1.3.8.

Gazelle learnt to understand purego tags in bazel-contrib/bazel-gazelle#1767 which is in gazelle@0.36.0.

With those two things and this patch, you should be able to generate working build files direcly with Gazelle.

If you have a Go module that depends on cloudflare/circl in go.mod and are using the Gazelle extension, upgrading to 1.3.8 should make everything work.

@fmeum fmeum merged commit fcd6390 into bazel-contrib:master May 8, 2024
2 checks passed
@mattyclarkson mattyclarkson deleted the purego branch May 8, 2024 19:42
cgrindel-self-hosted-renovate bot referenced this pull request in cgrindel/bazel-starlib May 22, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://github.com/bazelbuild/rules_go) |
http_archive | minor | `v0.47.1` -> `v0.48.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.48.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.48.0)

[Compare
Source](https://github.com/bazelbuild/rules_go/compare/v0.47.1...v0.48.0)

#### Important Changes!

`--incompatible_enable_proto_toolchain_resolution` is now supported in
`rules_go`. This means that protoc should now be supplied as a
toolchain. `protoc` can be registered using
https://github.com/aspect-build/toolchains_protoc, or a local proto
toolchain can be added.

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"33acc4ae0f70502db4b893c9fc1dd7a9bf998c23e7ff2c4517741d4049a976f8",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.48.0/rules_go-v0.48.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.48.0/rules_go-v0.48.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.3")

#### What's Changed

- Update docs to cover new FilePath ReplaceDirective Support by
[@&#8203;stefanpenner](https://github.com/stefanpenner) in
[https://github.com/bazelbuild/rules_go/pull/3931](https://github.com/bazelbuild/rules_go/pull/3931)
- go_test: use different mnemonic for compilation by
[@&#8203;sluongng](https://github.com/sluongng) in
[https://github.com/bazelbuild/rules_go/pull/3936](https://github.com/bazelbuild/rules_go/pull/3936)
- Add go.work support to the documentation by
[@&#8203;stefanpenner](https://github.com/stefanpenner) in
[https://github.com/bazelbuild/rules_go/pull/3932](https://github.com/bazelbuild/rules_go/pull/3932)
- feat(mode): add `purego` tag when `pure` by
[@&#8203;mattyclarkson](https://github.com/mattyclarkson) in
[https://github.com/bazelbuild/rules_go/pull/3901](https://github.com/bazelbuild/rules_go/pull/3901)
- generate_test_main: Move timeout handling back to bzltestutil by
[@&#8203;DolceTriade](https://github.com/DolceTriade) in
[https://github.com/bazelbuild/rules_go/pull/3939](https://github.com/bazelbuild/rules_go/pull/3939)
- Add support for `--incompatible_enable_proto_toolchain_resolution` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3919](https://github.com/bazelbuild/rules_go/pull/3919)
- Add exec_compatible_with to @&#8203;go_sdk//:builder by
[@&#8203;EdSchouten](https://github.com/EdSchouten) in
[https://github.com/bazelbuild/rules_go/pull/3943](https://github.com/bazelbuild/rules_go/pull/3943)
- prepare v0.48.0 release by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3946](https://github.com/bazelbuild/rules_go/pull/3946)

#### New Contributors

- [@&#8203;stefanpenner](https://github.com/stefanpenner) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3931](https://github.com/bazelbuild/rules_go/pull/3931)

**Full Changelog**:
bazel-contrib/rules_go@v0.47.1...v0.48.0

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDkuNCIsInVwZGF0ZWRJblZlciI6IjM2LjEwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
renovate bot referenced this pull request in kreempuff/rules_unreal_engine May 22, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://github.com/bazelbuild/rules_go) |
http_archive | minor | `v0.47.1` -> `v0.48.0` |

---

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

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.48.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.48.0)

[Compare
Source](https://github.com/bazelbuild/rules_go/compare/v0.47.1...v0.48.0)

#### Important Changes!

`--incompatible_enable_proto_toolchain_resolution` is now supported in
`rules_go`. This means that protoc should now be supplied as a
toolchain. `protoc` can be registered using
https://github.com/aspect-build/toolchains_protoc, or a local proto
toolchain can be added.

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"33acc4ae0f70502db4b893c9fc1dd7a9bf998c23e7ff2c4517741d4049a976f8",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.48.0/rules_go-v0.48.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.48.0/rules_go-v0.48.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.3")

#### What's Changed

- Update docs to cover new FilePath ReplaceDirective Support by
[@&#8203;stefanpenner](https://github.com/stefanpenner) in
[https://github.com/bazelbuild/rules_go/pull/3931](https://github.com/bazelbuild/rules_go/pull/3931)
- go_test: use different mnemonic for compilation by
[@&#8203;sluongng](https://github.com/sluongng) in
[https://github.com/bazelbuild/rules_go/pull/3936](https://github.com/bazelbuild/rules_go/pull/3936)
- Add go.work support to the documentation by
[@&#8203;stefanpenner](https://github.com/stefanpenner) in
[https://github.com/bazelbuild/rules_go/pull/3932](https://github.com/bazelbuild/rules_go/pull/3932)
- feat(mode): add `purego` tag when `pure` by
[@&#8203;mattyclarkson](https://github.com/mattyclarkson) in
[https://github.com/bazelbuild/rules_go/pull/3901](https://github.com/bazelbuild/rules_go/pull/3901)
- generate_test_main: Move timeout handling back to bzltestutil by
[@&#8203;DolceTriade](https://github.com/DolceTriade) in
[https://github.com/bazelbuild/rules_go/pull/3939](https://github.com/bazelbuild/rules_go/pull/3939)
- Add support for `--incompatible_enable_proto_toolchain_resolution` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3919](https://github.com/bazelbuild/rules_go/pull/3919)
- Add exec_compatible_with to @&#8203;go_sdk//:builder by
[@&#8203;EdSchouten](https://github.com/EdSchouten) in
[https://github.com/bazelbuild/rules_go/pull/3943](https://github.com/bazelbuild/rules_go/pull/3943)
- prepare v0.48.0 release by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3946](https://github.com/bazelbuild/rules_go/pull/3946)

#### New Contributors

- [@&#8203;stefanpenner](https://github.com/stefanpenner) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3931](https://github.com/bazelbuild/rules_go/pull/3931)

**Full Changelog**:
bazel-contrib/rules_go@v0.47.1...v0.48.0

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/kreempuff/rules_unreal_engine).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
fmeum referenced this pull request in bazel-contrib/toolchains_llvm May 22, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://github.com/bazelbuild/rules_go) |
http_archive | minor | `v0.47.1` -> `v0.48.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.48.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.48.0)

[Compare
Source](https://github.com/bazelbuild/rules_go/compare/v0.47.1...v0.48.0)

#### Important Changes!

`--incompatible_enable_proto_toolchain_resolution` is now supported in
`rules_go`. This means that protoc should now be supplied as a
toolchain. `protoc` can be registered using
https://github.com/aspect-build/toolchains_protoc, or a local proto
toolchain can be added.

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"33acc4ae0f70502db4b893c9fc1dd7a9bf998c23e7ff2c4517741d4049a976f8",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.48.0/rules_go-v0.48.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.48.0/rules_go-v0.48.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.3")

#### What's Changed

- Update docs to cover new FilePath ReplaceDirective Support by
[@&#8203;stefanpenner](https://github.com/stefanpenner) in
[https://github.com/bazelbuild/rules_go/pull/3931](https://github.com/bazelbuild/rules_go/pull/3931)
- go_test: use different mnemonic for compilation by
[@&#8203;sluongng](https://github.com/sluongng) in
[https://github.com/bazelbuild/rules_go/pull/3936](https://github.com/bazelbuild/rules_go/pull/3936)
- Add go.work support to the documentation by
[@&#8203;stefanpenner](https://github.com/stefanpenner) in
[https://github.com/bazelbuild/rules_go/pull/3932](https://github.com/bazelbuild/rules_go/pull/3932)
- feat(mode): add `purego` tag when `pure` by
[@&#8203;mattyclarkson](https://github.com/mattyclarkson) in
[https://github.com/bazelbuild/rules_go/pull/3901](https://github.com/bazelbuild/rules_go/pull/3901)
- generate_test_main: Move timeout handling back to bzltestutil by
[@&#8203;DolceTriade](https://github.com/DolceTriade) in
[https://github.com/bazelbuild/rules_go/pull/3939](https://github.com/bazelbuild/rules_go/pull/3939)
- Add support for `--incompatible_enable_proto_toolchain_resolution` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3919](https://github.com/bazelbuild/rules_go/pull/3919)
- Add exec_compatible_with to @&#8203;go_sdk//:builder by
[@&#8203;EdSchouten](https://github.com/EdSchouten) in
[https://github.com/bazelbuild/rules_go/pull/3943](https://github.com/bazelbuild/rules_go/pull/3943)
- prepare v0.48.0 release by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3946](https://github.com/bazelbuild/rules_go/pull/3946)

#### New Contributors

- [@&#8203;stefanpenner](https://github.com/stefanpenner) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3931](https://github.com/bazelbuild/rules_go/pull/3931)

**Full Changelog**:
bazel-contrib/rules_go@v0.47.1...v0.48.0

</details>

---

### 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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/bazel-contrib/toolchains_llvm).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
trunk-io bot referenced this pull request in ride-app/payments-service May 22, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://github.com/bazelbuild/rules_go) | http_archive | minor | `v0.47.1` -> `v0.48.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

### [`v0.48.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.48.0)

[Compare Source](https://github.com/bazelbuild/rules_go/compare/v0.47.1...v0.48.0)

#### Important Changes!

`--incompatible_enable_proto_toolchain_resolution` is now supported in `rules_go`. This means that protoc should now be supplied as a toolchain. `protoc` can be registered using https://github.com/aspect-build/toolchains_protoc, or a local proto toolchain can be added.

#### `WORKSPACE` code

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

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

    load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.3")

#### What's Changed

-   Update docs to cover new FilePath ReplaceDirective Support by [@&#8203;stefanpenner](https://github.com/stefanpenner) in [https://github.com/bazelbuild/rules_go/pull/3931](https://github.com/bazelbuild/rules_go/pull/3931)
-   go_test: use different mnemonic for compilation by [@&#8203;sluongng](https://github.com/sluongng) in [https://github.com/bazelbuild/rules_go/pull/3936](https://github.com/bazelbuild/rules_go/pull/3936)
-   Add go.work support to the documentation by [@&#8203;stefanpenner](https://github.com/stefanpenner) in [https://github.com/bazelbuild/rules_go/pull/3932](https://github.com/bazelbuild/rules_go/pull/3932)
-   feat(mode): add `purego` tag when `pure` by [@&#8203;mattyclarkson](https://github.com/mattyclarkson) in [https://github.com/bazelbuild/rules_go/pull/3901](https://github.com/bazelbuild/rules_go/pull/3901)
-   generate_test_main: Move timeout handling back to bzltestutil by [@&#8203;DolceTriade](https://github.com/DolceTriade) in [https://github.com/bazelbuild/rules_go/pull/3939](https://github.com/bazelbuild/rules_go/pull/3939)
-   Add support for `--incompatible_enable_proto_toolchain_resolution` by [@&#8203;fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3919](https://github.com/bazelbuild/rules_go/pull/3919)
-   Add exec_compatible_with to @&#8203;go_sdk//:builder by [@&#8203;EdSchouten](https://github.com/EdSchouten) in [https://github.com/bazelbuild/rules_go/pull/3943](https://github.com/bazelbuild/rules_go/pull/3943)
-   prepare v0.48.0 release by [@&#8203;tyler-french](https://github.com/tyler-french) in [https://github.com/bazelbuild/rules_go/pull/3946](https://github.com/bazelbuild/rules_go/pull/3946)

#### New Contributors

-   [@&#8203;stefanpenner](https://github.com/stefanpenner) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3931](https://github.com/bazelbuild/rules_go/pull/3931)

**Full Changelog**: bazel-contrib/rules_go@v0.47.1...v0.48.0

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/ride-app/payments-service).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
@zecke
Copy link
Contributor

zecke commented Jun 12, 2024

This change causes a significant performance (from ms to seconds) impact when handling protobuf. I would like to continue using pure binaries and allow unsafe/pointer arithmetic when compiling protobuf.

@mattyclarkson
Copy link
Contributor Author

mattyclarkson commented Jun 13, 2024

The performance regression discussion is continuing in #3959

fmeum added a commit that referenced this pull request Jun 14, 2024
This reverts commit fcd6390.

`purego` regresses performance of certain third-party libraries (see #3959).
fmeum added a commit that referenced this pull request Jun 18, 2024
This reverts commit fcd6390.

`purego` regresses performance of certain third-party libraries (see #3959).
tyler-french pushed a commit that referenced this pull request Jun 19, 2024
This reverts commit fcd6390.

`purego` regresses performance of certain third-party libraries (see #3959).
cgrindel-self-hosted-renovate bot referenced this pull request in cgrindel/rules_swift_package_manager Jun 26, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://github.com/bazelbuild/rules_go) |
http_archive | minor | `v0.47.0` -> `v0.48.1` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.48.1`](https://github.com/bazelbuild/rules_go/releases/tag/v0.48.1)

[Compare
Source](https://github.com/bazelbuild/rules_go/compare/v0.48.0...v0.48.1)

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"b2038e2de2cace18f032249cb4bb0048abf583a36369fa98f687af1b3f880b26",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.48.1/rules_go-v0.48.1.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.48.1/rules_go-v0.48.1.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.4")

**Full Changelog**:
bazel-contrib/rules_go@v0.48.0...v0.48.1

###
[`v0.48.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.48.0)

[Compare
Source](https://github.com/bazelbuild/rules_go/compare/v0.47.1...v0.48.0)

#### Important Changes!

`--incompatible_enable_proto_toolchain_resolution` is now supported in
`rules_go`. This means that protoc should now be supplied as a
toolchain. `protoc` can be registered using
https://github.com/aspect-build/toolchains_protoc, or a local proto
toolchain can be added.

[`rules_proto`](https://github.com/bazelbuild/rules_proto) 6.0.0 is
required to use Go proto rules.

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"33acc4ae0f70502db4b893c9fc1dd7a9bf998c23e7ff2c4517741d4049a976f8",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.48.0/rules_go-v0.48.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.48.0/rules_go-v0.48.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.3")

#### What's Changed

- Update docs to cover new FilePath ReplaceDirective Support by
[@&#8203;stefanpenner](https://github.com/stefanpenner) in
[https://github.com/bazelbuild/rules_go/pull/3931](https://github.com/bazelbuild/rules_go/pull/3931)
- go_test: use different mnemonic for compilation by
[@&#8203;sluongng](https://github.com/sluongng) in
[https://github.com/bazelbuild/rules_go/pull/3936](https://github.com/bazelbuild/rules_go/pull/3936)
- Add go.work support to the documentation by
[@&#8203;stefanpenner](https://github.com/stefanpenner) in
[https://github.com/bazelbuild/rules_go/pull/3932](https://github.com/bazelbuild/rules_go/pull/3932)
- feat(mode): add `purego` tag when `pure` by
[@&#8203;mattyclarkson](https://github.com/mattyclarkson) in
[https://github.com/bazelbuild/rules_go/pull/3901](https://github.com/bazelbuild/rules_go/pull/3901)
- generate_test_main: Move timeout handling back to bzltestutil by
[@&#8203;DolceTriade](https://github.com/DolceTriade) in
[https://github.com/bazelbuild/rules_go/pull/3939](https://github.com/bazelbuild/rules_go/pull/3939)
- Add support for `--incompatible_enable_proto_toolchain_resolution` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3919](https://github.com/bazelbuild/rules_go/pull/3919)
- Add exec_compatible_with to @&#8203;go_sdk//:builder by
[@&#8203;EdSchouten](https://github.com/EdSchouten) in
[https://github.com/bazelbuild/rules_go/pull/3943](https://github.com/bazelbuild/rules_go/pull/3943)
- prepare v0.48.0 release by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3946](https://github.com/bazelbuild/rules_go/pull/3946)

#### New Contributors

- [@&#8203;stefanpenner](https://github.com/stefanpenner) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3931](https://github.com/bazelbuild/rules_go/pull/3931)

**Full Changelog**:
bazel-contrib/rules_go@v0.47.1...v0.48.0

###
[`v0.47.1`](https://github.com/bazelbuild/rules_go/releases/tag/v0.47.1)

[Compare
Source](https://github.com/bazelbuild/rules_go/compare/v0.47.0...v0.47.1)

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"f74c98d6df55217a36859c74b460e774abc0410a47cc100d822be34d5f990f16",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.47.1/rules_go-v0.47.1.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.47.1/rules_go-v0.47.1.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.2")

#### What's Changed

- bzltestutil: restore timeout signal handler by
[@&#8203;sluongng](https://github.com/sluongng) in
[https://github.com/bazelbuild/rules_go/pull/3929](https://github.com/bazelbuild/rules_go/pull/3929)
- feat: support syso files in srcs. by
[@&#8203;connyay](https://github.com/connyay) in
[https://github.com/bazelbuild/rules_go/pull/3763](https://github.com/bazelbuild/rules_go/pull/3763)
- prepare patch release 0.47.1 by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3933](https://github.com/bazelbuild/rules_go/pull/3933)

#### New Contributors

- [@&#8203;connyay](https://github.com/connyay) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3763](https://github.com/bazelbuild/rules_go/pull/3763)

**Full Changelog**:
bazel-contrib/rules_go@v0.47.0...v0.47.1

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDkuNCIsInVwZGF0ZWRJblZlciI6IjM2LjEwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants