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

bzlmod: Improve SDK registration #3443

Merged
merged 2 commits into from
Mar 8, 2023
Merged

bzlmod: Improve SDK registration #3443

merged 2 commits into from
Mar 8, 2023

Conversation

fmeum
Copy link
Member

@fmeum fmeum commented Feb 1, 2023

What type of PR is this?

Feature

What does this PR do? Why is it needed?

Improve Bzlmod toolchain registration

Before this commit, users had to do the following in their
MODULE.bazel file to register a custom Go SDK:

go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(name = "my_go", version = "1.19.5")
use_repo(go_sdk, "my_go")
register_toolchains("@my_go_toolchains//:all")

This has several drawbacks:

  • Names can collide with SDKs defined by transitive dependencies as they
    all live in the same namespace.
  • The SDK has to be brought into scope with use_repo.
  • Since the toolchain definitions are separate from the SDK repo, users
    need to know the naming convention for the separate toolchain repo for
    their register_toolchains calls.
  • It encourages using the SDK repo directly, which is almost never
    correct: Toolchain resolution should be used instead, possibly in the
    form of the new convenience target @rules_go//go.

With this commit, Bazel toolchain definitions are emitted into a single
repo and registered by rules_go itself. SDK repo names are mangled and
kept as an implementation detail of rules_go. Module dependencies are no
longer allowed to register SDKs with a non-mangled name, but an
exception is made for the root module for the sake of backwards
compatibility and to address unforeseen use cases.

As a result of this change, SDK registration now looks as follows:

go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(version = "1.19.5")

Other notes for review

Currently stacked on #3438, #3439 and #3440, only the last commit is new.

@fmeum fmeum force-pushed the bzlmod-no-name-in-sdk branch 5 times, most recently from 777300a to c1087f5 Compare February 2, 2023 07:39
@fmeum fmeum changed the title Bzlmod no name in sdk bzlmod: Improve SDK registration Feb 2, 2023
@fmeum fmeum force-pushed the bzlmod-no-name-in-sdk branch from c1087f5 to 8ef9ea1 Compare February 2, 2023 10:13
@fmeum
Copy link
Member Author

fmeum commented Feb 2, 2023

@Wyverald This is the PR I told you about. Could you review the last commit? Leaving this as draft as it is stacked on other PRs with refactorings that enable this change but that you don't have to look at.

@fmeum fmeum requested a review from Wyverald February 2, 2023 10:13
Copy link
Contributor

@Wyverald Wyverald left a comment

Choose a reason for hiding this comment

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

I can't say I understand everything that's going on, but the basics of generating the SDK hub repo looks good to me. (Only looked at the 4th commit as you asked)

go/private/sdk.bzl Outdated Show resolved Hide resolved
go/private/sdk.bzl Outdated Show resolved Hide resolved
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.

A few stylistic comments. Logic and flow LGTM!

Before this commit, users had to do the following in their
`MODULE.bazel` file to register a custom Go SDK:

```
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(name = "my_go", version = "1.19.5")
use_repo(go_sdk, "my_go")
register_toolchains("@my_go_toolchains//:all")
```

This has several drawbacks:
* Names can collide with SDKs defined by transitive dependencies as they
  all live in the same namespace.
* The SDK has to be brought into scope with `use_repo`.
* Since the toolchain definitions are separate from the SDK repo, users
  need to know the naming convention for the separate toolchain repo for
  their `register_toolchains` calls.
* It encourages using the SDK repo directly, which is almost never
  correct: Toolchain resolution should be used instead, possibly in the
  form of the new convenience target `@rules_go//go`.

With this commit, Bazel toolchain definitions are emitted into a single
repo and registered by rules_go itself. SDK repo names are mangled and
kept as an implementation detail of rules_go. Module dependencies are no
longer allowed to register SDKs with a non-mangled name, but an
exception is made for the root module for the sake of backwards
compatibility and to address unforeseen use cases.

As a result of this change, SDK registration now looks as follows:

```
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(version = "1.19.5")
```
@fmeum fmeum force-pushed the bzlmod-no-name-in-sdk branch from 7fe9edb to 73ce796 Compare February 26, 2023 22:39
@fmeum fmeum force-pushed the bzlmod-no-name-in-sdk branch 2 times, most recently from 0df694a to b6be5da Compare March 8, 2023 20:57
@fmeum fmeum force-pushed the bzlmod-no-name-in-sdk branch from b6be5da to ba478ce Compare March 8, 2023 21:03
@fmeum fmeum merged commit 89e3296 into master Mar 8, 2023
@fmeum fmeum deleted the bzlmod-no-name-in-sdk branch March 8, 2023 21:31
renovate bot referenced this pull request in cgrindel/bazel-starlib Mar 29, 2023
[![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://togithub.com/bazelbuild/rules_go) |
http_archive | minor | `v0.38.1` -> `v0.39.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go</summary>

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

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.38.1...v0.39.0)

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"6b65cb7917b4d1709f9410ffe00ecf3e160edf674b78c54a894471320862184f",
        urls = [

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

"https://github.com/bazelbuild/rules_go/releases/download/v0.39.0/rules_go-v0.39.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.20.2")

#### What's Changed

- Make the toolchain's `go` binary available as a target by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3429](https://togithub.com/bazelbuild/rules_go/pull/3429)
- add bazel test rule for excluded packages in popular_repos by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- change build test name from 'need_test' to 'build_only' by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3449](https://togithub.com/bazelbuild/rules_go/pull/3449)
- fix a grammer issue by
[@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- go: support "all:" prefix for "go:embed" directives by
[@&#8203;malt3](https://togithub.com/malt3) in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- Remove `filter_transition_label` workaround by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3438](https://togithub.com/bazelbuild/rules_go/pull/3438)
- Extract generated code from BUILD.toolchains.bazel into a macro by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3439](https://togithub.com/bazelbuild/rules_go/pull/3439)
- bzlmod: Prohibit undesirable SDK registrations in non-root modules by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3440](https://togithub.com/bazelbuild/rules_go/pull/3440)
- update links to gazelle docs by
[@&#8203;garymm](https://togithub.com/garymm) in
[https://github.com/bazelbuild/rules_go/pull/3464](https://togithub.com/bazelbuild/rules_go/pull/3464)
- bzlmod: Improve SDK registration by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3443](https://togithub.com/bazelbuild/rules_go/pull/3443)
- Expand locations in `x_defs` values by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3473](https://togithub.com/bazelbuild/rules_go/pull/3473)
- Make `//go` usable in scripts run with `bazel run` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3474](https://togithub.com/bazelbuild/rules_go/pull/3474)
- Avoid repository rule restarts in go_sdk by
[@&#8203;jfirebaugh](https://togithub.com/jfirebaugh) in
[https://github.com/bazelbuild/rules_go/pull/3478](https://togithub.com/bazelbuild/rules_go/pull/3478)
- bzlmod: Test BCR test module on all platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3479](https://togithub.com/bazelbuild/rules_go/pull/3479)
- Improve error when linkmode requires cgo by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3482](https://togithub.com/bazelbuild/rules_go/pull/3482)
- Rename `error` script in `go_cross_binary` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3481](https://togithub.com/bazelbuild/rules_go/pull/3481)
- Only infer platforms from crosstool/cpu if at default by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3485](https://togithub.com/bazelbuild/rules_go/pull/3485)
- Add missing darwin CPUs to apple matcher by
[@&#8203;keith](https://togithub.com/keith) in
[https://github.com/bazelbuild/rules_go/pull/3461](https://togithub.com/bazelbuild/rules_go/pull/3461)
- Canonicalize tags before transitioning by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3484](https://togithub.com/bazelbuild/rules_go/pull/3484)
- Keep build tags that affect the stdlib build by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3488](https://togithub.com/bazelbuild/rules_go/pull/3488)
- Quote `CC` if it contains whitespace by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3491](https://togithub.com/bazelbuild/rules_go/pull/3491)
- Disable cgo by default with unsupported compilers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3493](https://togithub.com/bazelbuild/rules_go/pull/3493)
- Only install `runtime/cgo` with `pure = False` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3492](https://togithub.com/bazelbuild/rules_go/pull/3492)
- Use `ctx.readdir` instead of `ls` for SDK platform detection by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3497](https://togithub.com/bazelbuild/rules_go/pull/3497)

#### New Contributors

- [@&#8203;uberzzr](https://togithub.com/uberzzr) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- [@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- [@&#8203;malt3](https://togithub.com/malt3) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- [@&#8203;tyler-french](https://togithub.com/tyler-french) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3495](https://togithub.com/bazelbuild/rules_go/pull/3495)

**Full Changelog**:
bazel-contrib/rules_go@v0.38.0...v0.39.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.

🔕 **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://app.renovatebot.com/dashboard#github/cgrindel/bazel-starlib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuMjIuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in cgrindel/rules_swift_package_manager Mar 29, 2023
[![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://togithub.com/bazelbuild/rules_go) |
http_archive | minor | `v0.38.1` -> `v0.39.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go</summary>

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

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.38.1...v0.39.0)

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"6b65cb7917b4d1709f9410ffe00ecf3e160edf674b78c54a894471320862184f",
        urls = [

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

"https://github.com/bazelbuild/rules_go/releases/download/v0.39.0/rules_go-v0.39.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.20.2")

#### What's Changed

- Make the toolchain's `go` binary available as a target by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3429](https://togithub.com/bazelbuild/rules_go/pull/3429)
- add bazel test rule for excluded packages in popular_repos by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- change build test name from 'need_test' to 'build_only' by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3449](https://togithub.com/bazelbuild/rules_go/pull/3449)
- fix a grammer issue by
[@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- go: support "all:" prefix for "go:embed" directives by
[@&#8203;malt3](https://togithub.com/malt3) in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- Remove `filter_transition_label` workaround by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3438](https://togithub.com/bazelbuild/rules_go/pull/3438)
- Extract generated code from BUILD.toolchains.bazel into a macro by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3439](https://togithub.com/bazelbuild/rules_go/pull/3439)
- bzlmod: Prohibit undesirable SDK registrations in non-root modules by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3440](https://togithub.com/bazelbuild/rules_go/pull/3440)
- update links to gazelle docs by
[@&#8203;garymm](https://togithub.com/garymm) in
[https://github.com/bazelbuild/rules_go/pull/3464](https://togithub.com/bazelbuild/rules_go/pull/3464)
- bzlmod: Improve SDK registration by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3443](https://togithub.com/bazelbuild/rules_go/pull/3443)
- Expand locations in `x_defs` values by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3473](https://togithub.com/bazelbuild/rules_go/pull/3473)
- Make `//go` usable in scripts run with `bazel run` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3474](https://togithub.com/bazelbuild/rules_go/pull/3474)
- Avoid repository rule restarts in go_sdk by
[@&#8203;jfirebaugh](https://togithub.com/jfirebaugh) in
[https://github.com/bazelbuild/rules_go/pull/3478](https://togithub.com/bazelbuild/rules_go/pull/3478)
- bzlmod: Test BCR test module on all platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3479](https://togithub.com/bazelbuild/rules_go/pull/3479)
- Improve error when linkmode requires cgo by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3482](https://togithub.com/bazelbuild/rules_go/pull/3482)
- Rename `error` script in `go_cross_binary` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3481](https://togithub.com/bazelbuild/rules_go/pull/3481)
- Only infer platforms from crosstool/cpu if at default by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3485](https://togithub.com/bazelbuild/rules_go/pull/3485)
- Add missing darwin CPUs to apple matcher by
[@&#8203;keith](https://togithub.com/keith) in
[https://github.com/bazelbuild/rules_go/pull/3461](https://togithub.com/bazelbuild/rules_go/pull/3461)
- Canonicalize tags before transitioning by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3484](https://togithub.com/bazelbuild/rules_go/pull/3484)
- Keep build tags that affect the stdlib build by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3488](https://togithub.com/bazelbuild/rules_go/pull/3488)
- Quote `CC` if it contains whitespace by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3491](https://togithub.com/bazelbuild/rules_go/pull/3491)
- Disable cgo by default with unsupported compilers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3493](https://togithub.com/bazelbuild/rules_go/pull/3493)
- Only install `runtime/cgo` with `pure = False` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3492](https://togithub.com/bazelbuild/rules_go/pull/3492)
- Use `ctx.readdir` instead of `ls` for SDK platform detection by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3497](https://togithub.com/bazelbuild/rules_go/pull/3497)

#### New Contributors

- [@&#8203;uberzzr](https://togithub.com/uberzzr) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- [@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- [@&#8203;malt3](https://togithub.com/malt3) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- [@&#8203;tyler-french](https://togithub.com/tyler-french) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3495](https://togithub.com/bazelbuild/rules_go/pull/3495)

**Full Changelog**:
bazel-contrib/rules_go@v0.38.0...v0.39.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.

🔕 **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://app.renovatebot.com/dashboard#github/cgrindel/swift_bazel).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuMjIuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in kreempuff/rules_unreal_engine Apr 15, 2023
[![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://togithub.com/bazelbuild/rules_go) |
http_archive | minor | `v0.38.1` -> `v0.39.0` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>bazelbuild/rules_go</summary>

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

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.38.1...v0.39.0)

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"6b65cb7917b4d1709f9410ffe00ecf3e160edf674b78c54a894471320862184f",
        urls = [

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

"https://github.com/bazelbuild/rules_go/releases/download/v0.39.0/rules_go-v0.39.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.20.2")

#### What's Changed

- Make the toolchain's `go` binary available as a target by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3429](https://togithub.com/bazelbuild/rules_go/pull/3429)
- add bazel test rule for excluded packages in popular_repos by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- change build test name from 'need_test' to 'build_only' by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3449](https://togithub.com/bazelbuild/rules_go/pull/3449)
- fix a grammer issue by
[@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- go: support "all:" prefix for "go:embed" directives by
[@&#8203;malt3](https://togithub.com/malt3) in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- Remove `filter_transition_label` workaround by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3438](https://togithub.com/bazelbuild/rules_go/pull/3438)
- Extract generated code from BUILD.toolchains.bazel into a macro by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3439](https://togithub.com/bazelbuild/rules_go/pull/3439)
- bzlmod: Prohibit undesirable SDK registrations in non-root modules by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3440](https://togithub.com/bazelbuild/rules_go/pull/3440)
- update links to gazelle docs by
[@&#8203;garymm](https://togithub.com/garymm) in
[https://github.com/bazelbuild/rules_go/pull/3464](https://togithub.com/bazelbuild/rules_go/pull/3464)
- bzlmod: Improve SDK registration by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3443](https://togithub.com/bazelbuild/rules_go/pull/3443)
- Expand locations in `x_defs` values by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3473](https://togithub.com/bazelbuild/rules_go/pull/3473)
- Make `//go` usable in scripts run with `bazel run` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3474](https://togithub.com/bazelbuild/rules_go/pull/3474)
- Avoid repository rule restarts in go_sdk by
[@&#8203;jfirebaugh](https://togithub.com/jfirebaugh) in
[https://github.com/bazelbuild/rules_go/pull/3478](https://togithub.com/bazelbuild/rules_go/pull/3478)
- bzlmod: Test BCR test module on all platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3479](https://togithub.com/bazelbuild/rules_go/pull/3479)
- Improve error when linkmode requires cgo by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3482](https://togithub.com/bazelbuild/rules_go/pull/3482)
- Rename `error` script in `go_cross_binary` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3481](https://togithub.com/bazelbuild/rules_go/pull/3481)
- Only infer platforms from crosstool/cpu if at default by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3485](https://togithub.com/bazelbuild/rules_go/pull/3485)
- Add missing darwin CPUs to apple matcher by
[@&#8203;keith](https://togithub.com/keith) in
[https://github.com/bazelbuild/rules_go/pull/3461](https://togithub.com/bazelbuild/rules_go/pull/3461)
- Canonicalize tags before transitioning by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3484](https://togithub.com/bazelbuild/rules_go/pull/3484)
- Keep build tags that affect the stdlib build by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3488](https://togithub.com/bazelbuild/rules_go/pull/3488)
- Quote `CC` if it contains whitespace by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3491](https://togithub.com/bazelbuild/rules_go/pull/3491)
- Disable cgo by default with unsupported compilers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3493](https://togithub.com/bazelbuild/rules_go/pull/3493)
- Only install `runtime/cgo` with `pure = False` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3492](https://togithub.com/bazelbuild/rules_go/pull/3492)
- Use `ctx.readdir` instead of `ls` for SDK platform detection by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3497](https://togithub.com/bazelbuild/rules_go/pull/3497)

#### New Contributors

- [@&#8203;uberzzr](https://togithub.com/uberzzr) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- [@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- [@&#8203;malt3](https://togithub.com/malt3) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- [@&#8203;tyler-french](https://togithub.com/tyler-french) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3495](https://togithub.com/bazelbuild/rules_go/pull/3495)

**Full Changelog**:
bazel-contrib/rules_go@v0.38.0...v0.39.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://app.renovatebot.com/dashboard#github/kreempuff/rules_unreal_engine).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->
tingilee pushed a commit to tingilee/rules_go that referenced this pull request Jul 19, 2023
Before this commit, users had to do the following in their
`MODULE.bazel` file to register a custom Go SDK:

```
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(name = "my_go", version = "1.19.5")
use_repo(go_sdk, "my_go")
register_toolchains("@my_go_toolchains//:all")
```

This has several drawbacks:
* Names can collide with SDKs defined by transitive dependencies as they
  all live in the same namespace.
* The SDK has to be brought into scope with `use_repo`.
* Since the toolchain definitions are separate from the SDK repo, users
  need to know the naming convention for the separate toolchain repo for
  their `register_toolchains` calls.
* It encourages using the SDK repo directly, which is almost never
  correct: Toolchain resolution should be used instead, possibly in the
  form of the new convenience target `@rules_go//go`.

With this commit, Bazel toolchain definitions are emitted into a single
repo and registered by rules_go itself. SDK repo names are mangled and
kept as an implementation detail of rules_go. Module dependencies are no
longer allowed to register SDKs with a non-mangled name, but an
exception is made for the root module for the sake of backwards
compatibility and to address unforeseen use cases.

As a result of this change, SDK registration now looks as follows:

```
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(version = "1.19.5")
```
f0rmiga referenced this pull request in aspect-build/talkie Aug 11, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/Masterminds/semver/v3](https://togithub.com/Masterminds/semver)
| require | patch | `v3.2.0` -> `v3.2.1` |
| [github.com/avast/retry-go/v4](https://togithub.com/avast/retry-go) |
require | patch | `v4.3.3` -> `v4.3.4` |
|
[github.com/bazelbuild/bazel-gazelle](https://togithub.com/bazelbuild/bazel-gazelle)
| require | minor | `v0.29.0` -> `v0.31.0` |
|
[github.com/bazelbuild/bazelisk](https://togithub.com/bazelbuild/bazelisk)
| require | minor | `v1.16.0` -> `v1.17.0` |
|
[github.com/bazelbuild/rules_go](https://togithub.com/bazelbuild/rules_go)
| require | minor | `v0.38.1` -> `v0.39.1` |
|
[github.com/buildbarn/bb-clientd](https://togithub.com/buildbarn/bb-clientd)
| require | digest | `939beb9` -> `677f2e4` |
|
[github.com/buildbarn/bb-remote-execution](https://togithub.com/buildbarn/bb-remote-execution)
| require | digest | `e0ae60c` -> `a8ab442` |
| [github.com/emicklei/proto](https://togithub.com/emicklei/proto) |
require | patch | `v1.11.1` -> `v1.11.2` |
| [github.com/evanw/esbuild](https://togithub.com/evanw/esbuild) |
require | patch | `v0.17.8` -> `v0.17.19` |
| [github.com/fatih/color](https://togithub.com/fatih/color) | require |
minor | `v1.14.1` -> `v1.15.0` |
| [github.com/golang/protobuf](https://togithub.com/golang/protobuf) |
require | patch | `v1.5.2` -> `v1.5.3` |
|
[github.com/grpc-ecosystem/grpc-gateway/v2](https://togithub.com/grpc-ecosystem/grpc-gateway)
| require | minor | `v2.15.0` -> `v2.16.0` |
|
[github.com/grpc-ecosystem/grpc-health-probe](https://togithub.com/grpc-ecosystem/grpc-health-probe)
| require | patch | `v0.4.15` -> `v0.4.18` |
|
[github.com/hashicorp/go-hclog](https://togithub.com/hashicorp/go-hclog)
| require | minor | `v1.4.0` -> `v1.5.0` |
|
[github.com/hashicorp/go-plugin](https://togithub.com/hashicorp/go-plugin)
| require | patch | `v1.4.8` -> `v1.4.10` |
| [github.com/imdario/mergo](https://togithub.com/imdario/mergo) |
require | patch | `v0.3.13` -> `v0.3.16` |
| [github.com/mattn/go-isatty](https://togithub.com/mattn/go-isatty) |
require | patch | `v0.0.17` -> `v0.0.19` |
| [github.com/onsi/ginkgo/v2](https://togithub.com/onsi/ginkgo) |
require | minor | `v2.8.1` -> `v2.9.7` |
| [github.com/onsi/gomega](https://togithub.com/onsi/gomega) | require |
patch | `v1.27.0` -> `v1.27.7` |
|
[github.com/rabbitmq/amqp091-go](https://togithub.com/rabbitmq/amqp091-go)
| require | minor | `v1.7.0` -> `v1.8.1` |
| [github.com/sirupsen/logrus](https://togithub.com/sirupsen/logrus) |
require | patch | `v1.9.0` -> `v1.9.3` |
| [github.com/slack-go/slack](https://togithub.com/slack-go/slack) |
require | patch | `v0.12.1` -> `v0.12.2` |
|
[github.com/smacker/go-tree-sitter](https://togithub.com/smacker/go-tree-sitter)
| require | digest | `af7e2ef` -> `a7d9277` |
| [github.com/spf13/cobra](https://togithub.com/spf13/cobra) | require |
minor | `v1.6.1` -> `v1.7.0` |
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | require |
minor | `v1.15.0` -> `v1.16.0` |
| [github.com/uptrace/bun](https://togithub.com/uptrace/bun) | require |
patch | `v1.1.12` -> `v1.1.14` |
|
[github.com/uptrace/bun/dialect/pgdialect](https://togithub.com/uptrace/bun)
| require | patch | `v1.1.12` -> `v1.1.14` |
|
[github.com/uptrace/bun/dialect/sqlitedialect](https://togithub.com/uptrace/bun)
| require | patch | `v1.1.12` -> `v1.1.14` |
|
[github.com/uptrace/bun/driver/pgdriver](https://togithub.com/uptrace/bun)
| require | patch | `v1.1.12` -> `v1.1.14` |
|
[github.com/uptrace/bun/driver/sqliteshim](https://togithub.com/uptrace/bun)
| require | patch | `v1.1.12` -> `v1.1.14` |
| golang.org/x/exp | require | digest | `5e25df0` -> `2e198f4` |
| golang.org/x/mod | require | minor | `v0.8.0` -> `v0.10.0` |
| golang.org/x/sync | require | minor | `v0.1.0` -> `v0.2.0` |
|
[google.golang.org/genproto](https://togithub.com/googleapis/go-genproto)
| require | digest | `c8e22ba` -> `e85fd2c` |
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| minor | `v1.53.0` -> `v1.55.0` |
|
[google.golang.org/protobuf](https://togithub.com/protocolbuffers/protobuf-go)
| require | minor | `v1.28.1` -> `v1.30.0` |
| [helm.sh/helm/v3](https://togithub.com/helm/helm) | require | minor |
`v3.11.1` -> `v3.12.0` |
| [sigs.k8s.io/kind](https://togithub.com/kubernetes-sigs/kind) |
require | minor | `v0.17.0` -> `v0.19.0` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>Masterminds/semver</summary>

###
[`v3.2.1`](https://togithub.com/Masterminds/semver/releases/tag/v3.2.1)

[Compare
Source](https://togithub.com/Masterminds/semver/compare/v3.2.0...v3.2.1)

##### Changed

- [#&#8203;198](https://togithub.com/Masterminds/semver/issues/198):
Improved testing around pre-release names
- [#&#8203;200](https://togithub.com/Masterminds/semver/issues/200):
Improved code scanning with addition of CodeQL
- [#&#8203;201](https://togithub.com/Masterminds/semver/issues/201):
Testing now includes Go 1.20. Go 1.17 has been dropped
- [#&#8203;202](https://togithub.com/Masterminds/semver/issues/202):
Migrated Fuzz testing to Go built-in Fuzzing. CI runs daily
- [#&#8203;203](https://togithub.com/Masterminds/semver/issues/203):
Docs updated for security details

##### Fixed

- [#&#8203;199](https://togithub.com/Masterminds/semver/issues/199):
Fixed issue with range transformations

**Full Changelog**:
https://github.com/Masterminds/semver/compare/v3.2.0...v3.2.1

</details>

<details>
<summary>avast/retry-go</summary>

###
[`v4.3.4`](https://togithub.com/avast/retry-go/compare/4.3.3...4.3.4)

[Compare
Source](https://togithub.com/avast/retry-go/compare/4.3.3...4.3.4)

</details>

<details>
<summary>bazelbuild/bazel-gazelle</summary>

###
[`v0.31.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/tag/v0.31.0)

[Compare
Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.30.0...v0.31.0)

#### What's Changed

- feat: allow passing GIT_CONFIG_COUNT and it's related configs by
[@&#8203;manuelnaranjo](https://togithub.com/manuelnaranjo) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1462](https://togithub.com/bazelbuild/bazel-gazelle/pull/1462)
- feat(bzlmod): add `module_override` tag to allow patching in go_deps
by [@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1500](https://togithub.com/bazelbuild/bazel-gazelle/pull/1500)
- fix typo `build_proto_file_mode` in message by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1504](https://togithub.com/bazelbuild/bazel-gazelle/pull/1504)
- fix: support running within a dir named workspace by
[@&#8203;jbedard](https://togithub.com/jbedard) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1498](https://togithub.com/bazelbuild/bazel-gazelle/pull/1498)
- fix: check for gazelle command before adding -repo_config flag by
[@&#8203;cgrindel](https://togithub.com/cgrindel) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1501](https://togithub.com/bazelbuild/bazel-gazelle/pull/1501)
- language/go: Infer prefix from go.mod by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1497](https://togithub.com/bazelbuild/bazel-gazelle/pull/1497)
- don't overwrite directives by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1503](https://togithub.com/bazelbuild/bazel-gazelle/pull/1503)
- Support Bzlmod for gazelle itself by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1509](https://togithub.com/bazelbuild/bazel-gazelle/pull/1509)
- language/go: Add windows arm64 as a known platform. by
[@&#8203;connyay](https://togithub.com/connyay) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1507](https://togithub.com/bazelbuild/bazel-gazelle/pull/1507)
- Adding lifecycle manager by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1475](https://togithub.com/bazelbuild/bazel-gazelle/pull/1475)
- Disable protobuf generation for more modules by
[@&#8203;seh](https://togithub.com/seh) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1514](https://togithub.com/bazelbuild/bazel-gazelle/pull/1514)
- Support '~' in label repo by
[@&#8203;mark-thm](https://togithub.com/mark-thm) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1518](https://togithub.com/bazelbuild/bazel-gazelle/pull/1518)
- language/go: Handle `unix` build tag. by
[@&#8203;connyay](https://togithub.com/connyay) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1512](https://togithub.com/bazelbuild/bazel-gazelle/pull/1512)
- Pass data arg through to sh_binary if defined by
[@&#8203;Preston4tw](https://togithub.com/Preston4tw) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1483](https://togithub.com/bazelbuild/bazel-gazelle/pull/1483)
- remove circular override hack by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1515](https://togithub.com/bazelbuild/bazel-gazelle/pull/1515)
- Add major version suffix download example by
[@&#8203;kriswuollett](https://togithub.com/kriswuollett) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1453](https://togithub.com/bazelbuild/bazel-gazelle/pull/1453)
- Relax parsing of labels by
[@&#8203;purkhusid](https://togithub.com/purkhusid) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1508](https://togithub.com/bazelbuild/bazel-gazelle/pull/1508)
- bzlmod: Add `build_file_generation` to `gazelle_override` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1522](https://togithub.com/bazelbuild/bazel-gazelle/pull/1522)
- Fix incremental build of to bootstrap Gazelle by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1529](https://togithub.com/bazelbuild/bazel-gazelle/pull/1529)
- Support macros/rules packed within bazel `struct` by
[@&#8203;birunts](https://togithub.com/birunts) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1524](https://togithub.com/bazelbuild/bazel-gazelle/pull/1524)
- Prefer non-proto over proto deps in external repos by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1537](https://togithub.com/bazelbuild/bazel-gazelle/pull/1537)
- bzlmod: Return `extension_metadata` to automate `use_repo` fixes by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1511](https://togithub.com/bazelbuild/bazel-gazelle/pull/1511)
- Fix `go:embed` failing to add `embedsrcs` for subdirectories named
build by [@&#8203;sgavinio](https://togithub.com/sgavinio) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1539](https://togithub.com/bazelbuild/bazel-gazelle/pull/1539)
- Remove support for godep and dep by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1541](https://togithub.com/bazelbuild/bazel-gazelle/pull/1541)
- Avoid putting -repo_config after directories by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1544](https://togithub.com/bazelbuild/bazel-gazelle/pull/1544)
- Dropping -args by [@&#8203;linzhp](https://togithub.com/linzhp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1546](https://togithub.com/bazelbuild/bazel-gazelle/pull/1546)

#### New Contributors

- [@&#8203;connyay](https://togithub.com/connyay) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1507](https://togithub.com/bazelbuild/bazel-gazelle/pull/1507)
- [@&#8203;mark-thm](https://togithub.com/mark-thm) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1518](https://togithub.com/bazelbuild/bazel-gazelle/pull/1518)
- [@&#8203;Preston4tw](https://togithub.com/Preston4tw) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1483](https://togithub.com/bazelbuild/bazel-gazelle/pull/1483)
- [@&#8203;kriswuollett](https://togithub.com/kriswuollett) made their
first contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1453](https://togithub.com/bazelbuild/bazel-gazelle/pull/1453)
- [@&#8203;purkhusid](https://togithub.com/purkhusid) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1508](https://togithub.com/bazelbuild/bazel-gazelle/pull/1508)
- [@&#8203;birunts](https://togithub.com/birunts) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1524](https://togithub.com/bazelbuild/bazel-gazelle/pull/1524)
- [@&#8203;sgavinio](https://togithub.com/sgavinio) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1539](https://togithub.com/bazelbuild/bazel-gazelle/pull/1539)

**Full Changelog**:
https://github.com/bazelbuild/bazel-gazelle/compare/v0.30.0...v0.31.0

###
[`v0.30.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/tag/v0.30.0)

[Compare
Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.29.0...v0.30.0)

#### What's Changed

- fix: add missing Starlark dependency and introduce `bzl_test` by
[@&#8203;cgrindel](https://togithub.com/cgrindel) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1413](https://togithub.com/bazelbuild/bazel-gazelle/pull/1413)
- Upgrade rules_go and known imports by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1426](https://togithub.com/bazelbuild/bazel-gazelle/pull/1426)
- Regenerate known imports from downgraded go_googleapis by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1429](https://togithub.com/bazelbuild/bazel-gazelle/pull/1429)
- testdata with buildable Go pkg deep below by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1433](https://togithub.com/bazelbuild/bazel-gazelle/pull/1433)
- language/go: add //go:embed all:<pattern> support by
[@&#8203;mbicz](https://togithub.com/mbicz) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1432](https://togithub.com/bazelbuild/bazel-gazelle/pull/1432)
- Fix `go mod download` output expectation for errors by
[@&#8203;illicitonion](https://togithub.com/illicitonion) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1442](https://togithub.com/bazelbuild/bazel-gazelle/pull/1442)
- Apply map_kind to existing rules as well as new ones by
[@&#8203;illicitonion](https://togithub.com/illicitonion) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1425](https://togithub.com/bazelbuild/bazel-gazelle/pull/1425)
- Ignore symlinks into Bazel output rather than relying on name by
[@&#8203;cpsauer](https://togithub.com/cpsauer) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1384](https://togithub.com/bazelbuild/bazel-gazelle/pull/1384)
- Use `short_path` for `go` in the wrapper by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1446](https://togithub.com/bazelbuild/bazel-gazelle/pull/1446)
- feature: gazelle wrapper allows to pass environment variables by
[@&#8203;manuelnaranjo](https://togithub.com/manuelnaranjo) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1438](https://togithub.com/bazelbuild/bazel-gazelle/pull/1438)
- Update directive documentation by
[@&#8203;moisesvega](https://togithub.com/moisesvega) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1454](https://togithub.com/bazelbuild/bazel-gazelle/pull/1454)
- Update gazelle directive documenmtation. by
[@&#8203;moisesvega](https://togithub.com/moisesvega) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1455](https://togithub.com/bazelbuild/bazel-gazelle/pull/1455)
- Default Visibility extension overwrite on descent (fixes
[#&#8203;1467](https://togithub.com/bazelbuild/bazel-gazelle/issues/1467))
by [@&#8203;dnathe4th](https://togithub.com/dnathe4th) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1472](https://togithub.com/bazelbuild/bazel-gazelle/pull/1472)
- Allow keep to be explained by
[@&#8203;stevebarrau](https://togithub.com/stevebarrau) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1447](https://togithub.com/bazelbuild/bazel-gazelle/pull/1447)
- Respect repo_name in MODULE.bazel for load generation by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1463](https://togithub.com/bazelbuild/bazel-gazelle/pull/1463)
- Add `.ijwb` to `.gitignore` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1478](https://togithub.com/bazelbuild/bazel-gazelle/pull/1478)
- Use spaces instead of tabs in go_repositor_tools_srcs.bzl by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1479](https://togithub.com/bazelbuild/bazel-gazelle/pull/1479)
- Run buildifier by [@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1480](https://togithub.com/bazelbuild/bazel-gazelle/pull/1480)
- bzlmod: Test BCR test module on all platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1481](https://togithub.com/bazelbuild/bazel-gazelle/pull/1481)
- bzlmod: Allow overriding default Go module configuration by
[@&#8203;seh](https://togithub.com/seh) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1456](https://togithub.com/bazelbuild/bazel-gazelle/pull/1456)
- fix(bzlmod): apply go.sum sums after version resolution by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1477](https://togithub.com/bazelbuild/bazel-gazelle/pull/1477)
- fix(bzlmod/go_deps): don't read go.sum for empty go.mod files by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1484](https://togithub.com/bazelbuild/bazel-gazelle/pull/1484)
- feat(bzlmod): support go.mod replace directives by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1450](https://togithub.com/bazelbuild/bazel-gazelle/pull/1450)
- README update mentioning gazelle-haskell-modules by
[@&#8203;kczulko](https://togithub.com/kczulko) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1439](https://togithub.com/bazelbuild/bazel-gazelle/pull/1439)
- Exclude `.ijwb` from repository tools srcs by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1490](https://togithub.com/bazelbuild/bazel-gazelle/pull/1490)
- bzlmod: Fix interaction between replace and implicit upgrade check by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1492](https://togithub.com/bazelbuild/bazel-gazelle/pull/1492)

#### New Contributors

- [@&#8203;darist](https://togithub.com/darist) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1410](https://togithub.com/bazelbuild/bazel-gazelle/pull/1410)
- [@&#8203;mbicz](https://togithub.com/mbicz) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1432](https://togithub.com/bazelbuild/bazel-gazelle/pull/1432)
- [@&#8203;cpsauer](https://togithub.com/cpsauer) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1384](https://togithub.com/bazelbuild/bazel-gazelle/pull/1384)
- [@&#8203;manuelnaranjo](https://togithub.com/manuelnaranjo) made their
first contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1438](https://togithub.com/bazelbuild/bazel-gazelle/pull/1438)
- [@&#8203;moisesvega](https://togithub.com/moisesvega) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1454](https://togithub.com/bazelbuild/bazel-gazelle/pull/1454)
- [@&#8203;stevebarrau](https://togithub.com/stevebarrau) made their
first contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1447](https://togithub.com/bazelbuild/bazel-gazelle/pull/1447)
- [@&#8203;seh](https://togithub.com/seh) made their first contribution
in
[https://github.com/bazelbuild/bazel-gazelle/pull/1456](https://togithub.com/bazelbuild/bazel-gazelle/pull/1456)
- [@&#8203;kczulko](https://togithub.com/kczulko) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1439](https://togithub.com/bazelbuild/bazel-gazelle/pull/1439)

**Full Changelog**:
https://github.com/bazelbuild/bazel-gazelle/compare/v0.29.0...v0.30.0

</details>

<details>
<summary>bazelbuild/bazelisk</summary>

###
[`v1.17.0`](https://togithub.com/bazelbuild/bazelisk/releases/tag/v1.17.0)

[Compare
Source](https://togithub.com/bazelbuild/bazelisk/compare/v1.16.0...v1.17.0)

Bazelisk v1.17.0 comes with updated dependencies, minor bug fixes and
new features:

The Go version...

- ... supports custom download URLs via the `BAZELISK_FORMAT_URL` env
variable
([https://github.com/bazelbuild/bazelisk/pull/427](https://togithub.com/bazelbuild/bazelisk/pull/427))
- ... now only downloads Bazel when necessary
([https://github.com/bazelbuild/bazelisk/pull/438](https://togithub.com/bazelbuild/bazelisk/pull/438))
- ... can check the hash of downloaded binaries via the
`BAZELISK_VERIFY_SHA256` env variable
([https://github.com/bazelbuild/bazelisk/pull/441](https://togithub.com/bazelbuild/bazelisk/pull/441))
- ... makes it easier to find out which Bazel change broke your build
with the `--bisect` option
([https://github.com/bazelbuild/bazelisk/pull/451](https://togithub.com/bazelbuild/bazelisk/pull/451))
- ... is more robust in the face of transient GCS download issues
([https://github.com/bazelbuild/bazelisk/pull/459](https://togithub.com/bazelbuild/bazelisk/pull/459))

The Python version now properly recognises WORKSPACE.bazel files
([https://github.com/bazelbuild/bazelisk/pull/443](https://togithub.com/bazelbuild/bazelisk/pull/443)).

We’d like to thank our amazing contributors
[@&#8203;jmmv](https://togithub.com/jmmv) and
[@&#8203;jwnimmer-tri](https://togithub.com/jwnimmer-tri)!

</details>

<details>
<summary>bazelbuild/rules_go</summary>

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

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.39.0...v0.39.1)

#### What's Changed

- Reland "Add new darwin CC toolchain for tests
([#&#8203;3460](https://togithub.com/bazelbuild/rules_go/issues/3460))"
([#&#8203;3502](https://togithub.com/bazelbuild/rules_go/issues/3502))
- bzlmod: Remove build_file_proto_mode attribute
([#&#8203;3506](https://togithub.com/bazelbuild/rules_go/issues/3506))
- go_register_toolchains: update sdk_kinds
([#&#8203;3511](https://togithub.com/bazelbuild/rules_go/issues/3511))
- Ignore pre-compiled stdlib only on 1.19 with experiments
([#&#8203;3508](https://togithub.com/bazelbuild/rules_go/issues/3508))
- bzlmod: Fix repo name used by gopackagesdriver
([#&#8203;3516](https://togithub.com/bazelbuild/rules_go/issues/3516))
- Pass gc_goopts to stdlib
([#&#8203;3518](https://togithub.com/bazelbuild/rules_go/issues/3518))
- Drop coverage linker flags from stdlib build
([#&#8203;3522](https://togithub.com/bazelbuild/rules_go/issues/3522))
- Fix macOS CI after --remote_download_minimal flip
([#&#8203;3530](https://togithub.com/bazelbuild/rules_go/issues/3530))
- Add defines for assembly build
([#&#8203;3528](https://togithub.com/bazelbuild/rules_go/issues/3528))
- go_tool_binary: set GOMAXPROCS to 1
([#&#8203;3536](https://togithub.com/bazelbuild/rules_go/issues/3536))

**Full Changelog**:
https://github.com/bazelbuild/rules_go/compare/v0.39.0...v0.39.1

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

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.38.1...v0.39.0)

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"6b65cb7917b4d1709f9410ffe00ecf3e160edf674b78c54a894471320862184f",
        urls = [

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

"https://github.com/bazelbuild/rules_go/releases/download/v0.39.0/rules_go-v0.39.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.20.2")

#### What's Changed

- Make the toolchain's `go` binary available as a target by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3429](https://togithub.com/bazelbuild/rules_go/pull/3429)
- add bazel test rule for excluded packages in popular_repos by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- change build test name from 'need_test' to 'build_only' by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3449](https://togithub.com/bazelbuild/rules_go/pull/3449)
- fix a grammer issue by
[@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- go: support "all:" prefix for "go:embed" directives by
[@&#8203;malt3](https://togithub.com/malt3) in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- Remove `filter_transition_label` workaround by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3438](https://togithub.com/bazelbuild/rules_go/pull/3438)
- Extract generated code from BUILD.toolchains.bazel into a macro by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3439](https://togithub.com/bazelbuild/rules_go/pull/3439)
- bzlmod: Prohibit undesirable SDK registrations in non-root modules by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3440](https://togithub.com/bazelbuild/rules_go/pull/3440)
- update links to gazelle docs by
[@&#8203;garymm](https://togithub.com/garymm) in
[https://github.com/bazelbuild/rules_go/pull/3464](https://togithub.com/bazelbuild/rules_go/pull/3464)
- bzlmod: Improve SDK registration by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3443](https://togithub.com/bazelbuild/rules_go/pull/3443)
- Expand locations in `x_defs` values by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3473](https://togithub.com/bazelbuild/rules_go/pull/3473)
- Make `//go` usable in scripts run with `bazel run` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3474](https://togithub.com/bazelbuild/rules_go/pull/3474)
- Avoid repository rule restarts in go_sdk by
[@&#8203;jfirebaugh](https://togithub.com/jfirebaugh) in
[https://github.com/bazelbuild/rules_go/pull/3478](https://togithub.com/bazelbuild/rules_go/pull/3478)
- bzlmod: Test BCR test module on all platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3479](https://togithub.com/bazelbuild/rules_go/pull/3479)
- Improve error when linkmode requires cgo by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3482](https://togithub.com/bazelbuild/rules_go/pull/3482)
- Rename `error` script in `go_cross_binary` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3481](https://togithub.com/bazelbuild/rules_go/pull/3481)
- Only infer platforms from crosstool/cpu if at default by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3485](https://togithub.com/bazelbuild/rules_go/pull/3485)
- Add missing darwin CPUs to apple matcher by
[@&#8203;keith](https://togithub.com/keith) in
[https://github.com/bazelbuild/rules_go/pull/3461](https://togithub.com/bazelbuild/rules_go/pull/3461)
- Canonicalize tags before transitioning by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3484](https://togithub.com/bazelbuild/rules_go/pull/3484)
- Keep build tags that affect the stdlib build by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3488](https://togithub.com/bazelbuild/rules_go/pull/3488)
- Quote `CC` if it contains whitespace by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3491](https://togithub.com/bazelbuild/rules_go/pull/3491)
- Disable cgo by default with unsupported compilers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3493](https://togithub.com/bazelbuild/rules_go/pull/3493)
- Only install `runtime/cgo` with `pure = False` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3492](https://togithub.com/bazelbuild/rules_go/pull/3492)
- Use `ctx.readdir` instead of `ls` for SDK platform detection by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3497](https://togithub.com/bazelbuild/rules_go/pull/3497)

#### New Contributors

- [@&#8203;uberzzr](https://togithub.com/uberzzr) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- [@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- [@&#8203;malt3](https://togithub.com/malt3) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- [@&#8203;tyler-french](https://togithub.com/tyler-french) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3495](https://togithub.com/bazelbuild/rules_go/pull/3495)

**Full Changelog**:
https://github.com/bazelbuild/rules_go/compare/v0.38.0...v0.39.0

</details>

<details>
<summary>emicklei/proto</summary>

###
[`v1.11.2`](https://togithub.com/emicklei/proto/blob/HEAD/CHANGES.md#v1112-2023-05-01)

[Compare
Source](https://togithub.com/emicklei/proto/compare/v1.11.1...v1.11.2)

- fix Parse failure on negative reserved enums
([#&#8203;133](https://togithub.com/emicklei/proto/issues/133))

</details>

<details>
<summary>evanw/esbuild</summary>

###
[`v0.17.19`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.19)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.18...v0.17.19)

- Fix CSS transform bugs with nested selectors that start with a
combinator
([#&#8203;3096](https://togithub.com/evanw/esbuild/issues/3096))

This release fixes several bugs regarding transforming nested CSS into
non-nested CSS for older browsers. The bugs were due to lack of test
coverage for nested selectors with more than one compound selector where
they all start with the same combinator. Here's what some problematic
cases look like before and after these fixes:

    ```css
    /* Original code */
    .foo {
      > &a,
      > &b {
        color: red;
      }
    }
    .bar {
      > &a,
      + &b {
        color: green;
      }
    }

    /* Old output (with --target=chrome90) */
    .foo :is(> .fooa, > .foob) {
      color: red;
    }
    .bar :is(> .bara, + .barb) {
      color: green;
    }

    /* New output (with --target=chrome90) */
    .foo > :is(a.foo, b.foo) {
      color: red;
    }
    .bar > a.bar,
    .bar + b.bar {
      color: green;
    }
    ```

- Fix bug with TypeScript parsing of instantiation expressions followed
by `=` ([#&#8203;3111](https://togithub.com/evanw/esbuild/issues/3111))

This release fixes esbuild's TypeScript-to-JavaScript conversion code in
the case where a potential instantiation expression is followed
immediately by a `=` token (such that the trailing `>` becomes a `>=`
token). Previously esbuild considered that to still be an instantiation
expression, but the official TypeScript compiler considered it to be a
`>=` operator instead. This release changes esbuild's interpretation to
match TypeScript. This edge case currently [appears to be
problematic](https://sucrase.io/#transforms=typescript\&compareWithTypeScript=true\&code=x%3Cy%3E%3Da%3Cb%3Cc%3E%3E\(\))
for other TypeScript-to-JavaScript converters as well:

| Original code | TypeScript | esbuild 0.17.18 | esbuild 0.17.19 |
Sucrase | Babel |
    |---|---|---|---|---|---|
| `x<y>=a<b<c>>()` | `x<y>=a();` | `x=a();` | `x<y>=a();` | `x=a()` |
Invalid left-hand side in assignment expression |

- Avoid removing unrecognized directives from the directive prologue
when minifying
([#&#8203;3115](https://togithub.com/evanw/esbuild/issues/3115))

The [directive
prologue](https://262.ecma-international.org/6.0/#sec-directive-prologues-and-the-use-strict-directive)
in JavaScript is a sequence of top-level string expressions that come
before your code. The only directives that JavaScript engines currently
recognize are `use strict` and sometimes `use asm`. However, the people
behind React have made up their own directive for their own custom
dialect of JavaScript. Previously esbuild only preserved the `use
strict` directive when minifying, although you could still write React
JavaScript with esbuild using something like `--banner:js="'your
directive here';"`. With this release, you can now put arbitrary
directives in the entry point and esbuild will preserve them in its
minified output:

    ```js
    // Original code
    'use wtf'; console.log(123)

    // Old output (with --minify)
    console.log(123);

    // New output (with --minify)
    "use wtf";console.log(123);
    ```

Note that this means esbuild will no longer remove certain stray
top-level strings when minifying. This behavior is an intentional change
because these stray top-level strings are actually part of the directive
prologue, and could potentially have semantics assigned to them (as was
the case with React).

-   Improved minification of binary shift operators

With this release, esbuild's minifier will now evaluate the `<<` and
`>>>` operators if the resulting code would be shorter:

    ```js
    // Original code
    console.log(10 << 10, 10 << 20, -123 >>> 5, -123 >>> 10);

    // Old output (with --minify)
    console.log(10<<10,10<<20,-123>>>5,-123>>>10);

    // New output (with --minify)
    console.log(10240,10<<20,-123>>>5,4194303);
    ```

###
[`v0.17.18`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.18)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.17...v0.17.18)

- Fix non-default JSON import error with `export {} from`
([#&#8203;3070](https://togithub.com/evanw/esbuild/issues/3070))

This release fixes a bug where esbuild incorrectly identified statements
of the form `export { default as x } from "y" assert { type: "json" }`
as a non-default import. The bug did not affect code of the form `import
{ default as x } from ...` (only code that used the `export` keyword).

- Fix a crash with an invalid subpath import
([#&#8203;3067](https://togithub.com/evanw/esbuild/issues/3067))

Previously esbuild could crash when attempting to generate a friendly
error message for an invalid [subpath
import](https://nodejs.org/api/packages.html#subpath-imports) (i.e. an
import starting with `#`). This happened because esbuild originally only
supported the `exports` field and the code for that error message was
not updated when esbuild later added support for the `imports` field.
This crash has been fixed.

###
[`v0.17.17`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.17)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.16...v0.17.17)

- Fix CSS nesting transform for top-level `&`
([#&#8203;3052](https://togithub.com/evanw/esbuild/issues/3052))

Previously esbuild could crash with a stack overflow when lowering CSS
nesting rules with a top-level `&`, such as in the code below. This
happened because esbuild's CSS nesting transform didn't handle top-level
`&`, causing esbuild to inline the top-level selector into itself. This
release handles top-level `&` by replacing it with [the `:scope`
pseudo-class](https://drafts.csswg.org/selectors-4/#the-scope-pseudo):

    ```css
    /* Original code */
    &,
    a {
      .b {
        color: red;
      }
    }

    /* New output (with --target=chrome90) */
    :is(:scope, a) .b {
      color: red;
    }
    ```

- Support `exports` in `package.json` for `extends` in `tsconfig.json`
([#&#8203;3058](https://togithub.com/evanw/esbuild/issues/3058))

TypeScript 5.0 added the ability to use `extends` in `tsconfig.json` to
reference a path in a package whose `package.json` file contains an
`exports` map that points to the correct location. This doesn't
automatically work in esbuild because `tsconfig.json` affects esbuild's
path resolution, so esbuild's normal path resolution logic doesn't
apply.

This release adds support for doing this by adding some additional code
that attempts to resolve the `extends` path using the `exports` field.
The behavior should be similar enough to esbuild's main path resolution
logic to work as expected.

Note that esbuild always treats this `extends` import as a `require()`
import since that's what TypeScript appears to do. Specifically the
`require` condition will be active and the `import` condition will be
inactive.

- Fix watch mode with `NODE_PATH`
([#&#8203;3062](https://togithub.com/evanw/esbuild/issues/3062))

Node has a rarely-used feature where you can extend the set of
directories that node searches for packages using the `NODE_PATH`
environment variable. While esbuild supports this too, previously a bug
prevented esbuild's watch mode from picking up changes to imported files
that were contained directly in a `NODE_PATH` directory. You're supposed
to use `NODE_PATH` for packages, but some people abuse this feature by
putting files in that directory instead (e.g.
`node_modules/some-file.js` instead of
`node_modules/some-pkg/some-file.js`). The watch mode bug happens when
you do this because esbuild first tries to read `some-file.js` as a
directory and then as a file. Watch mode was incorrectly waiting for
`some-file.js` to become a valid directory. This release fixes this edge
case bug by changing watch mode to watch `some-file.js` as a file when
this happens.

###
[`v0.17.16`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.16)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.15...v0.17.16)

- Fix CSS nesting transform for triple-nested rules that start with a
combinator
([#&#8203;3046](https://togithub.com/evanw/esbuild/issues/3046))

This release fixes a bug with esbuild where triple-nested CSS rules that
start with a combinator were not transformed correctly for older
browsers. Here's an example of such a case before and after this bug
fix:

    ```css
    /* Original input */
    .a {
      color: red;
      > .b {
        color: green;
        > .c {
          color: blue;
        }
      }
    }

    /* Old output (with --target=chrome90) */
    .a {
      color: red;
    }
    .a > .b {
      color: green;
    }
    .a .b > .c {
      color: blue;
    }

    /* New output (with --target=chrome90) */
    .a {
      color: red;
    }
    .a > .b {
      color: green;
    }
    .a > .b > .c {
      color: blue;
    }
    ```

- Support `--inject` with a file loaded using the `copy` loader
([#&#8203;3041](https://togithub.com/evanw/esbuild/issues/3041))

This release now allows you to use `--inject` with a file that is loaded
using the `copy` loader. The `copy` loader copies the imported file to
the output directory verbatim and rewrites the path in the `import`
statement to point to the copied output file. When used with `--inject`,
this means the injected file will be copied to the output directory
as-is and a bare `import` statement for that file will be inserted in
any non-copy output files that esbuild generates.

Note that since esbuild doesn't parse the contents of copied files,
esbuild will not expose any of the export names as usable imports when
you do this (in the way that esbuild's `--inject` feature is typically
used). However, any side-effects that the injected file has will still
occur.

###
[`v0.17.15`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.15)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.14...v0.17.15)

- Allow keywords as type parameter names in mapped types
([#&#8203;3033](https://togithub.com/evanw/esbuild/issues/3033))

TypeScript allows type keywords to be used as parameter names in mapped
types. Previously esbuild incorrectly treated this as an error. Code
that does this is now supported:

    ```ts
    type Foo = 'a' | 'b' | 'c'
    type A = { [keyof in Foo]: number }
    type B = { [infer in Foo]: number }
    type C = { [readonly in Foo]: number }
    ```

- Add annotations for re-exported modules in node
([#&#8203;2486](https://togithub.com/evanw/esbuild/issues/2486),
[#&#8203;3029](https://togithub.com/evanw/esbuild/issues/3029))

Node lets you import named imports from a CommonJS module using ESM
import syntax. However, the allowed names aren't derived from the
properties of the CommonJS module. Instead they are derived from an
arbitrary syntax-only analysis of the CommonJS module's JavaScript AST.

To accommodate node doing this, esbuild's ESM-to-CommonJS conversion
adds a special non-executable "annotation" for node that describes the
exports that node should expose in this scenario. It takes the form `0
&& (module.exports = { ... })` and comes at the end of the file (`0 &&
expr` means `expr` is never evaluated).

Previously esbuild didn't do this for modules re-exported using the
`export * from` syntax. Annotations for these re-exports will now be
added starting with this release:

    ```js
    // Original input
    export { foo } from './foo'
    export * from './bar'

    // Old output (with --format=cjs --platform=node)
    ...
    0 && (module.exports = {
      foo
    });

    // New output (with --format=cjs --platform=node)
    ...
    0 && (module.exports = {
      foo,
      ...require("./bar")
    });
    ```

Note that you need to specify both `--format=cjs` and `--platform=node`
to get these node-specific annotations.

- Avoid printing an unnecessary space in between a number and a `.`
([#&#8203;3026](https://togithub.com/evanw/esbuild/pull/3026))

JavaScript typically requires a space in between a number token and a
`.` token to avoid the `.` being interpreted as a decimal point instead
of a member expression. However, this space is not required if the
number token itself contains a decimal point, an exponent, or uses a
base other than 10. This release of esbuild now avoids printing the
unnecessary space in these cases:

    ```js
    // Original input
    foo(1000 .x, 0 .x, 0.1 .x, 0.0001 .x, 0xFFFF_0000_FFFF_0000 .x)

    // Old output (with --minify)
    foo(1e3 .x,0 .x,.1 .x,1e-4 .x,0xffff0000ffff0000 .x);

    // New output (with --minify)
    foo(1e3.x,0 .x,.1.x,1e-4.x,0xffff0000ffff0000.x);
    ```

- Fix server-sent events with live reload when writing to the file
system root
([#&#8203;3027](https://togithub.com/evanw/esbuild/issues/3027))

This release fixes a bug where esbuild previously failed to emit
server-sent events for live reload when `outdir` was the file system
root, such as `/`. This happened because `/` is the only path on Unix
that cannot have a trailing slash trimmed from it, which was fixed by
improved path handling.

###
[`v0.17.14`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.14)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.13...v0.17.14)

- Allow the TypeScript 5.0 `const` modifier in object type declarations
([#&#8203;3021](https://togithub.com/evanw/esbuild/issues/3021))

The new TypeScript 5.0 `const` modifier was added to esbuild in version
0.17.5, and works with classes, functions, and arrow expressions.
However, support for it wasn't added to object type declarations (e.g.
interfaces) due to an oversight. This release adds support for these
cases, so the following TypeScript 5.0 code can now be built with
esbuild:

    ```ts
    interface Foo { <const T>(): T }
    type Bar = { new <const T>(): T }
    ```

- Implement preliminary lowering for CSS nesting
([#&#8203;1945](https://togithub.com/evanw/esbuild/issues/1945))

Chrome has [implemented the new CSS nesting
specification](https://developer.chrome.com/articles/css-nesting/) in
version 112, which is currently in beta but will become stable very
soon. So CSS nesting is now a part of the web platform!

This release of esbuild can now transform nested CSS syntax into
non-nested CSS syntax for older browsers. The transformation relies on
the `:is()` pseudo-class in many cases, so the transformation is only
guaranteed to work when targeting browsers that support `:is()` (e.g.
Chrome 88+). You'll need to set esbuild's
[`target`](https://esbuild.github.io/api/#target) to the browsers you
intend to support to tell esbuild to do this transformation. You will
get a warning if you use CSS nesting syntax with a `target` which
includes older browsers that don't support `:is()`.

    The lowering transformation looks like this:

    ```css
    /* Original input */
    a.btn {
      color: #&#8203;333;
      &:hover { color: #&#8203;444 }
      &:active { color: #&#8203;555 }
    }

    /* New output (with --target=chrome88) */
    a.btn {
      color: #&#8203;333;
    }
    a.btn:hover {
      color: #&#8203;444;
    }
    a.btn:active {
      color: #&#8203;555;
    }
    ```

    More complex cases may generate the `:is()` pseudo-class:

    ```css
    /* Original input */
    div, p {
      .warning, .error {
        padding: 20px;
      }
    }

    /* New output (with --target=chrome88) */
    :is(div, p) :is(.warning, .error) {
      padding: 20px;
    }
    ```

In addition, esbuild now has a special warning message for nested style
rules that start with an identifier. This isn't allowed in CSS because
the syntax would be ambiguous with the existing declaration syntax. The
new warning message looks like this:

▲ [WARNING] A nested style rule cannot start with "p" because it looks
like the start of a declaration [css-syntax-error]

            <stdin>:1:7:
              1 │ main { p { margin: auto } }
                │        ^
                ╵        :is(p)

To start a nested style rule with an identifier, you need to wrap the
identifier in ":is(...)" to
          prevent the rule from being parsed as a declaration.

Keep in mind that the transformation in this release is a preliminary
implementation. CSS has many features that interact in complex ways, and
there may be some edge cases that don't work correctly yet.

-   Minification now removes unnecessary `&` CSS nesting selectors

This release introduces the following CSS minification optimizations:

    ```css
    /* Original input */
    a {
      font-weight: bold;
      & {
        color: blue;
      }
      & :hover {
        text-decoration: underline;
      }
    }

    /* Old output (with --minify) */
a{font-weight:700;&{color:#&#8203;00f}&
:hover{text-decoration:underline}}

    /* New output (with --minify) */
a{font-weight:700;:hover{text-decoration:underline}color:#&#8203;00f}
    ```

-   Minification now removes duplicates from CSS selector lists

    This release introduces the following CSS minification optimization:

    ```css
    /* Original input */
    div, div { color: red }

    /* Old output (with --minify) */
    div,div{color:red}

    /* New output (with --minify) */
    div{color:red}
    ```

###
[`v0.17.13`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.13)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.12...v0.17.13)

- Work around an issue with `NODE_PATH` and Go's WebAssembly internals
([#&#8203;3001](https://togithub.com/evanw/esbuild/issues/3001))

Go's WebAssembly implementation returns `EINVAL` instead of `ENOTDIR`
when using the `readdir` syscall on a file. This messes up esbuild's
implementation of node's module resolution algorithm since encountering
`ENOTDIR` causes esbuild to continue its search (since it's a normal
condition) while other encountering other errors causes esbuild to fail
with an I/O error (since it's an unexpected condition). You can
encounter this issue in practice if you use node's legacy `NODE_PATH`
feature to tell esbuild to resolve node modules in a custom directory
that was not installed by npm. This release works around this problem by
converting `EINVAL` into `ENOTDIR` for the `readdir` syscall.

- Fix a minification bug with CSS `@layer` rules that have parsing
errors ([#&#8203;3016](https://togithub.com/evanw/esbuild/issues/3016))

CSS at-rules [require either a `{}` block or a semicolon at the
end](https://www.w3.org/TR/css-syntax-3/#consume-at-rule). Omitting both
of these causes esbuild to treat the rule as an unknown at-rule.
Previous releases of esbuild had a bug that incorrectly removed unknown
at-rules without any children during minification if the at-rule token
matched an at-rule that esbuild can handle. Specifically
[cssnano](https://cssnano.co/) can generate `@layer` rules with parsing
errors, and empty `@layer` rules cannot be removed because they have
side effects (`@layer` didn't exist when esbuild's CSS support was
added, so esbuild wasn't written to handle this). This release changes
esbuild to no longer discard `@layer` rules with parsing errors when
minifying (the rule `@layer c` has a parsing error):

    ```css
    /* Original input */
    @&#8203;layer a {
      @&#8203;layer b {
        @&#8203;layer c
      }
    }

    /* Old output (with --minify) */
    @&#8203;layer a.b;

    /* New output (with --minify) */
    @&#8203;layer a.b.c;
    ```

-   Unterminated strings in CSS are no longer an error

The CSS specification provides [rules for handling parsing
errors](https://www.w3.org/TR/CSS22/syndata.html#parsing-errors). One of
those rules is that user agents must close strings upon reaching the end
of a line (i.e., before an unescaped line feed, carriage return or form
feed character), but then drop the construct (declaration or rule) in
which the string was found. For example:

    ```css
    p {
      color: green;
      font-family: 'Courier New Times
      color: red;
      color: green;
    }
    ```

    ...would be treated the same as:

    ```css
    p { color: green; color: green; }
    ```

...because the second declaration (from `font-family` to the semicolon
after `color: red`) is invalid and is dropped.

Previously using this CSS with esbuild failed to build due to a syntax
error, even though the code can be interpreted by a browser. With this
release, the code now produces a warning instead of an error, and
esbuild prints the invalid CSS such that it stays invalid in the output:

    ```css
    /* esbuild's new non-minified output: */
    p {
      color: green;
      font-family: 'Courier New Times
      color: red;
      color: green;
    }
    ```

    ```css
    /* esbuild's new minified output: */
    p{font-family:'Courier New Times
    color: red;color:green}
    ```

###
[`v0.17.12`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.12)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.11...v0.17.12)

- Fix a crash when parsing inline TypeScript decorators
([#&#8203;2991](https://togithub.com/evanw/esbuild/issues/2991))

Previously esbuild's TypeScript parser crashed when parsing TypeScript
decorators if the definition of the decorator was inlined into the
decorator itself:

    ```ts
    @&#8203;(function sealed(constructor: Function) {
      Object.seal(constructor);
      Object.seal(constructor.prototype);
    })
    class Foo {}
    ```

This crash was not noticed earlier because this edge case did not have
test coverage. The crash is fixed in this release.

###
[`v0.17.11`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.11)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.10...v0.17.11)

- Fix the `alias` feature to always prefer the longest match
([#&#8203;2963](https://togithub.com/evanw/esbuild/issues/2963))

It's possible to configure conflicting aliases such as `--alias:a=b` and
`--alias:a/c=d`, which is ambiguous for the import path `a/c/x` (since
it could map to either `b/c/x` or `d/x`). Previously esbuild would pick
the first matching `alias`, which would non-deterministically pick
between one of the possible matches. This release fixes esbuild to
always deterministically pick the longest possible match.

- Minify calls to some global primitive constructors
([#&#8203;2962](https://togithub.com/evanw/esbuild/issues/2962))

With this release, esbuild's minifier now replaces calls to
`Boolean`/`Number`/`String`/`BigInt` with equivalent shorter code when
relevant:

    ```js
    // Original code
    console.log(
      Boolean(a ? (b | c) !== 0 : (c & d) !== 0),
      Number(e ? '1' : '2'),
      String(e ? '1' : '2'),
      BigInt(e ? 1n : 2n),
    )

    // Old output (with --minify)

console.log(Boolean(a?(b|c)!==0:(c&d)!==0),Number(e?"1":"2"),String(e?"1":"2"),BigInt(e?1n:2n));

    // New output (with --minify)
    console.log(!!(a?b|c:c&d),+(e?"1":"2"),e?"1":"2",e?1n:2n);
    ```

- Adjust some feature compatibility tables for node
([#&#8203;2940](https://togithub.com/evanw/esbuild/issues/2940))

This release makes the following adjustments to esbuild's internal
feature compatibility tables for node, which tell esbuild which versions
of node are known to support all aspects of that feature:

- `class-private-brand-checks`: node v16.9+ => node v16.4+ (a decrease)
    -   `hashbang`: node v12.0+ => node v12.5+ (an increase)
    -   `optional-chain`: node v16.9+ => node v16.1+ (a decrease)
    -   `template-literal`: node v4+ => node v10+ (an increase)

Each of these adjustments was identified by comparing against data from
the `node-compat-table` package and was manually verified using old node
executables downloaded from https://nodejs.org/download/release/.

###
[`v0.17.10`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.10)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.9...v0.17.10)

- Update esbuild's handling of CSS nesting to match the latest
specification changes
([#&#8203;1945](https://togithub.com/evanw/esbuild/issues/1945))

The syntax for the upcoming CSS nesting feature has [recently
changed](https://webkit.org/blog/13813/try-css-nesting-today-in-safari-technology-preview/).
The `@nest` prefix that was previously required in some cases is now
gone, and nested rules no longer have to start with `&` (as long as they
don't start with an identifier or function token).

This release updates esbuild's pass-through handling of CSS nesting
syntax to match the latest specification changes. So you can now use
esbuild to bundle CSS containing nested rules and try them out in a
browser that supports CSS nesting (which includes nightly builds of both
Chrome and Safari).

However, I'm not implementing lowering of nested CSS to non-nested CSS
for older browsers yet. While the syntax has been decided, the semantics
are still in flux. In particular, there is still some debate about
changing the fundamental way that CSS nesting works. For example, you
might think that the following CSS is equivalent to a `.outer .inner
button { ... }` rule:

    ```css
    .inner button {
      .outer & {
        color: red;
      }
    }
    ```

But instead it's actually equivalent to a `.outer :is(.inner button) {
... }` rule which unintuitively also matches the following DOM
structure:

    ```html
    <div class="inner">
      <div class="outer">
        <button></button>
      </div>
    </div>
    ```

The `:is()` behavior is preferred by browser implementers because it's
more memory-efficient, but the straightforward translation into a
`.outer .inner button { ... }` rule is preferred by developers used to
the existing CSS preprocessing ecosystem (e.g. SASS). It seems premature
to commit esbuild to specific semantics for this syntax at this time
given the ongoing debate.

- Fix cross-file CSS rule deduplication involving `url()` tokens
([#&#8203;2936](https://togithub.com/evanw/esbuild/issues/2936))

Previously cross-file CSS rule deduplication didn't handle `url()`
tokens correctly. These tokens contain references to import paths which
may be internal (i.e. in the bundle) or external (i.e. not in the
bundle). When comparing two `url()` tokens for equality, the underlying
import paths should be compared instead of their references. This
release of esbuild fixes `url()` token comparisons. One side effect is
that `@font-face` rules should now be deduplicated correctly across
files:

    ```css
    /* Original code */
    @&#8203;import "data:text/css, \
      @&#8203;import 'http://example.com/style.css'; \
      @&#8203;font-face { src: url(http://example.com/font.ttf) }";
    @&#8203;import "data:text/css, \
      @&#8203;font-face { src: url(http://example.com/font.ttf) }";

    /* Old output (with --bundle --minify) */

@&#8203;import"http://example.com/style.css";@&#8203;font-face{src:url(http://example.com/font.ttf)}@&#8203;font-face{src:url(http://example.com/font.ttf)}

    /* New output (with --bundle --minify) */

@&#8203;import"http://example.com/style.css";@&#8203;font-face{src:url(http://example.com/font.ttf)}
    ```

### [`v0.17.9`](https://togithub.com/evanw/esbuild/releases/tag/v0.17.9)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.17.8...v0.17.9)

- Parse rest bindings in TypeScript types
([#&#8203;2937](https://togithub.com/evanw/esbuild/issues/2937))

Previously esbuild was unable to parse the following valid TypeScript
code:

    ```ts
    let tuple: (...[e1, e2, ...es]: any) => any
    ```

    This release includes support for parsing code 

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

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.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 [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/aspect-build/silo).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDUuMiIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Signed-off-by: Thulio Ferraz Assis <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Thulio Ferraz Assis <[email protected]>
@sluongng
Copy link
Contributor

sluongng commented Nov 6, 2023

Reading the source today and goos plural being gees cracked me up. 🤣

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