What to do on version incompatibilities between IDE and the project's specified engine #7639
Replies: 6 comments 10 replies
-
/cc @wdanilo your feedback would be appreciated. |
Beta Was this translation helpful? Give feedback.
-
I think indeed using latest seems like a good idea. Still IMHO it may be worth to keep the Once the project is opened in a different IDE/engine version combination, we could allow the different version but display a warning note to the user saying that "the project was for a different Enso version so there may be some API incompatibilities" (similar to the current "Unsupported engine version" message). |
Beta Was this translation helpful? Give feedback.
-
One problem with using "latest" is that "latest" is not really a version. And I would expect a different set of problems caused by that fact and it would also make it harder for us to debug.
I particularly like the second one. |
Beta Was this translation helpful? Give feedback.
-
I believe detecting such issues is hard, and distinguishing between incompatibilities and bugs is even more complicated. We should split this problem into two parts:
I think the answer for
I don't like this approach because there will be incompatibilities, and the user will be forced to rewrite the project instead of doing his job. If I open my project from last week and see that it is not working with the new IDE and I can't change that because the latest engine is always used, I will be infuriated. |
Beta Was this translation helpful? Give feedback.
-
We're still in the early stage of the project, shipping many features and bug fixes with every release. And currently, the situation is the opposite. When you download a new IDE, you can't use it with the old (pinned) engine version because of the changes made since. First, if we want to have versioning, we should ensure that the user has a clear understanding of it, i.e.
Then, we should distinguish between the engine version and the language server version.
Having separate engine and language server versions can cause a situation when a new language server version will not support older engine versions. But that's ok, and instead of failing to open the project or experiencing random issues in IDE (which is happening now), the user will be aware of it and will be forced to switch to a new engine version (or to use older IDE versions). |
Beta Was this translation helpful? Give feedback.
-
To summarize discussions that happened since the last message.
|
Beta Was this translation helpful? Give feedback.
-
We had a number of issues recently related to the fact that newer IDE was forced to use incompatible engine version.
Examples include:
and numerous discussions about the version of newly created projects having a sticky and old version of the engine, therefore causing immediate problems.
While it would be nice to be always compatible between IDE and engine I don't think it is realistic at this point in time.
Specifying which versions break the protocol and therefore should be upgraded is also non-trivial and rather error prone (easy to miss the changes). I've seen projects defining such logic but it is a massive can of worms.
Should we for now abandon the whole fixed version schema and always use latest?
Beta Was this translation helpful? Give feedback.
All reactions