Commit Graph

1523 Commits

Author SHA1 Message Date
shedaniel
de3c2056da Fix merge conflicts 2023-11-22 15:08:15 +08:00
shedaniel
00254ea567 Don't remap Forge with classpath (?) 2023-11-22 15:02:33 +08:00
shedaniel
e3c5226da7 Merge remote-tracking branch 'FabricMC/exp/1.5' into exp/1.5
# Conflicts:
#	gradle/libs.versions.toml
#	src/main/java/net/fabricmc/loom/configuration/mods/ArtifactMetadata.java
#	src/main/java/net/fabricmc/loom/configuration/mods/ModConfigurationRemapper.java
#	src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
#	src/main/java/net/fabricmc/loom/task/RemapJarTask.java
#	src/main/java/net/fabricmc/loom/util/Constants.java
#	src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy
2023-11-22 14:56:39 +08:00
modmuss
92da5adb48 Remove Minecraft libraries from the remap classpath. (#987) 2023-11-20 19:15:30 +00:00
modmuss
99380d98e5 Add Fabric-Loom-Mixin-Remap-Type manifest entry (#980) 2023-11-20 15:19:48 +00:00
Jason Penilla
f63a4f4d25 Skip remapping in AbstractRemapJarTasks when source and target namespaces match (#985)
* Skip remapping in `AbstractRemapJarTask`s when source and target namespaces match

The "remap jar" tasks have much more functionality than simply remapping jars at this point, such as adding namespace metadata, nesting jars, ensuring reproducible builds, etc. Some custom build logic may want to take advantage of these features without the full overhead of no-op remapping with TinyRemapper/Mercury.

* Add test
2023-11-20 10:35:46 +00:00
shedaniel
4e805d2b9b Fix compile errors 2023-11-18 00:38:54 +08:00
shedaniel
ea1d58e106 Merge remote-tracking branch 'FabricMC/exp/1.5' into exp/1.5
# Conflicts:
#	build.gradle
#	gradle/libs.versions.toml
#	src/main/java/net/fabricmc/loom/configuration/ide/RunConfigSettings.java
#	src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
#	src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingConfiguration.java
#	src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy
2023-11-18 00:33:59 +08:00
Juuz
229f073492 Improve log message for experimental platforms 2023-11-17 16:24:29 +02:00
Juuz
7c08c02796 ModPlatform: Introduce display name 2023-11-17 16:24:16 +02:00
Juuz
ad7eee6fa5 ModProcessor: Clean up with MappingOption.forNamespaces 2023-11-17 16:19:52 +02:00
Juuz
a11b828380 NeoForge support (#166)
* Initial plumbing for NeoForge support

* Fix checkstyle

* Add ModPlatform.id

* Use NeoForge-specific cache

* Use NeoForge-specific dependency configuration

This is only for the "(neo)forge" configuration exposed
as API. The other configurations remain the same.

* Add test for basic NeoForge 1.20.2 projects

* Implement hacky fast track for NeoForge field migration

In other works, we skip field migrating for now.

* Disable patched decompilation task on Neo

* Disable mixin AP for building on NeoForge

* Many changes related to NeoForge mappings and remapping

* Code style and related fixes

* McpExecutor: Add support for downloading deps via Gradle

Also adds support for downloading a file without a repo
for NeoForm functions.

* Fix wrong configurations being used on NeoForge

* Fix mixin version detection on NeoForge

* Rename MinecraftPatchedProvider jar paths on NeoForge

* Test NeoForge against a client-only MC jar

* Add DFU for codecs, support NeoForge run config templates

* Centralise userdev config reading, support missing SAS

* Set up Shadow for bundling DFU

* Use correct name for NeoForm in cache files

* RemapJarTask: Fix check using isForgeLike for Forge

* MojangMappingsMerger: Complete and reorder mappings

* Fix SRG being used on NeoForge

* Fix SRG being used on NeoForge for ATs

* Use client pipeline for merged to avoid patch issues on Neo

* Update to architectury-loom-runtime 2.0

* Fix Minecraft jar name on Neo

* Fix MojangMappingsMerger having incomplete names

* Fix NeoForge mod dependency remapping using wrong mappings

* Quiet down MojangMappingsMerger

* Fix (Neo)Forge builtin coremods not being remapped

Fixes #146.

* Disable deprecated data generation API on NeoForge

* Use release version of the forge runtime

* Revert "Set up Shadow for bundling DFU"

This reverts commit 2bb8166744.

* Make NeoForge Field Migration work

* NeoForge shouldn't try to get datagen mods

* Fix checkstyle

* Remove mojang maven

* Split Forge and NeoForge extensions

* SimpleNeoForgeTest: Bump Neo version and fix Yarn version

* Remove resolved TODOs

* Re-enable joined NeoForm pipeline

* MPP: Rename srg -> intermediate jars

* Reintroduce namespace filtering for mapping trees

Should be a simple optimisation to avoid reading an
additional ns.

* ForgeRunTemplateTest: Fix code format

* Adapt SrgMerger into ForgeMappingsMerger (#169)

* Fix crash with NeoForge ext creation

* Adapt SrgMerger into ForgeMappingsMerger

* Update tiny-remapper

* Fix spotless

* Resolve reviews

* Fix checkstyle

* Remap ASMAPI.redirectFieldToMethod (#171)

* Remap ASMAPI.redirectFieldToMethod

* Move lastClassName outside the if

* Fix missing template variables in tests using forge/simple

* Add Java version to forge/simple test variables

* Disable naming service dependency on Neo

* Fix changing patch version not affecting mapped game jars

Fixes #167.

* Rename configuration: neoforge -> neoForge

---------

Co-authored-by: shedaniel <daniel@shedaniel.me>
2023-11-17 16:04:22 +02:00
shedaniel
e3b51e9e97 Fix Field Migration (#168)
* Fix #162

* Refactor some field migrator code
2023-11-13 14:52:02 +08:00
shedaniel
683a866284 Fix dependencies not being remapped with srg 2023-11-12 22:02:42 +08:00
modmuss50
7c3bec39cb Create remap configurations for automatic data generation configuration.
Closes #972
2023-11-09 22:33:17 +00:00
modmuss50
09a4ffb803 Disable run config tasks when removed from loom.runs
It's not possible to remove a gradle task once registered.
2023-11-09 22:26:38 +00:00
modmuss
83ab524639 Update MIO to 0.5.0 (#974)
* Update MIO to 0.5.0

* Beta 3 + fix
2023-11-06 19:16:44 +00:00
modmuss
ee0e5df98c Fix server only jars. (#968)
* Actally fix server only jars.

* Cleanup the single jar names
2023-11-06 10:40:49 +00:00
Juuz
731f0728da Support mixins without refmaps in mod dependencies (#976)
* Support mixins without refmaps in mod dependencies

* Fix review concerns

* Add test for MixinDetector

* Change warning to a RuntimeException

* FabricAPITest: Test building without mixin AP

* Deal with Eclipse being stuck in the 2010s and not supporting basic Groovy syntax

* Auto-fix Groovy code format

* Fix FabricAPITest not running

* Fix code style
2023-11-06 10:40:24 +00:00
modmuss
fd34697015 Raspberry Pi support (#973)
* Raspberry Pi support

* Reduce log level
2023-11-02 21:51:57 +00:00
shedaniel
31147018be Publish 1.4 beta builds 2023-10-24 11:23:40 +08:00
shedaniel
48c39617c5 Support newer versions of MinecraftForge 1.20.2. (#164)
* Support newer versions of MinecraftForge 1.20.2.

* Add directly to settings.getEnvironmentVariables()
2023-10-24 11:22:38 +08:00
shedaniel
c8599e7f66 Merge remote-tracking branch 'upstream/dev/1.4' into dev/1.4 2023-10-24 11:19:58 +08:00
modmuss
7106441298 Fix extending the client/datagen compile/runtime classpath from main (#967) 2023-10-22 13:52:17 +01:00
Juuz
65920d3958 Merge branch 'dev/1.3' into exp/1.4 2023-10-20 14:22:43 +03:00
Juuz
b6354a06ef Update more generated system properties for Quilt Loader 2023-10-20 14:21:52 +03:00
modmuss50
39841d8dc0 Revert "Fix server only jar, closes #966"
This reverts commit eb0c45956b.
2023-10-16 18:57:31 +01:00
modmuss50
eb0c45956b Fix server only jar, closes #966 2023-10-16 16:20:43 +01:00
modmuss
a6534adeaf Fix runtime crash on Intel Mac's when LWJGL has been updated. Closes #963 (#964) 2023-10-16 16:20:43 +01:00
modmuss
8c7c14e922 Add fabricApi.configureDataGeneration API/DSL to help with setting up data generation. (#960)
* Add fabricApi.configureDataGeneration API/DSL to help with setting up datageneration.

* Clean + add option to not add to resources

* Dont create new task
2023-10-16 16:20:43 +01:00
haykam821
78a903d2c9 Sort extra manifest attributes (#958) 2023-10-16 16:20:43 +01:00
modmuss
46e27ce1ba Rename .jnilib natives to .dylib (#956) 2023-10-16 16:20:43 +01:00
shedaniel
4af46aa67c Merge remote-tracking branch 'upstream/exp/1.4' into exp/1.4
# Conflicts:
#	src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/ProcessedNamedMinecraftProvider.java
2023-10-12 22:09:40 +08:00
embeddedt
b7c80133ce Use hash of cache value as the JAR name for processed Minecraft JARs (#944)
* Use hash of cache value as the JAR name for processed Minecraft JARs

In basic testing, this cuts down the number of JARs to just one
provided the same AWs are used on all subprojects

* Fix checkstyle

* Remove redundant code

* Fix mod javadoc caching, and fixup tests.

* Hopefully fix ModJavadocTest on windows.

---------

Co-authored-by: modmuss <modmuss50@gmail.com>
2023-09-25 22:44:31 +01:00
shedaniel
f9f275d377 Fix compilation errors 2023-09-23 16:38:09 +08:00
shedaniel
649bbcaf55 Merge remote-tracking branch 'upstream/exp/1.4' into exp/1.4
# Conflicts:
#	.gitignore
#	build.gradle
#	settings.gradle
#	src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java
#	src/main/java/net/fabricmc/loom/configuration/LoomConfigurations.java
#	src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
#	src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
#	src/main/java/net/fabricmc/loom/task/service/JarManifestService.java
#	src/main/java/net/fabricmc/loom/task/service/TinyRemapperService.java
#	src/main/java/net/fabricmc/loom/util/Constants.java
2023-09-23 16:11:29 +08:00
shedaniel
54f252f6b5 Remove beta warning 2023-09-23 15:59:30 +08:00
shedaniel
ec6b2b0392 Merge remote-tracking branch 'origin/dev/1.2' into dev/1.3 2023-09-23 15:53:45 +08:00
modmuss
bd09af1783 Downloader: Protect against partially downloaded files. (#954)
* Downloader: Protect against partially downloaded files.

* Cleanup

* Add 1 minute timeout.

* Checkstyle
2023-09-22 18:55:44 +01:00
modmuss50
0b36121357 Add Fabric-Jar-Type to jar manifest.
Either 'classes' or 'sources', the idea is mod distribution platforms can check that sources jars are not uploaded accidentally.

Closes #939
2023-09-11 11:47:19 +01:00
modmuss
1a4f76584f Fix reproducable zips across timezones. (#952)
* Create test for zip timezones

* Fix :)

* Update ReproducibleBuildTest

* Update windows hashes
2023-09-11 11:31:10 +01:00
modmuss
71b7bea854 Support the Vineflower decompiler (#951) 2023-09-11 11:29:01 +01:00
modmuss
0a3779f41d Fix and test FabricApiExtension not supporting deprecated modules. (#950) 2023-09-09 22:37:02 +01:00
modmuss
e924faf44e Support reading "development" dependencies from the installer json. (#949)
* Support reading "development" dependencies from the installer json.

* Fix checkstyle and comment.
2023-09-09 22:36:51 +01:00
modmuss50
4caf4f831e Sort client only entries, fixes #940 2023-09-09 17:31:43 +01:00
modmuss
ae159dd126 Support Zip.getEntryCompression() setting (#936)
* Support Zip.getEntryCompression() setting

* Checkstyle

* Set for both the entry and ZOS
2023-09-09 13:21:43 +01: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
shedaniel
fce31a4f1d Delete forge mods' jarjar metadata (#159)
* Delete forge mods' jarjar metadata

* Update ZipUtils.java

* Update src/main/java/net/fabricmc/loom/util/ZipUtils.java

Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>

---------

Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>
2023-09-05 03:30:13 +08:00
SettingDust
2b64c2f803 fix: missing a patch for #153 that c29090037f change the method name (#156) 2023-08-27 14:26:06 +03:00
modmuss
3a090917ff Update to Gradle 8.3, and update all other deps. (#946)
* Update to Gradle 8.3, and update all other deps.

* Fix tests

* Lazily download decompilers, generate version constants to ensure they are synced between the build and Gradle.

Each decompiler has a configuration, this allows the version to be changed at a later date if needed.

* Fix typo :)

* Oh so many versions
2023-08-24 10:18:25 +01:00