redhat-developer / redhat-developer/vscode-java
Offer users an extension downgrade if certain failure conditions detected.
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2.3k
- Forks
- 546
- Avg merge
- 20h 1m
- Merged PRs (30d)
- 11
Description
Suppose we intend to introduce some functionality that will benefit most users, but after release, we realize it breaks for 5-10% of users. I've seen people try downgrading to a previous version. That alone is useful when tracking the problem and works well enough for them. However, I wonder how many users encounter the breaking issue, and don't know what to do, or might stop using the extension.
If the issue can't be immediately fixed, and we don't want to (can't) revert the change could we use some kind of issue detection (stacktrace/condition in LS or client itself) in a subsequent service release, and then offer the user a downgrade to the last safe version ? Then just perform :
commands.executeCommand("workbench.extensions.installExtension", `redhat.java@${safeVersion}`);
To avoid having to do a release, would it make sense to have some kind of publicly defined file that maps between expected errors and the corresponding downgrade to propose ?
I don't feel that strongly about this (so I'm fine with just closing), but a lot of regressions can be quickly solved by a downgrade, and making the process more user-friendly would be nice.
CC: @testforstephen @fbricon for thoughts.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named. Start by locating the extension's handling for language-server or client failures and the VS Code extension-install command shown in the issue. Determine whether failure detection and a safe-version mapping are feasible; done requires an agreed scope, downgrade behavior, and tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vscode
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100