Replies: 3 comments 2 replies
-
Just one note: your library is also used by JVM compatible languages. In my case Scala, but their are others such as Kotlin, Goovy and Clojure. In the case of Scala it is much easier to use the class path only. Its not that we cannot use modules, but adding the "--add-opens", "--add-modules" and "--add-exports" to the command line arguments is a pain. So I would say that one should try to avoid the need for these ( "--module-path" and "--add-modules" will always be needed). Having said this, it should also be possible to add the libraries as unnamed modules when used in the classpath. This was designed for backwards compatibility. Not all libraries allow this (for example OpenJFX). I think this will will work irrespective of wether or not JTablesaw uses modules or not. Maybe this can be added to some test? HTHs |
Beta Was this translation helpful? Give feedback.
-
One possible approach to moving forward - not ideal for sure - would be to fork the project and leave the current version in bug-fix-only mode, while doing future development on a path that stays up-to-date with the long-term support versions. Thoughts? |
Beta Was this translation helpful? Give feedback.
-
I thought about it yesterday and came to the same conclusion. That way, I
could also put the breaking change unifying StringColumn in the 1.0 branch
only, which makes sense.
|
Beta Was this translation helpful? Give feedback.
-
I decided to update this discussion thread as a way to keep people informed on the plans for Tablesaw development in the coming months.
There are now two ongoing branches: The java-8 branch, currently at version 0.43.2-SNAPSHOT will stay on Java 8 and will get some non-breaking enhancements (including backports, mostly provided by the community) and bug-fixes.
The master branch, currently at 1.0.0-SNAPSHOT, has moved to Java 11, a long-term support version. This branch will have breaking changes when it is released, and major development going forward will be on this branch. The current LTS version of Java is 17, with 18 as the most recent branch. At some point I will decide whether to release 1.0 on Java 11, or choose one of the more recent Java version. A list of important changes on this branch will be maintained at the bottom of this post.
For Tablesaw to be included in projects that use the Java module system, as real modules, we need to be on Java 9.0 or later as the language level. The current fallback is to put Tablesaw on the class path rather than the module path for the modules. As far as I know, this works ok, but it breaks module encapsulation. Some projects we use do not support modules, making it difficult or impossible to offer full module support in the short-term, but we can be ready to offer that support when they're ready.
I don't yet know how this will play with our sub-projects, especially those that implement IO features, which use reflection. It may require changes to the API to remove this requirement.
The CI system has been updated to use Java 11 and 17 for platform builds, so updates to the java-8 branch will need to be tested locally.
Changes coming on version 1.0
Here are some of the changes that are currently on the 1.0 branch:
Candidate changes for version 1.0
These changes are under development, but not yet merged into master.
@beta
annotation) or remove it in favor of the arrow format.Beta Was this translation helpful? Give feedback.
All reactions