Skip to content
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

Update lsp4j to 0.12.0 #1045

Closed
datho7561 opened this issue May 20, 2021 · 9 comments
Closed

Update lsp4j to 0.12.0 #1045

datho7561 opened this issue May 20, 2021 · 9 comments
Assignees
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request

Comments

@datho7561
Copy link
Contributor

datho7561 commented May 20, 2021

There are changes to the lsp4j interface that require changes to the code base. There are also new parameters that will need to be registered for reflection so that the binary server works.

@datho7561 datho7561 added enhancement New feature or request dependencies Pull requests that update a dependency file labels May 20, 2021
@datho7561 datho7561 added this to the 0.17.0 milestone May 20, 2021
@datho7561 datho7561 self-assigned this May 26, 2021
@datho7561 datho7561 changed the title Update lsp4j to support LSP 3.16 Update lsp4j to 0.12.0 May 26, 2021
@datho7561
Copy link
Contributor Author

After I have investigated more, I think the only changes needed are:

  • lsp4j 0.11.0 --> 0.12.0 in the pom.xml
  • gson 2.8.2 --> 2.8.6 in the pom.xml, to match the version required by lsp4j

I managed to get the binary server to launch without modifying the reflection configuration.

@datho7561 datho7561 removed this from the 0.17.0 milestone Jun 22, 2021
@pablocabrera85
Copy link

Hi. Are you planning on including this change in the next release? Is there a date for it?

@angelozerr
Copy link
Contributor

I dont think we will integrate 0.12.0 for the next release because 0.11.0 is enough for lemminx and if I remember we had some troubles with 0.12.0.

And we would like to create à release soon when some issues will be fixed

@angelozerr
Copy link
Contributor

Why do you need 0.12.0?

@pablocabrera85
Copy link

Thanks for the fast reply :-). We are currently running a composition of Language Servers in the same JVM. All of them have been updated from 0.9.0 to use 0.12.0 in order to consume the latest feature and avoid staying behind LSP4J API changes.

Inside this ecosystem, we are also using lemminx 0.18.0.

The features we had were not initially affected by the API signature changes until recently.

We have some level of classloader isolation between components, but the LSP4J API is not included in the list of dependencies that can have multiple versions running in our process. This is something we were thinking of tackling but if it was in lemminx plan to support 0.12.0, we could delay it.

@angelozerr
Copy link
Contributor

. This is something we were thinking of tackling but if it was in lemminx plan to support 0.12.0, we could delay it.

As we would like to do a release soon, it's too dangerous to switch to it for now. And we have no plan for the moment to switch to it. I'm sorry, but if you wish you can create a PR.

@mickaelistria
Copy link
Contributor

As we would like to do a release soon, it's too dangerous to switch to it for now

IMO, switching to newer LSP4J shouldn't happen for a bugfix release (such as 0.18.1), if this is to happen, it should be in a new "functional" release (eg 0.19.0) to clarify it may break compatibility with extensions.

@pablocabrera85
Copy link

Thanks @angelozerr and @mickaelistria for your quick replies.

Given that LSP4J API usually breaks compatibility with every new minor version I completely agree that such a change should not be included in a bugfix release (not even a minor if following semver strictly speaking).

I'll take a look at your contribution guidelines to see if I can open a PR with the changes 👍.

@angelozerr
Copy link
Contributor

I close this issue since today LemMinx uses LSP4J 0.14.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants