-
Notifications
You must be signed in to change notification settings - Fork 704
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
Improve Migration Support #353
Comments
A first idea addressing this issue would be introducing an (or several) extra repository that just contains migrations. The migrations could be crates depending on both the version they are migrating from as well as the one the are migrating to. |
Original Text:This issue is meant as a meta / tracking issue for Substrate's migration support. I currently see several issues with the way we do migrations that it would be great to improve on.
|
💡Ideas for ImprovementProcesses & DocumentationIdeas for adding and/or improving processes that will make migrations easier for Substrate users.
Tooling
Substrate Changes
|
We can use |
Collecting migrations in this repo with notes and examples. |
* first draft of parachain commitment relayer * refactor updates * rename * first attempt * more refactor * fix * sub to headers * pr fixes * Worker improvements (paritytech#356) * start test * useful mage command * log improvements * remove * fix * fix
* ts-tests: switch to use builtin dev config directly * Add evm balance for dev config
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
* verify justifications from runtime * unreachable
Teams building chains on Substrate are struggling with migrating their nodes and runtimes. We want to improve the migration experience to reduce necessary effort and time spent as well as reduce the amount of effort it takes to migrate Substrate based chains.
💔 Status Quo
Currently Parity core developers write migrations in Substrate for Kusama and Polkadot. They are then removed within one to a few weeks of being introduced (in order to keep the codebase clean). Chain developers building on Substrate either a) apply these migrations the same way in a timely fashion or b) need to fork Substrate to modify and adjust the migrations or reintroduce them if they have been removed in the meantime.
Substrate users need to go into Substrate's PR listing and filter for runtime migrations in order to find the migrations.
🛑 Current Problems
👓 Vision
We want Substrate users to be able to migrate their chains correctly as easily as possible.
As a result, we want migrations to be:
❎ Non-Goals
Complicated Migrations ≠ Easy and Automatic
We cannot make complicated migrations or migrations affecting many parts of the runtime effortless. There will always be manual work necessary for these cases. We can only provide guidance.
Maintaining Old Migrations
We will not maintain old migrations. Migrations target the transition from one version to another and will thus be outdated once applied. We can only keep documentation and code archives around for (very) old migrations.
✅ Proposed Solutions
The text was updated successfully, but these errors were encountered: