VS Code API support: proposed APIs #12450
Replies: 4 comments
-
@rschnekenbu : Could you look at this and discuss with me |
Beta Was this translation helpful? Give feedback.
-
Using proposed API in release version does not only seem to be a problem in built-ins: https://github.com/Microsoft/vscode-jupyter, for example seems to use |
Beta Was this translation helpful? Give feedback.
-
I was wondering how we would actually structure the code for proposed API: I would suggest we move to the same organization as VS Code has now, where there is a separate file per proposal. |
Beta Was this translation helpful? Give feedback.
-
AFAIK, there are currently 2 ways to check for the extensions support:
Note:
I would suggest for a better support to automate this reporting. For example, for each or all of the built-ins, we should detect which proposed / public APIs we are currently supporting by implementing or stubbing them, as done for the current theia vscode report. It would be nice to get this report for any given version of theia and vscode, from a local repo or from github. For the process, we shall ensure before bumping the API support that we are currently on par with both public APIs and proposed APIs.
|
Beta Was this translation helpful? Give feedback.
-
We're currently tracking support for the official VS Code API for a given target version but this excludes proposed APIs.
Proposed APIs are important for VS Code builtins: These are extensions developed directly alongside VS Code and while they mostly use the official VS Code API they also make use of some proposed APIs (most likely for dogfooding).
The tricky part about proposed APIs is that it is a variable set, with no guarantee made for backward compatibility. Unlike the official VS Code API which is only ever growing without changing previous APIs in breaking ways, the proposed API set may vary and break across VS Code versions. Breakage may not happen often but it may happen which means we need to handle this carefully.
The approach we came up with would be to:
Doing this would mean we could release builtins for Theia's target VS Code API version and have them work. If applications makers were to use builtins built for a different version than the target version then there's good chances that it will work but there's also chances that it will not work/behave in weird ways because of incompatible proposed APIs expectation and implementation. This would be a known issue and the fix would be to use a builtin built for the right target version.
Builtins contribute important features such as TypeScript support, Git support, and more. Better supporting the infrastructure required for them to function is then equally important in our opinion.
Any thoughts about this? What about the proposed process? Ok to track proposed APIs alongside stable ones when moving to support new VS Code versions?
Beta Was this translation helpful? Give feedback.
All reactions