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

protobuf: remove gogoproto #5342

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

jsternberg
Copy link
Collaborator

Remove gogoproto in favor of the standard protobuf compiler and use vtproto to supplement the standard protobuf compiler.

This removes any nonstandard extensions that were part of gogoproto such as the custom types.

vtproto is an extra protobuf compiler that generates special methods suffixed with VT that create typed and unrolled marshal and unmarshal functions similar to gogo that can be used for performance sensitive code. These extensions are optional for code to use but buildkit uses them.

A codec is also included to utilize vtproto for grpc code. If the package github.com/moby/buildkit/util/encoding/proto is imported then vtproto will be used if it exists and otherwise it will use the standard marshaling and unmarshaling methods.

@jsternberg jsternberg force-pushed the gogoproto-remove branch 4 times, most recently from 9299af9 to 55e7f50 Compare September 19, 2024 19:25
Remove gogoproto in favor of the standard protobuf compiler. This
removes any nonstandard extensions that were part of gogoproto such as
the custom types.

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
vtproto is an extra protobuf compiler that generates special methods
suffixed with `VT` that create typed and unrolled marshal and unmarshal
functions similar to gogo that can be used for performance sensitive
code. These extensions are optional for code to use but buildkit uses
them.

A codec is also included to utilize vtproto for grpc code. If the
package `github.com/moby/buildkit/util/encoding/proto` is imported then
vtproto will be used if it exists and otherwise it will use the standard
marshaling and unmarshaling methods.

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
gopkg.in/yaml.v3 v3.0.1 // indirect
kernel.org/pub/linux/libs/security/libcap/psx v1.2.70 // indirect
)

replace github.com/tonistiigi/fsutil => github.com/jsternberg/fsutil v0.0.0-20240918154141-5822a7180d7a
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

TODO: change this before merging

@jsternberg jsternberg marked this pull request as ready for review September 19, 2024 21:25
@jsternberg
Copy link
Collaborator Author

This is ready for review now. This should replace #4422. I've separated the vtproto stuff into its own commit but the dependency seems to work and alleviates or removes the concern that this will affect the performance.

@crazy-max
Copy link
Member

Not sure why but I see freebsd job fails: https://github.com/moby/buildkit/actions/runs/10948325927/job/30399181953?pr=5342#step:10:12

No usable default provider could be found for your system.

Vagrant relies on interactions with 3rd party systems, known as
"providers", to provide Vagrant with resources to run development
environments. Examples are VirtualBox, VMware, Hyper-V.

The easiest solution to this message is to install VirtualBox, which
is available for free on all major platforms.

If you believe you already have a provider available, make sure it
is properly installed and configured. You can see more details about
why a particular provider isn't working by forcing usage with
`vagrant up --provider=PROVIDER`, which should give you a more specific
error message for that particular provider.
Error: Process completed with exit code 1.

And same happens on fsutil repo for tonistiigi/fsutil#206: https://github.com/tonistiigi/fsutil/actions/runs/10930826082/job/30344567135?pr=206

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants