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

add JDK 23 to build tool table #3082

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

SethTisue
Copy link
Member

@eed3si9n what should I put for sbt?

@lefou what should I put for mill?

@Gedochao should I add a scala-cli column?

@eed3si9n
Copy link
Member

eed3si9n commented Oct 6, 2024

We only run CI tests on JDK 17 (https://www.scala-sbt.org/1.x/docs/Setup.html). If anything later worked, it's purely by lucky accident, but people are free to choose whatever.

@Friendseeker
Copy link
Contributor

@eed3si9n

For sbt, would it be an improvement to add CI tests for all combination of major OS (Ubuntu, Mac, Windows) & LTS Java version?

I use sbt with Java 21 locally and can confirm it works quite well. Some minor change in ci.yml to declare a testing matrix would do it (which I can work on).

Even if some of the newly added tests fail, given the massive userbase of sbt, the CI failures would likely be real issue that needs to be addressed.

@eed3si9n
Copy link
Member

eed3si9n commented Oct 6, 2024

@Friendseeker

For sbt, would it be an improvement to add CI tests for all combination of major OS (Ubuntu, Mac, Windows) & LTS Java version?

I've created sbt/sbt#7731. Let's discuss there.

@SethTisue
Copy link
Member Author

SethTisue commented Oct 7, 2024

for the purposes of this web page, it's enough that there isn't some obvious showstopper that most people will hit — particularly since 23 isn't LTS

works for me on a sample repo, anyway. if we discover otherwise
we can change it
@SethTisue
Copy link
Member Author

@lefou what should I put for mill?

@lefou
Copy link
Contributor

lefou commented Oct 15, 2024

Mill has no dedicated Java 23 test suite. Our full CI doesn't succeed on Java 23 due to some tests exercising older Scala versions that are known to be incompatible with Java 21 and above. But Mill 0.11.11 runs with Java 23 without known issues. I guess older versions down to 0.11.5 might work as well.

@lefou
Copy link
Contributor

lefou commented Oct 15, 2024

I just checked, I can build Mill's own code base (0.11.x branch) with Mill 0.11.8 on Java 23 too. I couldn't check older versions due to feature requirements in that project.

@SethTisue
Copy link
Member Author

thank you @lefou

leaving as draft until we hear from Piotr (there's no big rush)

@SethTisue
Copy link
Member Author

ping @Gedochao

@Gedochao
Copy link

Gedochao commented Dec 17, 2024

Sorry for the late answer, I missed this somehow.

should I add a scala-cli column?

@SethTisue that would make sense, but I suspect you'd need the relevant minimum scala-cli versions for each of the LTS JDKs to fill the table.

scala-cli is built with Java 17, and running the JVM launcher (a power user case) technically requires Java 16+ (with 17+ being recommended).
Our tests suite also runs mostly on Java 17, with some choice tests running on 8, 11 and 22.

The average user would use a native launcher, which wouldn't care what version of Java is installed for running the CLI itself.

When building projects with a build server (as in, Bloop), Java 17+ is required. However, Scala CLI will download the appropriate JVM for Bloop as necessary, so this could be treated independently.

Running user projects respects user configuration and should support Java 8+.

The most recent scala-cli version seems to run fine with Java 23, but to provide more precise data for the table (which specific scala-cli version is needed), I'd need to run some tests. I'll try to give more specific data when I can, I should be able to give you some answers this week, if not today.

If this is blocking this PR, we can do a separate follow-up.

@Gedochao
Copy link

Gedochao commented Dec 17, 2024

Ran some very basic tests.
Minimum Scala CLI versions for running user projects with the appropriate JDKs:

  • Java 11: Scala CLI 1.0.0 (theoretically any pre-1.0.0 would work as well, even as early as 0.0.2) but I'd rather not put any of the earlier versions there)
  • Java 17: Scala CLI 1.0.0 (same as 11)
  • Java 21: Scala CLI 1.0.0 with Scala set to 3.3.1+, or 1.0.5 with tool defaults
  • Java 23: Scala CLI 1.4.1 or higher (independently of Scala version)

I intend to add some tests to our test suite, + perhaps bump things from Java 22 to 23 on the CI, but perhaps the data above would be sufficient?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants