Skip to content

Prepare For Releases #298

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

Merged
merged 12 commits into from
Sep 16, 2021
Merged

Prepare For Releases #298

merged 12 commits into from
Sep 16, 2021

Conversation

TheNexusAvenger
Copy link
Member

This pull request attempts to add the last requirements to make releases. The changes include:

  • Creating a single publish script for Windows-x64, macOS-x64, and Linux-x64. ARM64 can be added later when .NET 6 releases next year.
    • Releases will need to be made on a non-Windows system to ensure file permissions are correct.
  • Checking for Uchu.Instance.dll and Uchu.StandardScripts.dll in the same directory as Uchu.Master for the default configuration.
  • Removing the requirement for dotnet to be installed for launching servers.
  • Disabling Redis by default since we no longer document it or recommend it.

@enteryournamehere
Copy link
Member

I've updated the publish.py script to

  • directly put the output files in the bin directory, instead of letting dotnet put them where it wants and then trying to find the right directory (which failed when an old netcoreapp3.1 directory still existed)
  • include LICENSE, README.md and Configuration.md in the archive

One thing that still bugs me is that the output contains a lot of files (260 to 300, depending on the platform). It looks cluttered, it's not immediately obvious which files are relevant for the user. .NET supports making single-file executables by specifying -p:PublishSingleFile=true, but this results in a) no DLL being created for Uchu.StandardScripts, and b) an increased total output size (160 vs 106 MB for Linux). Alternatively: it should also be possible to "hide" all the dependencies in a subfolder, but I haven't gotten this to work so far.

@luxaritas
Copy link

Thoughts about setting up releases to be built using GitHub Actions?

@TheNexusAvenger
Copy link
Member Author

One thing that still bugs me is that the output contains a lot of files (260 to 300, depending on the platform). It looks cluttered, it's not immediately obvious which files are relevant for the user. .NET supports making single-file executables by specifying -p:PublishSingleFile=true, but this results in a) no DLL being created for Uchu.StandardScripts, and b) an increased total output size (160 vs 106 MB for Linux). Alternatively: it should also be possible to "hide" all the dependencies in a subfolder, but I haven't gotten this to work so far.

The other changes seem good, and this one I can see being worth it. Finding config.xml and Uchu.Master.exe was much more annoying than they should have been. I'll take a look at this as well. Maybe the first development release that has this will give some clues.

Thoughts about setting up releases to be built using GitHub Actions?

We've discussed this a bit internally before but haven't decided on anything. Unlike some of the others projects I have worked on, like Nexus LU Launcher, Uchu can compile on Linux for Windows with no issues, so that isn't a limit. For now, I am going to say we do that as a separate PR in the (hopefully near) future just in case we decide not to go with it.

@TheNexusAvenger TheNexusAvenger merged commit d27a976 into dev Sep 16, 2021
@TheNexusAvenger TheNexusAvenger deleted the enhancement/prepare-releases branch September 16, 2021 16:25
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.

3 participants