From 04995cbcf9fb5e55ef928390ede176b2115d2f2c Mon Sep 17 00:00:00 2001 From: feenko Date: Thu, 30 Oct 2025 15:54:17 +0000 Subject: [PATCH 1/2] Fix FMJ generator not resolving dependencies correctly with exactly one version range (#1408) --- .../loom/util/fmj/gen/FabricModJsonV1Generator.java | 2 +- .../unit/fmj/FabricModJsonV1GeneratorTest.groovy | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/util/fmj/gen/FabricModJsonV1Generator.java b/src/main/java/net/fabricmc/loom/util/fmj/gen/FabricModJsonV1Generator.java index 848b197d..8b3662bd 100644 --- a/src/main/java/net/fabricmc/loom/util/fmj/gen/FabricModJsonV1Generator.java +++ b/src/main/java/net/fabricmc/loom/util/fmj/gen/FabricModJsonV1Generator.java @@ -165,7 +165,7 @@ public final class FabricModJsonV1Generator implements FabricModJsonGenerator Date: Fri, 31 Oct 2025 13:52:23 +0200 Subject: [PATCH 2/2] Fix using Enigma mappings with mod-provided javadoc (#1411) - Fixes using formats with inherently multiple namespaces by actually only checking for the presence of dst names instead of dst namespaces. - Fixes using formats without namespace ids by replacing the fallback namespaces with intermediary and named. --- .../processors/ModJavadocProcessor.java | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/ModJavadocProcessor.java b/src/main/java/net/fabricmc/loom/configuration/processors/ModJavadocProcessor.java index 2b74dfb2..2e9abbc3 100644 --- a/src/main/java/net/fabricmc/loom/configuration/processors/ModJavadocProcessor.java +++ b/src/main/java/net/fabricmc/loom/configuration/processors/ModJavadocProcessor.java @@ -1,7 +1,7 @@ /* * This file is part of fabric-loom, licensed under the MIT License (MIT). * - * Copyright (c) 2022 FabricMC + * Copyright (c) 2022-2025 FabricMC * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,6 +34,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.Map; import java.util.Objects; import javax.inject.Inject; @@ -50,7 +51,12 @@ import net.fabricmc.loom.api.processor.SpecContext; import net.fabricmc.loom.util.Checksum; import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.fmj.FabricModJson; +import net.fabricmc.mappingio.MappedElementKind; import net.fabricmc.mappingio.MappingReader; +import net.fabricmc.mappingio.MappingUtil; +import net.fabricmc.mappingio.MappingVisitor; +import net.fabricmc.mappingio.adapter.ForwardingMappingVisitor; +import net.fabricmc.mappingio.adapter.MappingNsRenamer; import net.fabricmc.mappingio.tree.MappingTree; import net.fabricmc.mappingio.tree.MemoryMappingTree; @@ -127,7 +133,16 @@ public abstract class ModJavadocProcessor implements MinecraftJarProcessor fallbackNamespaceReplacements = Map.of( + MappingUtil.NS_SOURCE_FALLBACK, MappingsNamespace.INTERMEDIARY.toString(), + MappingUtil.NS_TARGET_FALLBACK, MappingsNamespace.NAMED.toString() + ); + final MappingNsRenamer renamer = new MappingNsRenamer(mappings, fallbackNamespaceReplacements); + final DstNameCheckingVisitor checker = new DstNameCheckingVisitor(modId, renamer); + MappingReader.read(reader, checker); } } catch (IOException e) { throw new UncheckedIOException("Failed to read javadoc from mod: " + modId, e); @@ -137,10 +152,6 @@ public abstract class ModJavadocProcessor implements MinecraftJarProcessor