-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
Address v1beta1 proto breaking changes #9446
Comments
Some proposals we can do for v0.43: Proposal 1. Remove all
Proposal 2. Bump proto packages to v1beta2 or even v1 (#9445) It seems like proposal 1 is the easiest path for v0.43, but we're discussing with @webmaster128 next week to discuss a more general proto updates strategy. |
I think we should start with approach 1. Although it might not be a bad idea to bump proto files to v1 if we can maintain compatibility with v1beta1 for 0.43... that seems like a bunch more work though. I do have a concern that adding any field to a |
We could also just make sure to never add fields in Msgs (e.g. manually, during PR reviews). If someone needs to add a new field, then create a new Msg. It somehow feels complex and confusing to me to have query and tx packages with different versions for the same module. |
Had a call with @webmaster128 and @robert-zaremba about proto bumping strategy. The current proposed strategy for solving this issue is:
|
After thinking about this a little bit more: Do we know which modules contain incompatible changes between 0.42 and 0.43? Are there modules for which we can keep the v1beta1? Having to create case distictions for all higher level Stargate client code is going to be very tricky (and will lead to poor support of one of those versions). |
@AmauryM was checking that. |
I added a quick audit based on a git diff between in the meeting notes in #9446 (comment). The 2 places where I see breaking changes are:
How do we feel about only bumping 2 modules to v1, and not others? It might give the wrong impression the gov & upgrade modules are "more production-ready" than others, which is wrong.
Could you explain more in details what you mean here? |
Yeah, releasing Stargate with the "beta" version was not great. But 🤷♂️ it will vanish over time.
I see your point regarding consustency. But this would reduce a lot of practical pain becauese 👇. The difference is really: SDK 0.43 support today vs. SDK 0.43 support one day soon™️.
Have a look at
So we'd have to duplicate all this code for different versions, even if the type did not change at all. Second problem is I don't even know which type to use for which backend. Or can I query the SDK version in a reliable and stable way? |
Makes sense. So current consensus is to:
|
Had another talk with @aaronc and @robert-zaremba, the latest decision we're going with is:
(Sorry for the back & forth, we're trying to get inputs from different parties) Some reasons we advanced:
|
<!-- The default pull request template is for types feat, fix, or refactor. For other templates, add one of the following parameters to the url: - template=docs.md - template=other.md --> ## Description Closes: #9446 <!-- Add a description of the changes that this PR introduces and the files that are the most critical to review. --> --- ### Author Checklist *All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues.* I have... - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] added `!` to the type prefix if API or client breaking change - [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting)) - [x] provided a link to the relevant issue or specification - [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules) - [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing) - [x] added a changelog entry to `CHANGELOG.md` - [ ] included comments for [documenting Go code](https://blog.golang.org/godoc) - [ ] updated the relevant documentation or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed ### Reviewers Checklist *All items are required. Please add a note if the item is not applicable and please add your handle next to the items reviewed if you only reviewed selected items.* I have... - [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] confirmed `!` in the type prefix if API or client breaking change - [ ] confirmed all author checklist items have been addressed - [ ] reviewed state machine logic - [ ] reviewed API design and naming - [ ] reviewed documentation is accurate - [ ] reviewed tests and test coverage - [ ] manually tested (if applicable)
<!-- The default pull request template is for types feat, fix, or refactor. For other templates, add one of the following parameters to the url: - template=docs.md - template=other.md --> ## Description This ADR is to be merged as "DRAFT" status for now, as the details for the "Bumping Protobuf Package Version" section have not been sorted out yet. This ADR comes from discussion with @webmaster128 and @robert-zaremba about proto updates strategy. We decided to go for an ADR to document our decision for v0.43, and for visibility for other chains doing proto upgrades. [rendered](https://github.com/cosmos/cosmos-sdk/blob/am/adr-044-protobuf/docs/architecture/adr-044-protobuf-updates-guidelines.md) Closes: #9477 ref: #9446 ref: #9445 <!-- Add a description of the changes that this PR introduces and the files that are the most critical to review. --> --- ### Author Checklist *All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues.* I have... - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] added `!` to the type prefix if API or client breaking change - [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting)) - [ ] provided a link to the relevant issue or specification - [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules) - [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing) - [ ] added a changelog entry to `CHANGELOG.md` - [ ] included comments for [documenting Go code](https://blog.golang.org/godoc) - [ ] updated the relevant documentation or specification - [x] reviewed "Files changed" and left comments if necessary - [ ] confirmed all CI checks have passed ### Reviewers Checklist *All items are required. Please add a note if the item is not applicable and please add your handle next to the items reviewed if you only reviewed selected items.* I have... - [x] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] confirmed `!` in the type prefix if API or client breaking change - [ ] confirmed all author checklist items have been addressed - [ ] reviewed state machine logic - [ ] reviewed API design and naming - [x] reviewed documentation is accurate - [ ] reviewed tests and test coverage - [ ] manually tested (if applicable)
As reported by @webmaster128 on discord:
The text was updated successfully, but these errors were encountered: