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

Upgrade CCV modules to SDK v0.47 #852

Closed
10 of 12 tasks
mpoke opened this issue Apr 14, 2023 · 14 comments · Fixed by #1019
Closed
10 of 12 tasks

Upgrade CCV modules to SDK v0.47 #852

mpoke opened this issue Apr 14, 2023 · 14 comments · Fixed by #1019
Assignees
Labels
admin: key-result A key result (in the context of OKRs) scope: cosmos-sdk Integration with Cosmos SDK

Comments

@mpoke
Copy link
Contributor

mpoke commented Apr 14, 2023

Problem

Currently, the entire ICS code requires SDK v0.45 and IBC v4 which will soon reach EoL.
We want to support SDK v47 and IBC v7 to allow upgrading provider chains and onboarding new consumer chains.

Closing criteria

  • provider code upgraded to required dependencies and API changes supported
  • provider code upgraded to required dependencies and API changes supported
  • unittests support required dependencies and are passing
  • integration, MBT tests support required dependencies and are passing
  • e2e tests support required dependencies and are passing
  • handle proto deps
  • push protos to BSR
  • rework and add tests AfterUnbondingInitiated on provider side to support new cosmos-sdk behaviour
  • support CancelUnbond operation on the provider (cosmos-sdk v47 related)

Task list

Must have

  1. type: tech-debt
  2. scope: cosmos-sdk type: refactoring type: tech-debt
    MSalopek
  3. scope: cosmos-sdk type: refactoring type: tech-debt
    MSalopek
  4. scope: cosmos-sdk type: refactoring type: tech-debt
    MSalopek
  5. scope: cosmos-sdk scope: testing type: refactoring type: tech-debt
    MSalopek
  6. scope: cosmos-sdk type: feature-request
    MSalopek mpoke
  7. scope: testing type: tech-debt
    MSalopek
  8. scope: cosmos-sdk type: refactoring
    MSalopek
  9. 4 of 4
    admin: epic
    shaspitz

Nice to have

  1. scope: testing type: refactoring
    MSalopek
@mpoke mpoke added scope: cosmos-sdk Integration with Cosmos SDK admin: key-result A key result (in the context of OKRs) labels Apr 14, 2023
@faddat
Copy link
Contributor

faddat commented Apr 18, 2023

That SDK PR contains the changes that we think are needed to 47 for ics.

I also think that instead of splitting go.mod, we should instead just add a v2 to the module path such as:

module github.com/cosmos/interchain-security/v2

Then, v2 can consume v1 for test purposes, like testing 45 producer and 47 consumer scenarios.

@faddat faddat mentioned this issue Apr 18, 2023
12 tasks
@mpoke mpoke assigned shaspitz and unassigned sainoe and MSalopek Apr 20, 2023
@faddat
Copy link
Contributor

faddat commented Apr 21, 2023

https://github.com/cosmos/interchain-security/blob/main/CONTRIBUTING.md#development-procedure

so, it is not possible to follow the steps you outlined here or on gaia without breaking main.

Also, we are going to upgrade the whole repository. We feel that it doesn't make sense to do it partially.

@faddat faddat mentioned this issue Apr 21, 2023
18 tasks
@adizere
Copy link

adizere commented Apr 21, 2023

Also, we are going to upgrade the whole repository. We feel that it doesn't make sense to do it partially.

An experience we had from other repos (this is not about the Hub) is that feature branches could come in handy to help split large work in smaller PRs. We used a feature branch to capture a multi-month work related to ABCI 2.0, for example.

The gist of using feature branches: Small PRs target the longer-lived feature branch, and the feature branch may intermittently fail to lint/make/CI. It's important to scope each PRs and review them as if it's landing on main with care. Eventually, you merge the whole feature branch into main when it's ready, and then it's still advised to do a sync review with 1-2 engineers. This is no silver bullet, and has some costs, but it has worked better than having big PRs.

@mpoke
Copy link
Contributor Author

mpoke commented Apr 22, 2023

Also, we are going to upgrade the whole repository. We feel that it doesn't make sense to do it partially.

An experience we had from other repos (this is not about the Hub) is that feature branches could come in handy to help split large work in smaller PRs. We used a feature branch to capture a multi-month work related to ABCI 2.0, for example.

The gist of using feature branches: Small PRs target the longer-lived feature branch, and the feature branch may intermittently fail to lint/make/CI. It's important to scope each PRs and review them as if it's landing on main with care. Eventually, you merge the whole feature branch into main when it's ready, and then it's still advised to do a sync review with 1-2 engineers. This is no silver bullet, and has some costs, but it has worked better than having big PRs.

Thank you @adizere.

@faddat We are currently updating the guidelines for working on large contributions #868. Constructive feedback from the community is greatly appreciated.

@faddat

This comment was marked as off-topic.

@faddat
Copy link
Contributor

faddat commented Apr 24, 2023

@faddat
Copy link
Contributor

faddat commented Apr 24, 2023

This is the item that we most urgently need feedback on:

the question is: does upgrading to sdk 47 require using a forked version of sdk 47?

thanks

@mpoke
Copy link
Contributor Author

mpoke commented Apr 24, 2023

This is the item that we most urgently need feedback on:

the question is: does upgrading to sdk 47 require using a forked version of sdk 47?

thanks

@faddat I believe that this comment addresses your concern.

@mpoke
Copy link
Contributor Author

mpoke commented Apr 24, 2023

finally, i must say that it is simply not good to block work on simple stuff, like the questions we've been asking for a very long time now, including in this issue, which you've chosen not to answer

  1. @vuong177 found that it is necessary to use a forked cosmos-sdk v0.47.x -- do you agree, or nah? in either case, what are your thoughts on the matter?
  2. We also came up with the idea of adding some things to ibc-go, reducing the amount of boilerplate that we need to copy into this repo from ibc. Do you agree, or nah? In either case, what are your thoughts on the matter?

@faddat Thank you for sharing your feedback. If you have concerns or you see any issues regarding Interchain Security, please open a new issue (if one is not already opened) and participate in thoughtful discussion on that issue. We'll try to address your concerns as soon as possible.

Regarding the first point, you have received immediate feedback on both PRs you have opened on the SDK repo: cosmos/cosmos-sdk#15856 and cosmos/cosmos-sdk#15917.

Regarding the second point, I need more context? That's the reason we are working with issues with a clear problem description where we can have thorough discussions.

@mpoke

This comment was marked as off-topic.

@faddat

This comment was marked as off-topic.

@jtremback

This comment was marked as off-topic.

@faddat

This comment was marked as off-topic.

@faddat

This comment was marked as off-topic.

@mpoke mpoke pinned this issue May 9, 2023
@MSalopek MSalopek changed the title Upgrade consumer CCV module to SDK v0.47 Upgrade CCV modules to SDK v0.47 May 11, 2023
@mpoke mpoke unpinned this issue Jun 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
admin: key-result A key result (in the context of OKRs) scope: cosmos-sdk Integration with Cosmos SDK
Projects
Status: ✅ Done
7 participants