Commit Graph

85 Commits

Author SHA1 Message Date
modmuss
362fc98c47 Improvements to test and IDE runs (#1252)
* Improves to test and IDE runs

* Use correct sourceset
2025-01-22 22:05:55 +00:00
modmuss
c46e252643 Add DSL to configure Fabric API game tests (#1240)
* Add DSL to configure game tests

* Small cleanup

* More work
2025-01-02 14:25:20 +00:00
modmuss
454e32ece7 Refactor Fabric API extension (#1238)
* Refactor Fabric API extension

* Fix

* Fix

* Even more cleanup
2025-01-01 14:25:54 +00:00
Space Walker
039b435e5d use manifest name in file name instead of url hash (#1127) 2024-09-03 18:13:04 +01:00
modmuss
9157c22448 Inital remap jar configuration cache support (#1161)
* 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
2024-08-20 12:51:47 +01:00
Space Walker
c5c52aba65 Use different cache files for custom manifest and metadata jsons (#1077)
* 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
2024-05-04 18:18:26 +01:00
Space Walker
3670ccb959 Support merging pre 1.3 Minecraft versions. (#1026)
Co-authored-by: modmuss50 <modmuss50@gmail.com>
2024-03-19 17:25:57 +00:00
modmuss
f0ca06f912 Cleanup MinecraftJarConfiguration (#1070)
* Cleanup MinecraftJarConfiguration

* Fixes

* Fixes
2024-03-11 11:36:52 +00:00
modmuss
b44e4ec3d5 Add API to get named minecraft jars. (#1063) 2024-03-10 13:37:45 +00:00
modmuss
5d2b75dc1d Remapper extension improvements (#1024)
* Remapper extension improvements

* Fix

* Fix generics
2024-01-16 16:27:51 +00:00
modmuss50
a6547244e9 Add loom.getMinecraftVersion()
Closes #982
2023-12-19 16:31:35 +00:00
modmuss
014a6fce2b Remapper extensions (#984)
* Remapper extension API

* Fix build

* More work

* Fixes, thanks Gradle.

* Build fix

* Cleanup
2023-12-15 09:47:26 +00:00
Luke Bemish
0dc2d67317 Add extension option to configure known INVOKEDYNAMIC BSMs (#945)
* 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>
2023-09-09 13:21:14 +01:00
Juuz
b19184751b Add toString to ModSettings and RemapConfigurationSettings (#831)
This helps a bit with debugging code that uses them as you don't
have to open the object to see which mod/remap configuration we're
investigating.
2023-02-18 21:04:17 +00:00
Juuz
06e9fb16e5 Rewrite the internals of mod configuration remapping to fix bugs (#807)
* 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>
2023-01-21 23:03:42 +00:00
modmuss50
63ecb88082 Gradle 8 tests, perf/memory optimisations (#796)
* 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>
2023-01-16 18:39:26 +00:00
modmuss50
2b9072f37d Add RemapConfigurationSettings.getApplyDependencyTransforms to close #797 (#799) 2023-01-16 18:19:48 +00:00
modmuss50
60d4dac6ca Support MinimalExternalModuleDependency's as a FileSpec input (#785) 2023-01-11 10:54:03 +00:00
modmuss50
da4b01427f Move access widener jar processor for new processor API. (#787) 2023-01-10 23:19:21 +00:00
modmuss50
39be6fa6e0 Merge remote-tracking branch 'origin/dev/1.0' into exp/1.1
# Conflicts:
#	src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java
#	src/main/java/net/fabricmc/loom/task/AbstractRemapJarTask.java
2022-12-11 20:31:07 +00:00
modmuss50
be4e7a42a3 Fix getRuntimeRemapConfigurations() returning the wrong classpath. (#769) 2022-12-11 18:26:39 +00:00
Juuz
34c24cde3c Add ModSettings.sourceSet overloads taking source set names (#765)
Closes #764. Also fixes some minor stuff in the javadocs of sourceSet().
2022-12-09 08:50:21 +00:00
Juuz
e48a7124f5 Add LoomGradleExtensionAPI.getRuns() for consistency with runs() (#748)
* Add LoomGradleExtensionAPI.getRuns() for consistency with runs()

* Improve jd
2022-11-01 19:31:03 +00:00
modmuss50
00a3b7ff4e Move Iface injection to new MinecraftJarProcessor API 2022-10-26 12:51:08 +01:00
modmuss50
0036d81a3a Fixes to legacy jar processors. 2022-10-06 22:48:09 +01:00
modmuss50
24b727c84c More changes 2022-10-04 20:46:46 +01:00
modmuss50
ab4234330e First look at MinecraftJarProcessor API 2022-10-03 22:00:07 +01:00
modmuss50
1b4226aca9 Fix mods being always being applied to the main sourceset and not the target. (#719) 2022-09-11 15:58:28 +01:00
modmuss50
727c396cd9 Add getMappingsFile and getDecompileTask APIs for use by the MC Dev plugin. (#697) 2022-08-07 09:50:22 +01:00
modmuss50
c5231a6641 Fix incorrect documentation. Closes #664 2022-08-04 12:59:37 +01:00
modmuss50
e561cca19a Split mod dependencies into client/common as required. 2022-08-04 08:56:37 +01:00
modmuss50
3913c2e897 Add a lock file around building the loom cache. Regenerate if the lock file exists.
This helps to ensure that failed or canceled builds do not cause the cache to be left in an undetectable invalid state.
2022-07-30 19:21:56 +01:00
modmuss50
53f239fd8e Remove shareCaches option, has not been used for a few versions.
Was basically designed for FabricAPI only, now the same is applied where possible to all projects in a much better fashion.
2022-07-25 18:39:39 +01:00
modmuss50
c4c6de23e3 Rewrite download utils (#681)
- 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.
2022-07-25 18:01:11 +01:00
modmuss50
aa77ad8c4c Support Mixin 0.8.5's configurable AP message levels.
Same API as MixinGradle. Closes #671
2022-07-03 21:23:36 +01:00
modmuss50
48fafb9a64 Remove unused properties. 2022-07-03 15:09:45 +01:00
modmuss50
5f09152e9f Merge branch 'dev/0.12' into exp/0.13 2022-07-02 23:42:41 +01:00
modmuss50
97927f913a Replace getRemapArchives & getSetupRemappedVariants with a gradle property. (#678)
* 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.
2022-07-01 18:13:56 +01:00
modmuss50
da2992e7d9 Configurable remap configs. (#674)
* First pass at configurable remap configs.

* No benefit to making it lazy: https://github.com/gradle/gradle/blob/v7.4.2/subprojects/plugins/src/main/java/org/gradle/api/plugins/BasePlugin.java#L104 ... fixes some stuff to make it work.
2022-06-25 21:38:43 +01:00
modmuss50
4f079f83aa Add dependency and configuration helpers to ModSettings. 2022-05-26 11:09:25 +01:00
modmuss50
23dfe606bb Fix mod settings for sourcesets from other projects. (#642) 2022-05-18 22:56:35 +01:00
modmuss50
752c829eb0 Fix ModSettings not using a ConfigurableFileCollection :)
Need to add some tests for this ;)
2022-04-30 21:35:17 +01:00
modmuss50
1dfea9ef7e Add a FileCollection to ModSettings 2022-04-21 20:52:11 +01:00
modmuss50
f632dee2df Mod provided javadoc (#627) 2022-04-19 23:30:28 +01:00
modmuss50
5f5dfcb3a7 Add refmap target namespace property. (#628)
* Add refmap target namespace Property.

* Fix build.
2022-04-17 21:15:58 +01:00
modmuss50
febc999092 Merge branch 'exp/0.12' into dev/0.12 2022-04-16 00:16:59 +01:00
modmuss50
66ef9659a2 Fail hard with an error message when calling the wrong officialMojangMappings method.
Before this would have been a weird silent failure and resulted in bad mappings.
2022-04-16 00:06:56 +01:00
modmuss50
0a8b792564 Add DSL to configure mod class path groups. (#608)
* Add basic mod settings.

* Cleanup and review feedback.

* Add idea output dir support.

* Eclipse and vscode + better tests.
2022-03-14 01:07:53 +00:00
modmuss50
fff4afe405 Initial support for split client/common sourcesets. (#606) 2022-03-04 15:01:45 +00:00
modmuss50
d7458756c8 Merge branch 'dev/0.11' into exp/0.12 2022-02-28 18:24:29 +00:00