The Xtext team has released version 2.19.0 of Eclipse Xtext & Xtend. The current version is mainly a maintenance release. After working hard on some new features in the past releases, it was time for summer vacation during the current release period and for some focus on build engineering tasks. Still over 350 pull requests made it into the short release period.
Eclipse’s new build infrastructure JIRO
The Eclipse Foundation’s build engineers worked on a new build infrastructure called JIRO (Jenkins Instances Running on OpenShift). The Xtext project joined early the efforts on preparing a migration to the new infrastructure. However, now it was time and the Eclipse Foundation asked to finally shut down the old build server and to switch over to the new infrastructure. While we were already done with the main build jobs, there were still quite some supportive build jobs for release engineering that had to be migrated.
Luckily, the itemis Xtext team could acquire Nico Prediger from the itemis DevOps staff to support the efforts on build engineering tasks. With his support, we could finalize the work and finally replace the old Jenkins instance.
As a result, Xtext builds fine now on its new JIRO instance at https://ci.eclipse.org/xtext/ and was released the first time on the new infra.
Keeping the software stack up-to-date
Xtext builds upon a quite huge software stack, and several components are released within each release period. We try to keep them all on the latest state as far as we can. Of course, for each used component we have to test the compatibility of each upgrade.
The most notable upgrades this time are Guava and Gradle:
The Guava version 21.0 that we used before had a security problem that was issued as CVE-2018-10237. This forced Xtext as well as other dependent Eclipse projects to upgrade to a recent version of Guava. For the Eclipse 2019-09 simultaneous release, the delivered Guava version is now 27.1.0. All builds descriptors, wizards, and projects have been updated to use Guava 27.1.0 now.
The Guava upgrade also affected the MWE project, which employed the upgrade with its recent release. As a consequence, Xtext upgraded to MWE 2.11.
Xtext has been updated to use Gradle 5.5 now. While Gradle 6 is not official yet, Xtext has already been prepared for it. We closely followed the planned changes and revisited all relevant sources to ensure compatibility with Gradle’s next major versions. We expect that Xtext finally upgrades to Gradle 6 shortly after its release.
XTEXT WEB SUPPORT UPDATED
With the rise of the Language Server Protocol (LSP) integration of Xtext-based languages into other IDEs and editors, it is often preferred to work through language servers. Xtext is integrating the latest LSP4J version 0.8.0 und thus the current status of the LSP.
When it comes to language support in web-based editors, Xtext offers a second approach called Xtext Web. The software components that Xtext Web is based on have been upgraded to their latest state. Also, the examples have been polished again with this version.
To get a better feeling, we have put the Xtext Web examples online now, so you don’t have to download and build them locally. Try the Xtext Web integration with the various supported editors Ace, CodeMirror, and Orion here: https://xtext-demo.itemis.com/.
What’s your wish for future Xtext versions?
We will continue to implement exciting features and ensure that Xtext will be compatible with the latest and greatest of all that we use. While we focus the development on the needs of our customers, you may have ideas how to make Xtext even better. Please tell us! We won’t bite you (and we can’t do this through the wire anyway)!