Release v2.0.0 - Major Rewrite (AssetGuard, JavaGuard, DistroManager)
Release v2.0.0
This release includes new implementations of several core mechanisms of Helios Launcher. The new implementations replace the Distribution manager, AssetGuard, and JavaGuard. All rewritten code leverages the full power of Typescript and modern Javascript APIs. This has resulted in a more maintainable, robust, and concise codebase. Remember, async/await was not even stable in Node when v1 was being written!
For technical details on the new implementations, see the helios-core release notes https://github.com/dscalzi/helios-core/releases/tag/v2.0.0
Highlights
- Support for Helios Distribution Spec v1.2.0.
- Support for SRV records in server status api (#120)
- Java settings per server (through the distribution), and full support for pack-specific ram (#154)
- Downloads are retried up to ten times. This will fix issues with the Mojang resource urls timing out.
- Robust download error handling, you should never get stuck at 99% again.
- RAM increments are now correctly resolved in increments of 512 MB (instead of 500MB).
- ..and much more! Check out the code changes 😄
Breaking Changes of Note
As this is a rewrite, there are a lot of breaking changes. Most of the changes should be self evident, these might not be as obvious.
- Pack.xz format is no longer supported. Older versions of forge no longer ship as .pack.xz and even the JDK removed Pack200 starting in JDK 14. The solution to this is simple, host your jar files as
.jar
and not as.jar.pack.xz
. - The location of the distribution url has changed. It is now stored in
exports.REMOTE_DISTRO_URL
in distromanager.js (line 7). - Dev distribution must now be named
distribution_dev.json
, instead ofdev_distribution.json
.
Full changeset #270
Note for Forks
Helios 1.x is no longer supported, I would highly recommend upgrading your forks to v2 at the earliest convenience. If you have any questions, please ask them either on Discord or on the GitHub discussion for this release. Please make sure to test your upgrades before shipping to production. Report any issues you find in the base code, and they will be fixed. Thank you!