-
Notifications
You must be signed in to change notification settings - Fork 71
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
Breaking change in proofs.proto with v0.11.0. #376
Comments
Yea it looks like this CI was also run on the pr that made the change https://github.com/cosmos/ics23/actions/runs/7181837418/job/19557046360?pr=217, I'm unsure why the warning was ignored (or at least commented on). The guidelines around what marks a breaking change in protobuf are notoriously a bit vague here, which is why buf sets a guideline. We are primarily concerned with over the wire changes. In this case, to the best of my knowledge, proto3 encodings won't change based on the name (as I believe they reference the field number), but proto3json does since json uses the field name in encodings. In ibc-go, I'm not sure in what case one would be proving a proof spec json encoded, or at least one would need to go out of their way to create some sequence of non sense actions to create an unreceivable packet (which would timeout). Nevertheless, it might have been nice to leave the field name as is so not to cause unnecessary trouble over a small naming difference, but what's done is done. Thank you @SpicyLemon for being active and opening an issue. Do you have concerns with your own CI failing (ie it's a problem that needs to be resolved)? Do you have concerns of the nature of this change or were you mostly opening an issue to remark on an anomaly? |
Primarily, I just noticed the breaking check failing in our stuff and wanted to bring it to your attention. I'm not very familiar with this library or that proto, so I don't really know how that enum gets used. It seemed reasonable to assume that some stuff out there depends on the JSON encoding, but I don't know of anything specific. If you feel it's safe, that's good enough for me. |
This is correct wrt to protobuf encoding. However, yes, I agree that something that solely depended on the JSON encoding using this enum type would be effected.
Agreed! |
The protobuf break check is now a required check for all pr's! I will close this issue as we believe the break introduced in v0.11.0 is safe given the context of IBC usage. Thank you @SpicyLemon for bringing this to our attention! 🙏 |
The
proofs.proto
file in v0.11.0 is not backwards compatible to v0.10.0.That error is from the
bufbuild/buf-breaking-action@v1.1.4
github action that's run in another repo. I believe that pretty much just runs thebuf breaking
command.For us, it's checking against our own set of third-party protobuf files that we previously submitted to the buf registry and which includes your
proofs.proto
file. When we tried to bumpics23/go
fromv0.10.0
tov0.11.0
, we grabbed a new copy of theproofs.proto
file, which caused thebuf breaking
check to fail.The text was updated successfully, but these errors were encountered: