* Add `fabric.mod.json` path property.
* Add path provider integration tests.
* Separate fabric.mod.json reading methods and move selection to the helper method.
* Separate FMJ getter methods and add configuration to datagen and testmod settings.
* Remove the `fabricModJsonPath` property from Fabric API source sets
* Address review requests by fixing formatting and removing redundant changes
* Fix build
* Move tests to existing file, and remove var usage.
* Fix build :)
---------
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* Don't use clientOfficial and serverOfficial namespaces on versions with only one jar
Fixes#1360.
Renames an experimental API in IntermediateMappingsProvider:
getIsLegacyMinecraft -> getUseSplitOfficialNamespaces
* Add test for 0.30 with deobf mappings + no intermediate mappings
* Change split official ns check to Beta 1.0..<1.3 range check
* Fix javadoc
* Clarify comment in MinecraftVersionMeta
* 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
* Prepare for SelfResolvingDependency's removal
Update to Gradle 8.6
* Update docker images
* ProjectDependency is also a SRD
* Throw if layered mappings are created too late.
* 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>
* Create RunConfigSettings with Gradle's object factory
* Update src/main/java/net/fabricmc/loom/configuration/ide/RunConfigSettings.java
Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>
* Update FabricAPI test
* Fix version
* Actually fix test
* Just make the minimal changes for now
---------
Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.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>
* Add API for intermediate mappings. Add hacky option to run with no intermediate mappings.
* Add setter, and some getters that I need :)
* Remove unused inject.
* Don't add asm-all to the libraries.
* Fix unit tests.
* Add server only option.
* Fix crash.
* Fix unpick jar task name.
* Revert test memory change
* Dont add client only libraries.
* Fixes
* Move option to the extension
Done because the split jar changes required registering the decompiler task after evaluation.
As there may be more than one decompile task, the options are set per decompiler and not per task.
This should also make easier to add new decompilers without requiring a plugin.
This lays the ground work for split client and server mod code. With this first phase when enabled loom will generate a clientonly and common minecraft jar. Fabric loader and API will both need changes to support this before it can be used to develop mods.
Phase two of this project will handle splitting mod code into a client and common source set along with spliting any dependencies.
Mostly fixes#539 by sepreating decompile tasks
* Fix decompiler tasks getting registered in afterEvaluate
* Allow decompilers to add file collections to the forked JVM classpath.
* General code cleanup.
* Added global access widener support.
* Adapt loom to changed API of latest AW PR.
* Fix expected access widener to fix the test. Since the access widener is now streamed directly into the writer, the expanded rules (i.e. accessible field makes the owning class also accessible) are no longer found in the remapped file.
* Add basic transitive accesswidener test
* Extracted applying transitive access wideners into their own jar processor since they also need to be applied if there is no AW in the mod itself.
* Misc assortment of fixes
* Set up the processor lazily to allow for adding the intermediary MC jar, which is needed to correctly remap intermediary AWs to named.
* Rework to setup the tiny remapper classpath with the mc jar
Add an extension prop to disable
* Add TransitiveDetectorVisitor
* Minor refactoring.
* Use release-version of access-widener.
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* use tiny-remapper 0.5.0
* add property of useLegacyMixinAp and rename mixin to mixinAp
* disable mixin ap if useLegacyMixinAp is false
* fix tests
* remove experimental for mixinAp
* enable mixin remapper
* revert changes on API
* rename MixinAp*** to Mixin***
* move useLegacyMixinAp inside MixinExtension
* cleaner code
* update test
Co-authored-by: modmuss50 <modmuss50@gmail.com>