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

CI: Extend Github Release Target #45

Closed
3 of 4 tasks
PhilippvK opened this issue Sep 4, 2020 · 10 comments
Closed
3 of 4 tasks

CI: Extend Github Release Target #45

PhilippvK opened this issue Sep 4, 2020 · 10 comments
Assignees
Labels
enhancement New feature or request

Comments

@PhilippvK
Copy link
Owner

PhilippvK commented Sep 4, 2020

Features to be implemented:

@PhilippvK PhilippvK self-assigned this Sep 4, 2020
@PhilippvK PhilippvK added the enhancement New feature or request label Sep 4, 2020
@PhilippvK
Copy link
Owner Author

I am already trying stuff out on the maven_dist branch.

@PhilippvK
Copy link
Owner Author

PhilippvK commented Sep 4, 2020

Build Windows Installer with InnoSetup to bundle JRE with (only if really required, as it requires 32bit wine and does not support much distributions. Have a look at: https://github.com/TheBoegl/innosetup-docker)

It seems like Launch4j enables using an JRE located relative to the generated client.exe. Unfortunately it can NOT include the JRE right into the executable. The windows installer takes care of copying the jre to the directory where the EXE has been installed into.

I will give it a try because I think that the Client would be more accessible to others if installing Java 8 is not a requirement.

@pehala
Copy link
Collaborator

pehala commented Sep 4, 2020

  • [Docker] We could also add docker support for both client and server (Maybe separate issue?).
  • [WINDOWS] https://stackoverflow.com/questions/49651902/how-to-get-the-jre-to-bundle-with-launch4j Maybe this could solve the problem with launch4j.
  • [MacOS] I am not sure we need to include JRE in that one, I would consider userbase of macOS experienced enough to either have java already installed or know how to install it. They can also use docker without any problems so I would maybe solve MacOS problem with only .dmg (if it is working after the fix) and a docker image.

@pehala
Copy link
Collaborator

pehala commented Sep 4, 2020

For the version consistency, I think we could migrate to version format like 2.1.0.0, which should be usable in all settings.

@PhilippvK
Copy link
Owner Author

[Docker] We could also add docker support for both client and server (Maybe separate issue?).

Yes, separate issue please.

[WINDOWS] https://stackoverflow.com/questions/49651902/how-to-get-the-jre-to-bundle-with-launch4j Maybe this could solve the problem with launch4j.

Unfortunately not. It requires the jre to be placed relatively to the .exe. For this reason installers are recommended.

[MacOS] I am not sure we need to include JRE in that one, I would consider userbase of macOS experienced enough to either have java already installed or know how to install it.

I agree, Homebrew makes it very easy to install Java 8. However bundling the JRE is extremely easy (download JRE directory to a temporary directory and adding a single line to the <appbundle> section of the pom.xmp. The directory structure inside the Client.app will then include the JRE and use it by default. The DMG vs. IMG thing is just because I remember that I was not able to generate DMGs inside the travis container because of an non-Apple environment. If this issue does not exist anymore we can just use DMG.

@PhilippvK
Copy link
Owner Author

For the version consistency, I think we could migrate to version format like 2.1.0.0, which should be usable in all settings.

I already wanted to mention this when I opened the issue bit somehow forgot to write this down. Currently 1.0.0 is hardcoded at some places and yes, your mentioned format should be used.

@pehala
Copy link
Collaborator

pehala commented Sep 4, 2020

We can do this manually before release with mvn versions:set -DnewVersion=2.1.0.0 which actually sets it for all submodules as well. I will create PR which changes current master to this version.

@pehala
Copy link
Collaborator

pehala commented Sep 4, 2020

I agree, Homebrew makes it very easy to install Java 8. However bundling the JRE is extremely easy (download JRE directory to a temporary directory and adding a single line to the <appbundle> section of the pom.xmp. The directory structure inside the Client.app will then include the JRE and use it by default. The DMG vs. IMG thing is just because I remember that I was not able to generate DMGs inside the travis container because of an non-Apple environment. If this issue does not exist anymore we can just use DMG.

Right now it generates DMG (and github actions also generates it) but I do now know if it works as I do not have a mac. I would very much like to avoid having a specific distribution branch with specific scripts as it creates a bunch of problems, so in my opinion, if we can do it all through maven it might be alright to bundle JRE with it, but we can't I would leave it as it is.

[WINDOWS] https://stackoverflow.com/questions/49651902/how-to-get-the-jre-to-bundle-with-launch4j Maybe this could solve the problem with launch4j.

Unfortunately not. It requires the jre to be placed relatively to the .exe. For this reason installers are recommended.

The same problem, if we can somehow do it all through maven I am ok with it, otherwise, I would swallow the fact that the .exe will require java if we the error they get clearly states that they need java 1.8. Since most of the potential players already played minigolf on Playforia, they already know about java a most likely have it installed anyway, so it shouldn't be that big of a deal.

If we somehow manage to download and bundle JRE with maven, however, we should think about binding these bundling actions to a different phase (maybe deploy?) so we don't download JRE with every mvn install.

@pehala
Copy link
Collaborator

pehala commented Sep 4, 2020

One additional thing we could do is to create pre-release (2.1.0.0-BETA) to test if the release action works, to actually test it and to compare with this updated one.

@PhilippvK
Copy link
Owner Author

The changelog in the Release notes are intended to help drafting the actual release notes by having the commit messages as an reference.

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

No branches or pull requests

2 participants