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

Added well-known types generated by vtproto plugin #93

Merged
1 commit merged into from
Oct 2, 2023

Conversation

biosvs
Copy link
Contributor

@biosvs biosvs commented Sep 7, 2023

Another approach that was discussed in a comments to #80.

The idea is to generate wkt using the same plugin (vtProto) and to store generated code in the same repo.

From developers perspective, to use these pre-generated code they have to:

  1. Extend protoc arguments with imports replacements.
  2. Change import paths in a source code.

The same information added to readme. Please find example of usage in an added unit tests.

(There are more wkt in original probouf repo, but I skipped those are made for internal usage - those are describing protobuf implementation itself like types, structure, descriptor, etc.)

Signed-off-by: Vitalii Levitskii <vitalii@uber.com>
@biosvs
Copy link
Contributor Author

biosvs commented Sep 12, 2023

I think we have to make some decision regarding well-known types.

сс @nockty @vmg

@vmg
Copy link
Member

vmg commented Sep 12, 2023

I agree. I spent some time this morning looking at the two existing PRs. My order of preference would be:

  1. Custom serialization functions exposed in the vtprotobuf package as free-standing functions (i.e. not methods, because we can't do methods) that get automatically called by the generated code. This hasn't been implemented yet.

    • 🟢 Efficient from a code-generation standpoint
    • 🟢 Transparent to the user, works automatically
    • 🔴 We don't get to (de)serialize unknownFields
  2. Custom types with aliases (this PR, Added well-known types generated by vtproto plugin #93)

    • 🟢 Efficient from a code-generation standpoint
    • 🟢 Supports unknownFields
    • 🔴 Annoying set-up step during compilation
    • 🔴 Not transparent: types have been changed
  3. Custom in-line generation (External well-known structures support #80)

    • 🟢 Transparent to the user, works automatically
    • 🔴 We don't get to (de)serialize unknownFields
    • 🔴 Inefficient from a code-generation standpoint

IMO I really don't see an issue with not supporting unknownFields. The WKTs have been frozen for years and they are not going to change anytime soon. They won't show up on the wire with extra fields. I think as long as we state this limitation explicitly, approach (1) is by far the most ergonomic.

I'm gonna spend some time today implementing it. Can somebody point out a shortcoming of (1) that I missed?

@nockty
Copy link
Contributor

nockty commented Sep 12, 2023

Thanks for moving the discussion forward and thanks a lot for providing an implementation @biosvs!

My two cents: I think I tend to prefer something like approach (1) as well because, in my opinion, the simplicity of using basic features of vtprotobuf is a major selling point. Currently, you just have to easily generate code and change a couple calls (proto.Unmarshal(...) => message.UnmarshalVT(...)) and it just works, which I think is a valuable trait and something worth trying to keep (for basic features).

@biosvs
Copy link
Contributor Author

biosvs commented Sep 12, 2023

I'm okay with that approach (to hide implementation inside generated code).

But I want to be sure we're on the same page: (Un)MarshalVT functions for wkt should be pre-generated and placed in the vtProto repo, so, we're still adding vtProto repository as a hard dependency to projects that are using vtProto and wkt, right?

@vmg
Copy link
Member

vmg commented Sep 12, 2023

Yes, that would be the case. I'll definitely add an optional flag to fallback to reflection-based methods for people who don't want the dependency.

@biosvs
Copy link
Contributor Author

biosvs commented Sep 12, 2023

Let's then have an overview of proposed changes.

Features management and code quality

Two new features were mentioned:

  1. Add new flag for generating standalone functions - with different signature and different unknownFields handling (as code for well-known types itself should be generated somehow).
  2. Add new flag to specify marshal/unmarshal methods for wkt (native reflection vs pre-generated code).

Does someone have ideas how to manage it without additional levels of if's in code (there are enough of them already)?

Interaction between standalone functions

How should interact (un)marshal and size functions, for example? I mean, now it's done as follows:
if _, ok := m.(interface{SizeVt() int}); ok
With a standalone function it's more complicated (if feasible).

Other existing features

There are more features: like clone, equal, pool, size. Should standalone functions feature be implemented for them too?

@vmg vmg closed this pull request by merging all changes into planetscale:main in d49cd97 Oct 2, 2023
@biosvs biosvs deleted the add-wkt-types branch October 2, 2023 17:44
charithe added a commit to cerbos/cerbos that referenced this pull request Feb 5, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go |
`v1.31.0-20230914171853-63dfe56cc2c4.1` ->
`v1.32.0-20231115204500-e097f827e652.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fbufbuild%2fprotovalidate%2fprotocolbuffers%2fgo/v1.32.0-20231115204500-e097f827e652.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fbufbuild%2fprotovalidate%2fprotocolbuffers%2fgo/v1.32.0-20231115204500-e097f827e652.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fbufbuild%2fprotovalidate%2fprotocolbuffers%2fgo/v1.31.0-20230914171853-63dfe56cc2c4.1/v1.32.0-20231115204500-e097f827e652.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fbufbuild%2fprotovalidate%2fprotocolbuffers%2fgo/v1.31.0-20230914171853-63dfe56cc2c4.1/v1.32.0-20231115204500-e097f827e652.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [github.com/aws/aws-sdk-go](https://togithub.com/aws/aws-sdk-go) |
`v1.50.1` -> `v1.50.10` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go/v1.50.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go/v1.50.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go/v1.50.1/v1.50.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go/v1.50.1/v1.50.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [github.com/bufbuild/buf](https://togithub.com/bufbuild/buf) |
`v1.28.1` -> `v1.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fbufbuild%2fbuf/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fbufbuild%2fbuf/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fbufbuild%2fbuf/v1.28.1/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fbufbuild%2fbuf/v1.28.1/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [github.com/goccy/go-yaml](https://togithub.com/goccy/go-yaml) |
`v1.11.2` -> `v1.11.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgoccy%2fgo-yaml/v1.11.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgoccy%2fgo-yaml/v1.11.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgoccy%2fgo-yaml/v1.11.2/v1.11.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgoccy%2fgo-yaml/v1.11.2/v1.11.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [github.com/google/uuid](https://togithub.com/google/uuid) | `v1.5.0`
-> `v1.6.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgoogle%2fuuid/v1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgoogle%2fuuid/v1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgoogle%2fuuid/v1.5.0/v1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgoogle%2fuuid/v1.5.0/v1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[github.com/grpc-ecosystem/grpc-gateway/v2](https://togithub.com/grpc-ecosystem/grpc-gateway)
| `v2.19.0` -> `v2.19.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.19.0/v2.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.19.0/v2.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [github.com/jackc/pgx/v5](https://togithub.com/jackc/pgx) | `v5.5.2`
-> `v5.5.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fjackc%2fpgx%2fv5/v5.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fjackc%2fpgx%2fv5/v5.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fjackc%2fpgx%2fv5/v5.5.2/v5.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fjackc%2fpgx%2fv5/v5.5.2/v5.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/planetscale/vtprotobuf](https://togithub.com/planetscale/vtprotobuf)
| `v0.5.0` -> `v0.6.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fplanetscale%2fvtprotobuf/v0.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fplanetscale%2fvtprotobuf/v0.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fplanetscale%2fvtprotobuf/v0.5.0/v0.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fplanetscale%2fvtprotobuf/v0.5.0/v0.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [github.com/pterm/pterm](https://togithub.com/pterm/pterm) |
`v0.12.75` -> `v0.12.78` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fpterm%2fpterm/v0.12.78?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fpterm%2fpterm/v0.12.78?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fpterm%2fpterm/v0.12.75/v0.12.78?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fpterm%2fpterm/v0.12.75/v0.12.78?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [github.com/rivo/tview](https://togithub.com/rivo/tview) | `8526c9f`
-> `861aa94` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2frivo%2ftview/?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2frivo%2ftview/?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2frivo%2ftview/v0.0.0-20240122063236-8526c9fe1b54/?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2frivo%2ftview/v0.0.0-20240122063236-8526c9fe1b54/?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | digest |
|
[google.golang.org/genproto/googleapis/api](https://togithub.com/googleapis/go-genproto)
| `ef43131` -> `1f4bbc5` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20240123012728-ef4313101c80/?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20240123012728-ef4313101c80/?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | digest |
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) |
`v1.60.1` -> `v1.61.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.60.1/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.60.1/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |

---

### Release Notes

<details>
<summary>aws/aws-sdk-go (github.com/aws/aws-sdk-go)</summary>

###
[`v1.50.10`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v15010-2024-02-02)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.50.9...v1.50.10)

\===

##### Service Client Updates

- `service/dynamodb`: Updates service API, documentation, waiters,
paginators, and examples
- Any number of users can execute up to 50 concurrent restores (any type
of restore) in a given account.
-   `service/sagemaker`: Updates service API and documentation
- Amazon SageMaker Canvas adds GenerativeAiSettings support for
CanvasAppSettings.

###
[`v1.50.9`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1509-2024-02-01)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.50.8...v1.50.9)

\===

##### Service Client Updates

-   `service/cognito-idp`: Updates service API and documentation
-   `service/ivs`: Updates service API, documentation, and paginators
- `service/managedblockchain-query`: Updates service API and
documentation
-   `service/mediaconvert`: Updates service API and documentation
- This release includes support for broadcast-mixed audio description
tracks.

###
[`v1.50.8`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1508-2024-01-31)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.50.7...v1.50.8)

\===

##### Service Client Updates

- `service/cloudformation`: Updates service API, documentation,
paginators, and examples
- CloudFormation IaC generator allows you to scan existing resources in
your account and select resources to generate a template for a new or
existing CloudFormation stack.
- `service/elasticloadbalancingv2`: Updates service API and
documentation
-   `service/glue`: Updates service API and documentation
    -   Update page size limits for GetJobRuns and GetTriggers APIs.
-   `service/ssm`: Updates service API and documentation
- This release adds an optional Duration parameter to StateManager
Associations. This allows customers to specify how long an
apply-only-on-cron association execution should run. Once the specified
Duration is out all the ongoing cancellable commands or automations are
cancelled.

###
[`v1.50.7`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1507-2024-01-30)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.50.6...v1.50.7)

\===

##### Service Client Updates

-   `service/datazone`: Updates service API and documentation
-   `service/route53`: Updates service documentation
    -   Update the SDKs for text changes in the APIs.

###
[`v1.50.6`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1506-2024-01-29)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.50.5...v1.50.6)

\===

##### Service Client Updates

-   `service/autoscaling`: Updates service API and documentation
- EC2 Auto Scaling customers who use attribute based instance-type
selection can now intuitively define their Spot instances price
protection limit as a percentage of the lowest priced On-Demand instance
type.
-   `service/comprehend`: Updates service documentation
-   `service/ec2`: Updates service API and documentation
- EC2 Fleet customers who use attribute based instance-type selection
can now intuitively define their Spot instances price protection limit
as a percentage of the lowest priced On-Demand instance type.
-   `service/mwaa`: Updates service API and documentation
- `service/rds`: Updates service API, documentation, waiters,
paginators, and examples
- Introduced support for the InsufficientDBInstanceCapacityFault error
in the RDS RestoreDBClusterFromSnapshot and
RestoreDBClusterToPointInTime API methods. This provides enhanced error
handling, ensuring a more robust experience.
-   `service/snowball`: Updates service documentation
- Modified description of createaddress to include direction to add path
when providing a JSON file.

###
[`v1.50.5`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1505-2024-01-26)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.50.4...v1.50.5)

\===

##### Service Client Updates

-   `service/connect`: Updates service API
-   `service/inspector2`: Updates service API and documentation
-   `service/sagemaker`: Updates service API and documentation
- Amazon SageMaker Automatic Model Tuning now provides an API to
programmatically delete tuning jobs.

###
[`v1.50.4`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1504-2024-01-25)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.50.3...v1.50.4)

\===

##### Service Client Updates

-   `service/acm-pca`: Updates service API, documentation, and waiters
-   `service/lightsail`: Updates service API and documentation
    -   This release adds support for IPv6-only instance plans.

###
[`v1.50.3`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1503-2024-01-24)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.50.2...v1.50.3)

\===

##### Service Client Updates

-   `service/ec2`: Updates service API and documentation
- Introduced a new clientToken request parameter on CreateNetworkAcl and
CreateRouteTable APIs. The clientToken parameter allows idempotent
operations on the APIs.
-   `service/ecs`: Updates service documentation
    -   Documentation updates for Amazon ECS.
-   `service/outposts`: Updates service API
- `service/rds`: Updates service API, documentation, waiters,
paginators, and examples
    -   This release adds support for Aurora Limitless Database.
-   `service/storagegateway`: Updates service API and documentation
- Add DeprecationDate and SoftwareVersion to response of ListGateways.

###
[`v1.50.2`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1502-2024-01-23)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.50.1...v1.50.2)

\===

##### Service Client Updates

- `service/inspector2`: Updates service API, documentation, and
paginators

</details>

<details>
<summary>bufbuild/buf (github.com/bufbuild/buf)</summary>

###
[`v1.29.0`](https://togithub.com/bufbuild/buf/blob/HEAD/CHANGELOG.md#v1290---2024-01-24)

[Compare
Source](https://togithub.com/bufbuild/buf/compare/v1.28.1...v1.29.0)

- Add support for `yaml` format. All commands that take image inputs,
output images,
or convert between message formats, now take `yaml` as a format, in
addition to
    the existing `binpb` and `txtpb` formats. Some examples:
    -   `buf build -o image.yaml`
    -   `buf ls-files image.yaml`
    -   `buf convert --type foo.Bar --from input.binpb --to output.yaml`
- The `yaml` and `json` formats now accept two new options:
`use_proto_names` and
`use_enum_numbers`. This affects output serialization. Some examples:
- `buf convert --type foo.Bar --from input.binpb --to
output.yaml#use_proto_names=true`
- `buf convert --type foo.Bar --from input.binpb --to
-#format=yaml,use_enum_numbers=true`
- Fix issue where `buf format` would inadvertently mangle files that
used
the [expanded `Any`
syntax](https://protobuf.com/docs/language-spec#any-messages)
    in option values.

</details>

<details>
<summary>goccy/go-yaml (github.com/goccy/go-yaml)</summary>

###
[`v1.11.3`](https://togithub.com/goccy/go-yaml/releases/tag/v1.11.3):
1.11.3

[Compare
Source](https://togithub.com/goccy/go-yaml/compare/v1.11.2...v1.11.3)

#### What's Changed

- fix: remove any trailing empty lines if the block scalar has strip
indicator by [@&#8203;zoncoen](https://togithub.com/zoncoen) in
[goccy/go-yaml#421

**Full Changelog**:
goccy/go-yaml@v1.11.2...v1.11.3

</details>

<details>
<summary>google/uuid (github.com/google/uuid)</summary>

### [`v1.6.0`](https://togithub.com/google/uuid/releases/tag/v1.6.0)

[Compare
Source](https://togithub.com/google/uuid/compare/v1.5.0...v1.6.0)

##### Features

- add Max UUID constant
([#&#8203;149](https://togithub.com/google/uuid/issues/149))
([c58770e](https://togithub.com/google/uuid/commit/c58770eb495f55fe2ced6284f93c5158a62e53e3))

##### Bug Fixes

- fix typo in version 7 uuid documentation
([#&#8203;153](https://togithub.com/google/uuid/issues/153))
([016b199](https://togithub.com/google/uuid/commit/016b199544692f745ffc8867b914129ecb47ef06))
- Monotonicity in UUIDv7
([#&#8203;150](https://togithub.com/google/uuid/issues/150))
([a2b2b32](https://togithub.com/google/uuid/commit/a2b2b32373ff0b1a312b7fdf6d38a977099698a6))

</details>

<details>
<summary>grpc-ecosystem/grpc-gateway
(github.com/grpc-ecosystem/grpc-gateway/v2)</summary>

###
[`v2.19.1`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.19.1)

[Compare
Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.19.0...v2.19.1)

#### What's Changed

- (fix) remove internal comments from generated protoComments by
[@&#8203;kiambogo](https://togithub.com/kiambogo) in
[grpc-ecosystem/grpc-gateway#3864
- fix(protoc-gen-openapiv2): exclude from query params oneof fields in
the same group as the one used in the body by
[@&#8203;ovargas](https://togithub.com/ovargas) in
[grpc-ecosystem/grpc-gateway#3862
- If no subfields are set in a map, add the field to fieldMask by
[@&#8203;sbansal7](https://togithub.com/sbansal7) in
[grpc-ecosystem/grpc-gateway#3879
- Parse request body when using X-HTTP-Method-Override header by
[@&#8203;eyasy1217](https://togithub.com/eyasy1217) in
[grpc-ecosystem/grpc-gateway#3918
- fix path param override by query params by
[@&#8203;ljmsc](https://togithub.com/ljmsc) in
[grpc-ecosystem/grpc-gateway#3946

#### New Contributors

- [@&#8203;kiambogo](https://togithub.com/kiambogo) made their first
contribution in
[grpc-ecosystem/grpc-gateway#3864
- [@&#8203;ovargas](https://togithub.com/ovargas) made their first
contribution in
[grpc-ecosystem/grpc-gateway#3862
- [@&#8203;sbansal7](https://togithub.com/sbansal7) made their first
contribution in
[grpc-ecosystem/grpc-gateway#3879
- [@&#8203;eyasy1217](https://togithub.com/eyasy1217) made their first
contribution in
[grpc-ecosystem/grpc-gateway#3918

**Full Changelog**:
grpc-ecosystem/grpc-gateway@v2.19.0...v2.19.1

</details>

<details>
<summary>jackc/pgx (github.com/jackc/pgx/v5)</summary>

### [`v5.5.3`](https://togithub.com/jackc/pgx/compare/v5.5.2...v5.5.3)

[Compare Source](https://togithub.com/jackc/pgx/compare/v5.5.2...v5.5.3)

</details>

<details>
<summary>planetscale/vtprotobuf
(github.com/planetscale/vtprotobuf)</summary>

###
[`v0.6.0`](https://togithub.com/planetscale/vtprotobuf/releases/tag/v0.6.0)

[Compare
Source](https://togithub.com/planetscale/vtprotobuf/compare/v0.5.0...v0.6.0)

#### Notable new features

- Support for Well-Known Type Wrappers
([planetscale/vtprotobuf#99)
- Unsafe unmarshalling without memory allocations
([planetscale/vtprotobuf#103)
- Support for custom build tags
([planetscale/vtprotobuf#122)
- Support for using wildcards when choosing which objects to pool
([planetscale/vtprotobuf#115)

#### List of all merged PRs

- feat: use vtpool when cloning poolable objects by
[@&#8203;kruskall](https://togithub.com/kruskall) in
[planetscale/vtprotobuf#95
- fix: do not try to reset nil objects by
[@&#8203;kruskall](https://togithub.com/kruskall) in
[planetscale/vtprotobuf#96
- Fix misspell in clone.go by
[@&#8203;cristaloleg](https://togithub.com/cristaloleg) in
[planetscale/vtprotobuf#98
- Well known type wrappers by [@&#8203;vmg](https://togithub.com/vmg) in
[planetscale/vtprotobuf#99
- Added well-known types generated by vtproto plugin by
[@&#8203;biosvs](https://togithub.com/biosvs) in
[planetscale/vtprotobuf#93
- Add `unmarshal_unsafe` feature by
[@&#8203;nockty](https://togithub.com/nockty) in
[planetscale/vtprotobuf#103
- fix: ResetVT oneof by
[@&#8203;evgfedotov](https://togithub.com/evgfedotov) in
[planetscale/vtprotobuf#109
- Fix alloc qualify ident by
[@&#8203;evgfedotov](https://togithub.com/evgfedotov) in
[planetscale/vtprotobuf#113
- fix: check oneof on syntetic by
[@&#8203;evgfedotov](https://togithub.com/evgfedotov) in
[planetscale/vtprotobuf#111
- Support `Struct` for wellknown type wrappers by
[@&#8203;howardjohn](https://togithub.com/howardjohn) in
[planetscale/vtprotobuf#116
- Bump go.mod dependencies by
[@&#8203;howardjohn](https://togithub.com/howardjohn) in
[planetscale/vtprotobuf#119
- Make generated code use public helpers instead of generating them by
[@&#8203;nockty](https://togithub.com/nockty) in
[planetscale/vtprotobuf#120
- Downgrade `grpc` to version 1.58.2 by
[@&#8203;nockty](https://togithub.com/nockty) in
[planetscale/vtprotobuf#121
- Fix: Append check on IsMap in pool message generation by
[@&#8203;evgfedotov](https://togithub.com/evgfedotov) in
[planetscale/vtprotobuf#124
- Add ability to include a build tag by
[@&#8203;howardjohn](https://togithub.com/howardjohn) in
[planetscale/vtprotobuf#122
- Fix: Prevent out of bounds access when unsafe unmarshalling empty
strings by
[@&#8203;maheeshap-canopus](https://togithub.com/maheeshap-canopus) in
[planetscale/vtprotobuf#127
- feature: pool with wildcard by
[@&#8203;evgfedotov](https://togithub.com/evgfedotov) in
[planetscale/vtprotobuf#115

#### New Contributors

- [@&#8203;kruskall](https://togithub.com/kruskall) made their first
contribution in
[planetscale/vtprotobuf#95
- [@&#8203;cristaloleg](https://togithub.com/cristaloleg) made their
first contribution in
[planetscale/vtprotobuf#98
- [@&#8203;nockty](https://togithub.com/nockty) made their first
contribution in
[planetscale/vtprotobuf#103
- [@&#8203;evgfedotov](https://togithub.com/evgfedotov) made their first
contribution in
[planetscale/vtprotobuf#109
- [@&#8203;howardjohn](https://togithub.com/howardjohn) made their first
contribution in
[planetscale/vtprotobuf#116
- [@&#8203;maheeshap-canopus](https://togithub.com/maheeshap-canopus)
made their first contribution in
[planetscale/vtprotobuf#127

**Full Changelog**:
planetscale/vtprotobuf@v0.5.0...v0.6.0

</details>

<details>
<summary>pterm/pterm (github.com/pterm/pterm)</summary>

### [`v0.12.78`](https://togithub.com/pterm/pterm/releases/tag/v0.12.78)

[Compare
Source](https://togithub.com/pterm/pterm/compare/v0.12.77...v0.12.78)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Fixes 🔧

- fix(progressbar): `Progressbar` and `Logger` did not work together co…
by [@&#8203;MarvinJWendt](https://togithub.com/MarvinJWendt) in
[pterm/pterm#627
- fix(textinput): fixed text width calculation by
[@&#8203;auntan](https://togithub.com/auntan) in
[pterm/pterm#624

#### New Contributors

- [@&#8203;auntan](https://togithub.com/auntan) made their first
contribution in
[pterm/pterm#624

**Full Changelog**:
pterm/pterm@v0.12.77...v0.12.78

### [`v0.12.77`](https://togithub.com/pterm/pterm/releases/tag/v0.12.77)

[Compare
Source](https://togithub.com/pterm/pterm/compare/v0.12.76...v0.12.77)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Fixes 🔧

- fix: graceful handling of odd args by
[@&#8203;TylerGillson](https://togithub.com/TylerGillson) in
[pterm/pterm#629

#### New Contributors

- [@&#8203;TylerGillson](https://togithub.com/TylerGillson) made their
first contribution in
[pterm/pterm#629

**Full Changelog**:
pterm/pterm@v0.12.76...v0.12.77

### [`v0.12.76`](https://togithub.com/pterm/pterm/releases/tag/v0.12.76)

[Compare
Source](https://togithub.com/pterm/pterm/compare/v0.12.75...v0.12.76)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Fixes 🔧

- fix(rgb): `Sprintf` did not format properly by
[@&#8203;MarvinJWendt](https://togithub.com/MarvinJWendt) in
[pterm/pterm#622

**Full Changelog**:
pterm/pterm@v0.12.75...v0.12.76

</details>

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.61.0`](https://togithub.com/grpc/grpc-go/releases/tag/v1.61.0):
Release 1.61.0

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.60.1...v1.61.0)

### New Features

- resolver: provide method, `AuthorityOverrider`, to allow
resolver.Builders to override the default authority for a `ClientConn`.
(EXPERIMENTAL)
([#&#8203;6752](https://togithub.com/grpc/grpc-go/issues/6752))
- Special Thanks:
[@&#8203;Aditya-Sood](https://togithub.com/Aditya-Sood)
- xds: add support for mTLS Credentials in xDS bootstrap ([gRFC
A65](github.com/grpc/proposal/blob/8c31bfedded5f0a51c4933e9e9a8246122f9c41a/A65-xds-mtls-creds-in-bootstrap.md))
([#&#8203;6757](https://togithub.com/grpc/grpc-go/issues/6757))
- Special Thanks: [@&#8203;atollena](https://togithub.com/atollena)
- server: add `grpc.WaitForHandlers` `ServerOption` to cause
`Server.Stop` to block until method handlers return. (EXPERIMENTAL)
([#&#8203;6922](https://togithub.com/grpc/grpc-go/issues/6922))

### Performance Improvements

- grpc: skip compression of empty messages as an optimization
([#&#8203;6842](https://togithub.com/grpc/grpc-go/issues/6842))
    -   Special Thanks: [@&#8203;jroper](https://togithub.com/jroper)
- orca: use atomic pointer to improve performance in server metrics
recorder ([#&#8203;6799](https://togithub.com/grpc/grpc-go/issues/6799))
- Special Thanks:
[@&#8203;danielzhaotongliu](https://togithub.com/danielzhaotongliu)

### Bug Fixes

- client: correctly enable TCP keepalives with OS defaults on windows
([#&#8203;6863](https://togithub.com/grpc/grpc-go/issues/6863))
- Special Thanks: [@&#8203;mmatczuk](https://togithub.com/mmatczuk)
- server: change some stream operations to return `UNAVAILABLE` instead
of `UNKNOWN` when underlying connection is broken
([#&#8203;6891](https://togithub.com/grpc/grpc-go/issues/6891))
- Special Thanks:
[@&#8203;mustafasen81](https://togithub.com/mustafasen81)
- server: fix `GracefulStop` to block until all method handlers return
(v1.60 regression).
([#&#8203;6922](https://togithub.com/grpc/grpc-go/issues/6922))
- server: fix two bugs that could lead to panics at shutdown when using
[`NumStreamWorkers`](https://pkg.go.dev/google.golang.org/grpc#NumStreamWorkers)
(EXPERIMENTAL).
([#&#8203;6856](https://togithub.com/grpc/grpc-go/issues/6856))
- reflection: do not send invalid descriptors to clients for files that
cannot be fully resolved
([#&#8203;6771](https://togithub.com/grpc/grpc-go/issues/6771))
    -   Special Thanks: [@&#8203;jhump](https://togithub.com/jhump)
- xds: don't fail channel/server startup when xds creds is specified,
but bootstrap is missing certificate providers
([#&#8203;6848](https://togithub.com/grpc/grpc-go/issues/6848))
- xds: Atomically read and write xDS security configuration client side
([#&#8203;6796](https://togithub.com/grpc/grpc-go/issues/6796))
- xds/server: fix RDS handling for non-inline route configs
([#&#8203;6915](https://togithub.com/grpc/grpc-go/issues/6915))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
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://developer.mend.io/github/cerbos/cerbos).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Charith Ellawala <charith@cerbos.dev>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Charith Ellawala <charith@cerbos.dev>
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.

3 participants