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

feat: upgrade Cosmos SDK version to v0.46.0 #2156

Closed
ilgooz opened this issue Mar 15, 2022 · 14 comments
Closed

feat: upgrade Cosmos SDK version to v0.46.0 #2156

ilgooz opened this issue Mar 15, 2022 · 14 comments
Assignees
Labels
type:feat To implement new feature.

Comments

@ilgooz
Copy link
Member

ilgooz commented Mar 15, 2022

Learn more about the bounty on Ignite's Discord.

CLI is now on v0.45.1. Make sure to read CHANGELOGs of cosmos/cosmos-sdk from this version to v0.46.0-beta to learn more and avoid errors during your upgrade process.

  • Upgrade CLI's Cosmos SDK dependency to v0.46.0-beta . See CLI's go.mod.
  • Upgrade the chain scaffold through ignite scaffold chain to use SDK version v0.46.0-beta. See the app template.
  • Add migration docs inside a new file called upcoming.md. This is for chains that scaffold with an older version of CLI and needed if there was any breaking changes while upgrading to the new version of the SDK. This doc should explain and show the steps to upgrade a chain that is currently using v0.45.1 to now use v0.46.0-beta. Check this one as an example, yours should be similar in styling and steps.
  • After creating your PR, review your PR and leave comments to each change you make in Ignite CLI and the app template to show where this change comes from or why it's required.
    • You can use simapp as your reference as well as SDK's CHANGELOGs. In addition, you can use well known chains for guidance but make sure to add links and show which parts in those chains are used as reference in your comments.
  • Upgrade templates to use ibc v3.

Be aware that this upgrade may require various changes both in the Ignite CLI and chain template and you need to extensively test both after your changes.

Make sure that Ignite CLI and the chain scaffold by Ignite CLI upgraded and migrated probably and they're working OK without any problems.

@ilgooz ilgooz added type:feat To implement new feature. bounty labels Mar 15, 2022
@barriebyron
Copy link
Contributor

barriebyron commented Mar 22, 2022

See bounty program details in the #-bounty channel in Starport Discord discord.gg/ignt

@faddat
Copy link
Contributor

faddat commented Mar 22, 2022

I did this quite some time ago and it was working ok without any problems and it went unreviewed for a very long time.

I do fully understand that reviews take time but at the same time I am certain that I had this one in a perfectly working state for a long time. Then, since it was not merged, or even commented on:

  • Starport continued to scaffold old code for users
  • It fell behind the tip of the repo, some conflicts happened and I haven't fixed them because I really don't know if this is a desired PR.

At this point, it is likely easier to just start over, because the develop branch is very active.

Every green check mark on that is a time that my PR passed all tests, and sat unreviewed, after being approved as issues.

#2039

Too bad about the force push you could see the commit history, but here is the ci history

Use that link and you can go back two months. So, I can update the PR to include migration information, but I am absolutely forced to ask if you want these contributions and / or contributions from myself on an ongoing basis.

What you can see there is that I fixed Notional's (we are heavy users of starport but have now developed tooling called tinyport that is easier to maintain and scaffolds code with fewer dependencies) number 1 difficulty with starport, namely that it scaffolds old code. The number two issue is the addition of novel dependencies that make updating chains more difficult once they're deployed.

Genesis is not the most difficult point in blockchain lifecycle. Upgrades are. Having Starport's dependencies (pkg nee spm) makes chain upgrades more difficult.

And we are far from alone:

osmosis-labs/osmosis#1036 (comment)

This shouldn't require changes to cli, afaik-- the biggest change is that every module has to appear in SetOrderEndBlockers, SetOrderBeginBlockers, and SetOrderInitGenesis.

@ilgooz ilgooz changed the title upgrade Cosmos SDK version to v0.45.1 upgrade Cosmos SDK version to v0.46.0-beta May 2, 2022
@ilgooz
Copy link
Member Author

ilgooz commented May 2, 2022

Hey @johnletey, thank you for showing interest in this bounty! 🎊

You have been assigned to the issue!

Please confirm your participation by leaving a comment, thanks!

@johnletey
Copy link

Hey everyone 👋🏻 Super excited to be working on this.

Will follow up with any updates here 😄

@ilgooz
Copy link
Member Author

ilgooz commented May 2, 2022

Cool! Thank you John, please let me know if you want to discuss anything about the implementation!

@ilgooz
Copy link
Member Author

ilgooz commented May 24, 2022

Hey @jiujiteiro, you have been assigned to this bounty.

We're eager to hear that you want to contribute back to the Ignite CLI! 🙌 🎉

Can't wait to see your solution!

@jiujiteiro
Copy link

@ilgooz Thanks!

@ilgooz ilgooz assigned jiujiteiro and unassigned johnletey May 24, 2022
@jiujiteiro
Copy link

@ilgooz it looks like ibc-go does not have an official release with support for SDK 0.46 out yet. There is a branch they plan on releasing soon. See this thread here:

cosmos/ibc-go#1455 (comment)

What would be the preferred path for Ignite? Would we want to use a custom ibc-go branch to make this change? For instance:

https://github.com/cosmos/ibc-go/tree/carlos/upgrade-sdk-0.46-tendermint-0.35

@ilgooz
Copy link
Member Author

ilgooz commented Jun 7, 2022

@jiujiteiro Yes, I think we can use the branch for now.

@ilgooz
Copy link
Member Author

ilgooz commented Jun 28, 2022

Hey @jiujiteiro is there any updates on this? Thank you!

@ilgooz
Copy link
Member Author

ilgooz commented Jul 18, 2022

Hey @jiujiteiro, we're withdrawing this bounty since there was no actively for a long time.

Thank you for your interest!

@ilgooz ilgooz removed the bounty label Jul 18, 2022
@fadeev fadeev changed the title upgrade Cosmos SDK version to v0.46.0-beta feat: upgrade Cosmos SDK version to v0.46.0 Jul 28, 2022
@fadeev
Copy link
Contributor

fadeev commented Jul 28, 2022

  • Remove the following in app/app.go:
authrest "github.com/cosmos/cosmos-sdk/x/auth/client/rest"
authrest.RegisterTxRoutes(clientCtx, apiSvr.Router)
ModuleBasics.RegisterRESTRoutes(clientCtx, apiSvr.Router)
  • Add third party proto files to Ignite, because Cosmos SDK no longer ships with protos for gogoproto, for example. Compare v0.45 and v0.46.
  • Add Cosmos base proto for pagination.

@lumtis
Copy link
Contributor

lumtis commented Jul 28, 2022

There are two aspects to this issue:

  • Supporting serving new version: building proto + update with new CLI interface for init phase
  • Update the templates for 0.46.0

For the template I believe the complexity should be handled in several PRs since we need to upgrade most of the commands, and so creating a 0.46.0 branch for the upgrade

@aljo242
Copy link
Contributor

aljo242 commented Jul 28, 2022

This work depends on: tendermint/spn#914 being merged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:feat To implement new feature.
Projects
None yet
Development

No branches or pull requests

8 participants