-
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
Extend Software Upgrade Proposal Plan #10047
Comments
CC: @tychoish , @jgimeno , @spoo-bar , @aaronc , @alexanderbez |
I think cosmos-sdk/proto/cosmos/upgrade/v1beta1/upgrade.proto Lines 66 to 76 in 1a6d03b
Currently, cosmovisor just makes an effort to understand the |
@robert-zaremba If you aren't maybe I can continue working on this issue? |
@spoo-bar - we firstly need to finish a design of it. I started coding a PoC 1.5 month ago. |
We need to decide:
Any thoughts? cc: @aaronc , @alessio , @spoo-bar , @anilcse , @dwedul-figure |
I like the "fallback" approach here. Add the new fields. Then, when handling an upgrade, if any of them have value, then the An alternative might be to create a whole new proto and deprecate the current one. The nice thing with this is being able to use deprecation tags/indicators on the old proto. I feel it'd be significantly more work to create and wire this new proto (side-by-side with the current one) than to just add the fields to the existing proto and use the fallback approach on the |
This needs to land with 0.46 if we plan on including tendermint 0.35+ with it. |
The support for tendermint v0.35 is already there (including migration support). This feature extends what we already have in |
oh okay, it was my understanding it was not supported. If this was supported we should of tried to get this out in 0.45. Is it tested? can you point me to a pr |
We don't need it in 0.45. We need it for 0.46 which will be tagged from `master. |
Summary
Towards more sophisticated chain upgrades we would like to extend the Software Upgrade Proposal Plan with more details.
Dependencies:
Problem Definition
Ref:
app.toml
#9692Proposal
Instead of setting the upgrade process fully in the
app
, I propose to make it more flexible by extending theUpgradeInfo
structure by addingPreUpgrade
attribute:This is how the the PreUpgradeInstructions can look like:
run
will tell cosmovisor (or an admin) what to run. It can be a shell command (if we support only POSIX shells), or an updated app binary, as in the original solution.download
record is optional has the same as thebinaries
we use to encode binaries to download inUpdateInfo.Info
.description
: optional, more information for devops.NOTE: we use a concrete type instead of
string
to be specific about the content.This solution will solve other use-cases where we will need more advanced upgrade scenarios (eg moving files or downloading external libraries).
We can implement it in phases - and only start with
run
anddescription
, and then adddownload
.I was presenting this solution during the Cosmovisor WG call last Friday and got ack as a superior then the "basic" one proposed originally.
For Admin Use
The text was updated successfully, but these errors were encountered: