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

Epic: SDK v0.50 #1760

Closed
SpicyLemon opened this issue Nov 22, 2023 · 4 comments
Closed

Epic: SDK v0.50 #1760

SpicyLemon opened this issue Nov 22, 2023 · 4 comments
Milestone

Comments

@SpicyLemon
Copy link
Contributor

SpicyLemon commented Nov 22, 2023

Summary

This epic is for identifying and coordinating the work for bumping Cosmos SDK to v0.50.x.

Overview

We will need to make changes across at least two repos, this one and our fork of the SDK. We'll need to do a few key things that then allow us to do some work in parallel. In general, we will be commenting a bunch of stuff out and re-adding it all back in.

As we disable stuff, mark things with todo comments that reference this issue, e.g. // TODO[1760]: Add the marker module back in. These comments should give us a nice list of work to do if we do something like grep -rF 'TODO[1760]' *

When you pick up a checklist item, make an issue from it and assign it to yourself (so that we know someone's working on it). Use the "convert to issue" thing (right side when you hover over a checklist item) for this. It's okay to have a PR that checks off multiple things.

The Plan

  1. In this repo, use a main-v0.50 branch that we will create PRs to. We'll start it off by switching the SDK to v0.50.x and commenting out a lot of stuff, then we'll work on fixing everything and putting it all back together.
  2. In our SDK fork, use a release-pio/v0.50.x branch that starts with a v0.50.x tag and re-applies our customizations.
  3. We can still make changes to main, but those will eventually need to be backported to main-v0.50.
  4. Once or SDK fork is ready, tag our version and switch us over to that in the main-v0.50 branch.
  5. Once main-v0.50 is done, merge it back into main.

Provenance Repo Plan

These should be done in this order.

  • 1. Identify and Finish any key changes needed that aren't related to v0.50.x.
  • Create a main-v0.50 branch from our main branch. #1771
  • Bump sdk to v0.50.1 in main-v0.50  #1772
  • 4. From the resulting TODO[1760]s compile a general list of things to work on and add entries to the TODOs checklist.
  • 5. Finish some TODOs in the checklist by making PRs to main-v0.50.
  • 6. Backport any PRs in main that aren't yet in main-v0.50.
  • 7. Merge main-v0.50 back into main.
  • 8. Finish all TODOs in the checklist by making PRs to main.

Provenance Repo Pre-Work

These are the key changes that need to be done before we start the v0.50 work in this repo.

Provenance Repo TODOs

These can (mostly) be done in any order and can be grouped together for PRs as needed. An entry that starts with a tag has related TODOs in the repo.

Example command for finding TODO entries for a tag:

grep --color --recursive --include '*' --include '.*' --exclude-dir .git --exclude-dir vendor --exclude statik.go -F 'TODO[1760]: account'

Cosmos-SDK Fork Plan

These should be done in this order.

  • 1. Identify the differences we've made to our fork. Add entries to the TODOs checklist for each.
  • 2. Create the release-pio/v0.50.x branch from the most recent v0.50.x tag.
  • 3. Finish all the TODOs in the checklist by making PRs to release-pio/v0.50.x.
  • 4. Tag a new version.
  • 5. Make main-pio match release-pio/v0.50.x.

Cosmos-SDK Fork TODOs

  • Start a fresh branch based on upstream's most recent v0.50 tag. -> https://github.com/provenance-io/cosmos-sdk/tree/release/v0.50.x
  • Audit our differences for v0.46.13 and add anything missing to this list.
  • EventManager: NewEventManagerWithHistory, GetABCIEventHistory, runTx (Fee events and event aggregator), baseapp.Simulate also returns a context, simulation.SimulateFromSeed also returns the last block time, Propagate event history in EndBlock.
  • Fee Handler: Add FeeHandler back to baseapp, switch back to IMsgServiceRouter. Prov: Add msg based fee support cosmos-sdk#593
  • Streaming: Double check that what's in the SDK is in line with what we have/need.
  • CountAuthorization: Add it back in.
  • Add the allow_list back to the SendAuthorization.
  • Double check the SendEnabled stuff (make sure they didn't put the whole list back in a single params object).
  • Put the UpdateDenomMetadata back into the bank module.
  • Pruning cmd: get existing viper instead of a new one.
  • Send Restrictions: Should be able to use what the SDK has now, but need to double check. If we have a different InputOutputCoins func signature, we'll want that to switch back to that and make our own copy of that func.
  • Locked Coins: Add it back in.
  • Make sure there's still a CLI command for getting spendable balances.
  • In the rootmulti store's buildCommitInfo method, sort the keys by name first.
  • Fix genesis account number handling (in the x/auth Genesis stuff).
  • Have authz.MsgExec.ValidateBasic() also run ValidateBasic on all its msgs.
  • Better handling for when no handler exists for a gov prop.
  • Fix group sims' account picker to always pick different accounts.
  • Update the bank module migrations since we added one that the SDK doesn't have.
@SpicyLemon
Copy link
Contributor Author

If you find more thing that need to be done (that you're not just handling as you find it), feel free to update the checklists.

@SpicyLemon SpicyLemon moved this from Todo to In Progress in Provenance Core Protocol Team Dec 20, 2023
@SpicyLemon
Copy link
Contributor Author

SpicyLemon commented Dec 21, 2023

This command can be used to check compilation of all the unit tests:

go test -mod=readonly  -tags='cgo ledger test_ledger_mock norace' -run='ZYX_NOPE_NOPE_XYZ' ./...

This is an example command for finding specific TODOs:

grep --color --recursive --include '*' --include '.*' --exclude-dir .git --exclude-dir vendor --exclude statik.go -F 'TODO[1760]: account'

@iramiller iramiller modified the milestones: v1.18.0, v1.19.0 Jan 4, 2024
@coderabbitai coderabbitai bot mentioned this issue Apr 12, 2024
8 tasks
This was referenced May 16, 2024
@SpicyLemon SpicyLemon mentioned this issue May 29, 2024
8 tasks
@Taztingo Taztingo mentioned this issue Jun 20, 2024
8 tasks
@SpicyLemon
Copy link
Contributor Author

The work for this bump is done, so I'm closing this epic!

@github-project-automation github-project-automation bot moved this from In Progress to Done in Provenance Core Protocol Team Jul 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

2 participants