* Move everything to the new service system
* Checkstyle
* Fix unit tests + make them use the internet less
* Some more fixes
* Split the mixin ap mapping handling out into its own service.
* Checkstyle
* Fixes
* Move mixin refmap handling to a service
* Minor changes
* use different cache files for custom manifest and metadata jsons
* add properties for custom manifests to loom extension api
* expand manifests api with a priority queue
* add ApiStatus annotations where needed
* explain sort order in javadoc
* add getVersionMetaFileName function
* merge the two manifests locations together
* convert hash code to hex string
* fix metadata provider tests
* update priorities of built in manifests so they're first by default
* fix VersionsManifestAPI javadoc
* update comment in MinecraftMetadataProvider
* fix ManifestLocation.cacheFile
* deprecate and replace getCustomMinecraftManifest
* Set up configuration for known indy bsms
* Make ignoredIndyBsms apply to service remapper
* Add groovy indy instruction to default known BSMs
* Address feedback
---------
Co-authored-by: modmuss <modmuss50@gmail.com>
* Add test for #801
* Add test for #572
* Rewrite mod configuration remapping internals to fix bugs
Fixes#801. Fixes#572.
- Instead of individual mod configs getting remapped, Loom now remaps
"collector configs": `mod[Compile/Runtime]Classpath[source set name]`
(eg `modRuntimeClasspathMain` -> `modRuntimeClasspathMainRemapped`)
- This lets us use Gradle's `org.gradle.usage` attributes to select
whether it's a compile-time or runtime dependency
- Note: Remap configurations sourcing from `api` are partially left
intact due to their special logic in the `namedElements` configuration.
- Setting the proper usages fixes#801.
- No dependency files are added to the real target configurations
(like `api` and `implementation`) anymore.
- This fixes#572, since `runtimeClasspath` and `compileClasspath` don't
leak transitive dependencies unlike `implementation` etc.
* Fix checkstyle
* Fix split env dependency consumers
* Only use collector configs for remapped deps and let the inputs stay intact
This way the code has less duplication.
* Improve log messages
* Update year
* Add some comments
* Fix compilation
* Use LinkedHashMap for reliable iteration order through remapped configs
* Use ImmutableMap.of instead of Map.of for reliable ordering
* ModConfigurationRemapper: Move namedElements handling out of forEach
* Add regression test for a crash where loader is resolved after other mods
* Fix the aforementioned bug
* Rename InstallerDataTest -> DependencyOrderTest
* Add TODO about refresh dependencies
The code currently processes the same deps multiple times when
--refresh-dependencies/-Dloom.refresh=true/a cache invalidation
is applied.
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* Add gradle 8 tests
Reuse gradle home between tests
Misc perf and mem optimisations
* Fix build warning.
* Added multi mc version test
* Use server launcher in ServerRunner
Co-authored-by: Luna <62033805+Luna5ama@users.noreply.github.com>
- eTag support (It seems Mojang's CDN and our meta/maven do not support this right now)
- Age based caching.
- Sha1 based caching.
- HTTP(S) proxy settings should now be respected.
- The downloader has better awareness of offline mode and refresh deps, cleaning up the calling code a bit.
- Uses the new Java 11 HTTP client, provides async support for downloading multiple files
- Progress handling (TODO needs hooking up to gradle)
- Better compression support. Handled by [Methanol](https://mizosoft.github.io/methanol/)
- Unit tested with a real web server.
* Replace getRemapArchives & getSetupRemappedVariants with a gradle property as they are evaluated too early to be set.
* Use true for all projects.
* Cleanup, you can set properties for each subproject.
* Fix docs.