This should hopefully vastly improve debugging, and more imporantly not work in a consistant manner, making debugging issues a lot easier.
This commit contains an intergration test that uses a real debugger to check that breakpoints are being fired as expected.
Fixes#890.
Note that there is *no simple way* to enable publishing for remap
configurations created this way anymore as the publishing mode is read
during the `createRemapConfigurations` call.
This also changes the behaviour of `modClientX` configurations to no longer
publish. If that is wanted, I can add a `createRemapConfigurations()`
overload with some kind of configurability.
* Change zip entry ordering to place manifest first
* Add handling for signature related files
* Update jar file hash
* Hopefully update correct file hashes this time
* Change jar hashes
* Add correct source hashes
* Fixes Integration tests locally often fail with download errors #878
* Hopefully fixes Loom is very slow to download files, often hanging for 10+ minutes #877
* "Forcing downloading" error should show much less often.
* Progress loggers get closed when download fails.
* Download assets uses a maxmium of 10 threads.
* Update tests to run against 8.3 nightlys.
* Fix windows arm tests as Mojang back-ported this change to all 1.19 versions.
This PR rewrites the Minecraft library processing with a more structured and testable set of "library processors". The old code is a mess of special cases and work arounds for various issues on various platforms.
Previously this was only really used on lesser used platforms/versions so wasnt a major issue if things broke, however current shipping Minecraft versions (1.19.4) use an LWJGL version that does not work well on Java versions new than 19. With this change LWJGL is upgraded when using Java 19 or later.
Upgraded libraries are also now only placed on the runtime classpath, this prevents you from using newer library features in your mod.
Single JARs break things like source generation on newer versions and
pretty much have no difference there, so we should log a warning,
similar to what we do for merged JARs not being supported on 1.2.5 or
older.