The Eclipse Xtext project team has decided to change the schedule for the upcoming 2.11 release. The release was planned for October 18th, 2016 – right before EclipseCon Europe. However, instead of releasing the final version on that date, a beta version of Eclipse Xtext will be released. The new official release date has not been announced yet, but is expected until January 2017.
Language Server Protocol
The main feature for Xtext 2.11 is the support of Microsoft’s Language Server Protocol. The server side of the protocol is already implemented to some degree by Xtext now, which enables to integrate Xtext DSLs in VisualStudio Code and in future by other code editors and IDEs that support the protocol (e.g. Eclipse Che).
There is still some work until the protocol is fully implemented and with Xtext 2.11 all supportable features are expected to work. It is no problem to start already to get your experience with Xtext 2.11 beta LSP implementation, since part of the LSP is that a language server answers the Initialize Request with its ServerCapabilities. An unsupported feature of the protocol won’t just be accessed by the client then.
A main focus of our work at itemis for the Xtext project is on bugfixing. Eclipse Xtext and Xtend have over 1.000 open issues in Bugzilla and GitHub. For our customers often stability and scalability are far more important than new features or additional integration possibilities. Therefore it is important for us to assure that the known bugs are reduced. Further, we will now react on new bugs faster.
For Xtext 2.11 already over 230 bugzilla tickets and over 90 GitHub issues were solved. This is quite a large portion of the existing bugs. Our team, especially Christian and Karsten invested quite some time into bugfixing in the past months and we will continue to contribute as many fixes as possible. Some issues are already fixed and pull requests exist, but reviews are pending so some fixes are not available yet.
Repository Split Aftermath
After the 2.10 release the project’s source repository was split up into eight sub-projects. The main idea was to divide the large code base into smaller parts which could be easier maintained.
The main split was done quite fast, but some things got severely broken. Many tests got broken, some scripts relied on the old directory structure, builds became dependent on upstream builds, release tags got lost and so on. There are still open restructuring issues that cannot be fixed until next week.
While working on bugfixes recently we are increasingly wondering if that split was a good idea at all. Instead of making things easier, some things became more complex. For the user it is often not clear to which repository an issue should be filed. For example, a bug detected when working with Xtend might be filed to the xtext-xtend repository. During the issue analysis it can turn out that the problem is actually in Xbase, which now is in the xtext-extras repository, or has changes for both repositories. It happened multiple times that several pull requests had to be opened for different repositories to fix one bug. This also leads to the necessity that a certain order of pull requests have to be merged and upstream builds have to be executed before a multi-repo issue is actually solved.
Also the trace link from pull request to issue gets broken when the issue was filed to a different repository than the pull request that fixes it.
Some internal languages (like Xbase) are now also spanning multiple repositories. While UI independent projects are in one repository (e.g. Xbase is now in xtext-extras), the Eclipse editors for these languages are in xtext-eclipse.
Hopefully in the future we will experience the real benefit of the split, but for now there is still some work to do to get things fixed and some overhead. We expect that the remaining problems are solved with the 2.11 release.
On October 18th, a beta version of Eclipse Xtext 2.11 will be released instead of the final release as planned in July’s developer meeting. The beta version will already contain lots of bug fixes and a usable implementation of the Language Server Protocol.
However, it is too early for a final release at the moment. Due to the project’s restructuring some issues have to be solved as well as completing the LSP implementation. The new release date will be announced soon. All main developers come together at EclipseCon Europe this month and we will then surely discuss topics like the new release plan. If you are interested in first-hand information don’t miss EclipseCon and meet us there!