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

Make gogo optional at compile time #50

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

Conversation

cpuguy83
Copy link
Member

Since containerd is not using gogo anymore it seems like we should remove the depenency on gogo here since gogo is a fairly large dependency and is also unaintained.

This also gets imported by the runc shim and adds a fair amount to the binary size (in terms of percentage of the whole size).

I did keep a fallback test in that still imports gogo and continues to work. The test marshals a type with gogo and then unmarshals it by typeurl.
This is why gogo is still in the go.mod
Not sure if this is worthwhile or not.

This may need a module version bump since some functions will behave differently now.

Since containerd is not using gogo anymore it seems like we should
remove the depenency on gogo here since gogo is a fairly large
dependency and is also unaintained.

This also gets imported by the runc shim and adds a fair amount to the
binary size (in terms of percentage of the whole size).

I did keep a fallback test in that still imports gogo and continues to
work. The test marshals a type with gogo and then unmarshals it by
typeurl.
This is why gogo is still in the go.mod
Not sure if this is worthwhile or not.

This may need a module version bump since some functions will behave
differently now.

Signed-off-by: Brian Goff <[email protected]>
A handler is an unexported type that is used to abstract external type
registries, such as gogoproto.
This allows us to add back gogo support but allow those who don't need
it to compile it out with the `!no_gogo` build tag.

Signed-off-by: Brian Goff <[email protected]>
@cpuguy83
Copy link
Member Author

I added a 2nd commit which abstracts gogo support behind an unexported handler type.
Gogo is available by default in the 2nd commit but can be compiled out with the !no_gogo tag.

@cpuguy83 cpuguy83 changed the title Remove gogo registry Make gogo optional at compile time Oct 15, 2024
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.

1 participant