-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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 Adopter Experience for Breaking Changes #9787
Comments
Todo [@tsmaeder ] propose changes to review checklist, etc. to implement point 1. "Improve breaking change documentation" |
Ideas:
|
We build our "che-theia" app against the master branch of Theia in our build. I think our build would serve as a good canary test for build breakages. |
@tsmaeder @JonasHelming Thank you very much for this. Also FYI @ccheraa @duncdrum and @marmoure In terms of documentation for a Migration Guide, how do you see this working in terms of collaboration:
|
We were thinking an *.md file: I think non-committers cannot edit the wiki and the process with treating the wiki as a git repo seems too arcane to me. |
@tsmaeder Good stuff. Perhaps we can also link to the .md file from the Release Notes. |
Yes, we discussed that, too, it is possible |
#9817 is now merged. |
migration guide is now linked in the releases. |
I think with the regular Theia IDE release, we're also covering the "testing" part of this issue. |
We have had reports from the community that updating to new releases generates too much work for them. The problem is less the pace of change, but that we are not good enough in guiding adopters on how to adapt to those changes. In particular
This concerns both code changes (example: the recent move from "QuickOpen" to "QuickPick" API's) and procedure changes (like the recent move from Webpack 4 to Webpack 5). Procedural changes are worse, because the breakage is often not obvious. With API changes, the compiler can guide you through the migration.
One of the unique selling points of Theia is that a lot of code is considered API and can be customized. But a lot of API also means that in order to move the project forward, we will have relatively frequent breaking changes. Some approaches to mitigating the problem have been proposed:
There will be cases where updating to a new release is not as straight-forward as we hoped. In that case, we could at least share the burden of researching the update path:
In order to detect when changes are breaking products, we should regularly build and test a system that closely resembles an adopter's product, for example:
Once we detect breakage using those tests, we need a process of handling the breakage. The tests need to be adapted and the change path needs to be documented. If the tests are fast and we can run them as a PR check, the handling happens within the PR. If the tests can only be run as nightlies, for example, we need have a process to assign responsibility for handling the failures.
The text was updated successfully, but these errors were encountered: