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

Towards Java 14 and Modularity #565

Open
1 of 3 tasks
skaldarnar opened this issue May 4, 2020 · 3 comments
Open
1 of 3 tasks

Towards Java 14 and Modularity #565

skaldarnar opened this issue May 4, 2020 · 3 comments
Labels
Status: WIP Work in Progress (not ready for review) Type: Question Needs further input or clarification.
Milestone

Comments

@skaldarnar
Copy link
Member

skaldarnar commented May 4, 2020

Working towards using Java 14 and jpackage to build platform-specific versions of that launcher that can be installed properly. This comes with a bunch of related changes and requirements (such as downloading the runtime by the launcher itself instead of bundling it with each release, and many more).

This issue aims to track progress on the matter.

Next action items:

@skaldarnar skaldarnar added Type: Question Needs further input or clarification. Status: WIP Work in Progress (not ready for review) labels May 4, 2020
@skaldarnar skaldarnar added this to the v5.x milestone May 4, 2020
@keturn
Copy link
Member

keturn commented May 4, 2020

Does Java 14 require we jlink, or may we start by bumping up some versions and distributing the java 14 JRE? (I think I did read somewhere that Oracle wasn't distributing JREs anymore, they said if you want to distribute a runtime smaller than the JDK you can do a jlink or whatever.)

Since #562 is only test dependencies, I expect it to interact with this less than if it were application code. 🤞

Gradle 6.4 (currently at release candidate 4) will have its own support for modular builds. I'm making assumptions here but I'd expect that to replace the org.javamodularity.gradle-modules-plugin. I don't know their timeline but rc4 sounds close to release, doesn't it? I'd be tempted to build on that instead of starting on one and switching.

@keturn
Copy link
Member

keturn commented May 4, 2020

There is one thing in #562 that might be relevant: It pulls in a component metadata plugin. I don't know if that helps with module conflicts at all, but it does help expose it when incompatible packages are on the classpath.

@skaldarnar
Copy link
Member Author

The game does not run with Java 14 afaik. I think we can prepare a few things (like cleaning up our dependencies or upgrading Gradle) but at some point we'll do hard cut.
I think jlink is availabe before 14, so we could probably move to building a minimal runtime for the launcher with jlink and downloading a separate JRE for the game (at launcher runtime). Final step would be to use jpackage to get nice installers...

Waiting for Gradle 6.4 - depends on when it is released. If it is ready we should go for it, but I'll continue to use the modularity plugin for now in hope to easily get rid of it. Reason is that I don't want to block this project unnecessarily...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: WIP Work in Progress (not ready for review) Type: Question Needs further input or clarification.
Projects
None yet
Development

No branches or pull requests

2 participants