-
Notifications
You must be signed in to change notification settings - Fork 97
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
Runtime releases management #304
Comments
Please share your suggestions or recommendations so that the document above can be made as comprehensive as possible. |
Some suggestions:
|
Thank you for these clarifications and corrections, @joepetrowski. |
One thing that I discussed today with @eskimor is the introduction of some sort of "metadata diff tool". This should help with informing people if for example storage items change. This tool could run for each pr merged to main and later for the release itself. There should exists "client" that can read these diffs and find out if a storage item that your app is using while change. By doing it per pull request the teams could get notified before the actual release is happening. The teams would need to run this tool maybe once per night to get notified. @josepot you are already generating interfaces for the runtimes using metadata, not sure if you could maybe easily figure out what apis a user is using and based on this determine the storage item. |
yes, of course! All of the generated code comes directly from the metadata.
In a way our type system already does this for our users, because if the types generated from the next runtime don't match, then the typescript compiler will let our users know what has changed.
We could easily use the tools that we have built to generate a diff tool like this. We have already built similar tools that we use internally to detect common types across different chains, so that we can give them some friendly names for the developers. So, yeah, we could totally build a "metadata diff tool", for sure! How urgent/important is this?
Wouldn't it be possible/desirable to use chopsticks to get the resulting metadata that will take place after a certain referenda gets enacted, and then run the diff tool against the resulting metadatas of those referendas? 🤔 |
Not a requirement that you write it. The general idea here would also be that teams are informed before the stuff is on chain, so the apps do not break in production. Better they are informed before, make the code work with both version and then be ready when the runtime upgrade is live. |
We also should highlight breaking changes more prominently in the changelogs. Basically it should be easier to find out when a change breaks something, like #337 which was made not clear that it breaks the transaction encoding. |
We should start simple by including the following information in the changelog:
|
We should create multiple communication channels for pushing information around upcoming releases. When we are aware that breaking changes will hit a release, we should start to push out information and the closer we get to the actual enactment of the update the more spammy we should get. Better to over deliver and to annoy people, than people to miss the information. We should support Element, TG, email, github, maybe more? A release calendar. |
Thanks 👍🏻 I would maybe add that linking to PRs and showing off the integration tests that changed in the breaking change PRs will get a long way to quickly evaluate the required effort. Alternatively tips like -> Update your .js libs would help. Having calendar to see it visually would be epic. |
@bkchr @jak-pan @SBalaguer |
Further suggestions from @eskimor |
In the past, subwasm was used during the release process to generate a comparison between different runtimes. Is there any plan to use it again or maybe another tool that generates the same or similar report? Thank you! |
Overview:
This document aims to summarise proposed/existing options for formalising the process by which:
Considerations:
Strategies:
Note: A ☑ indicates that the item is already In Progress.
Whitelisted Caller
proposal include concrete steps (followable by any Rust engineer) on how to verify it, pointing to existing documentation for the basicsWhitelisted caller
proposals must (by default) have an associated test, which got verified by developers according to a checklist; with the test and test result shown in the UIContributors:
Contacts:
This table can be edited & copied/pasted as a comment on scheduled runtime upgrades to ensure that relevant teams are contacted based on proposed/queued PRs.
The contact details for each team are available here.
Last updated: 3rd November 2024
The text was updated successfully, but these errors were encountered: