Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[lyo-dev] Fwd: Bumps in the road(map)

Hello everyone,

Jena is planning to drop JDK 11 support shortly after JDK 21 LTS is released. Doesn’t seem a big problem for Lyo, we already build successfully on JDK 11, 17, 20, and 21-ea: https://github.com/eclipse/lyo/actions/runs/4707208264 However, it could be disruptive for Lyo users. Our previous surveys show that quite a few users are stuck on Lyo 2.x or 4.x and haven’t migrated to Lyo 5 yet. If anyone wants a 2023 survey, please indicate your interest. 

But this doesn’t seem like the most disruptive change to m. Their plan to do a javax->jakarta migration in one go means a lot of code changes would be needed, even if most of them could be automated. Dropping javax would mean a major release – Lyo 6.0.

Just like with Jena 3->4 migration, Lyo could trying staying on the last release of Jena 4.x for as long as possible and switch when the first CVE comes. Just as before, we need to be prepared, though. Ideally, we would release a lot of duplicate artifacts that only differ in targeting jakarta. We could do this in a 5.x release. Another option is to do a breaking release Lyo 6.0 and maintain 5.x a bit longer if there would be real drive in the community for that. If anyone switched to jakarta.* already, please offer your perspective on the move.

Dropping Json-ld 1.0 should not be a big deal but we can test it in Lyo by introducing a switch that would force 1.0 or 1.1 parser/serializer for JSON-LD. If you use JSON-LD actively, please give us your feedback on which version of it do you use and if dropping 1.0 support would be disruptive for you.

This summer I am expecting to be really busy and the timeline from Jena looks quite aggressive. Any help is appreciated.

–Andrew

Vidarebefordrat brev:

Från: Andy Seaborne <andy@xxxxxxxxxx>
Datum: 23 april 2023 16:17:34 CEST
Till: dev@xxxxxxxxxxxxxxx
Ämne: Bumps in the road(map)
Svara till: dev@xxxxxxxxxxxxxxx

There are two things that are significant changes,


1/ Java21 is due to be released September 2023 and be a LTS release.

Given our policy of "2 versions of Java" interpreted as "2 LTS releases", we can move to requiring Java17.

(Java17, with compiler set to "release=11", outputting Java11 byte code, is already used to build Jena. This is because javadoc generation with native Java11 has been broken in several ways.)

Java17 has multiline strings for SPARQL queries!


2/ javax.* -> jakarata.*

This is the difference between Jetty 10 and Jetty11. Jetty 12.0 is currently in beta.

But.

Spring Boot 2 is based on javax (Jetty10) and Spring Boot 3 uses jakarta (Jetty11 configured).

Spring Boot 2 to Spring Boot 3 includes other upgrades as well. [1]

A way to deal with this is switch to jakarta.* at Jena 5.


This gives us:

April       - Jena 4.8.0
July(-ish)  - Jena 4.9.0

October 5.0.0: Java17, Jetty11, maybe Jetty12.
and leave a Jena4 branch.

So if we are doing Jena 5, what else should change at the major version bump?


3/ Drop a separate JSON-LD 1.0 subsystem.

This also pulls in org.apache.http (although Jena controls the versions because we've had to in the past to get maven to make the right choice in resolving alternatives).

The last commit to jsonld-java/main was Dec 13, 2021
The front page says : "JSONLD-Java is looking for a maintainer"

JSON-LD 1.1 was published 16 July 2020

4/ Others?
Drop the war file?

   Andy


[1] https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide

Back to the top