Skin Layers 3D (Fabric/Forge)

Skin Layers 3D (Fabric/Forge)

44M Downloads

Weird dependencies on Modrinth (for Fabric flavour)

YoshiRulz opened this issue · 5 comments

commented

Recent versions include an "Unknown Project" with no icon as an anti-dep, which I assume is meant to be tlskincape. That's probably harmless.

But following on from #143, am I right in thinking you've indiscriminately added the Fabric API to all your mods? I tried overriding the dep with fabric_loader_dependencies.json, for 1.6.2-1.20.4 and 1.6.3-1.20.5, and both worked correctly without it.

commented

Not sure what your question or issue is. You want to run fabric mods without fabric api? Why? But yes, all mods have the fabric api as dependency.

commented

Just a general feeling that software should declare no more or fewer dependencies than they actually use. fabric-api is weird since it's like a macro for the 30-odd APIs which comprise it.
A quick search only brings up one net.fabricmc.* import in this project—ClientModInitializer from fabricloader—but if I'm wrong, I request that you use the granular API(s) in your fabric.mod.json.

commented

But why? I did that before and people complained "you need to define the fabric API, I didn't know it is needed" when I reasoned that no one runs fabric without the API, and launchers like CF Launcher install the API automatically anyway. So I now added fabric API to the template, so all my mods get that dependency slapped on. I don't want to have to keep re-evaluating all my mods on if they need it or not(EntityCulling, Not Enough Animations, Firstperson Mod, Waveycapes all use it for instance, and this mod wouldn't compile without it, as it is referenced for example here https://github.com/tr7zw/ProcessedModTemplate/blob/master/src/main/java/dev/tr7zw/util/ModLoaderUtil.java#L70 ).

fabric-api is weird since it's like a macro for the 30-odd APIs which comprise it.

You can't install "just" the fabric networking API(+Modrinth/Curseforge don't know about it, so it would show as an unknown dependency), so using anything but fabric-api makes no sense.

commented

Hey, you're the maintainer, if it's going to be too much maintenance burden then that's totally understandable.

You can't install "just" the fabric networking API(+Modrinth/Curseforge don't know about it, so it would show as an unknown dependency), so using anything but fabric-api makes no sense.

Some examples of mods which have granular dependencies in fabric.mod.json if you're interested: FastQuit, Indium, and some like Mod Menu go further and embed the parts of the Fabric API that they need.

commented

Hey, you're the maintainer, if it's going to be too much maintenance burden then that's totally understandable.

It would just serve 0 benefits to no have it there, with the chance to forget to re-add it later and then just getting complaints again from people hand-installing mods and forgetting the fabricapi. So don't think it is worth it.

Some examples of mods which have granular dependencies in fabric.mod.json

I mean, yea you can do that there, but IMO that's kind a waste of time to do? You still need the fabric API, the modrinth/curseforge page still need to have the fabric API as dependency, and if its missing the error message by the fabric loader is misleading that you need to install "fabric-resource-loader-v0" and not the "fabric-api".

some like Mod Menu go further and embed the parts of the Fabric API that they need.

Again, lots of stuff to maintain over time and versions(remember, I have 5+ mods over ~10+ mc versions), just so a probably outdated part of the fabric API with a few hundred kb is included. I just don't see this being useful for anyone. And after each bigger change remember to re-test all 10 mc versions that you didn't forget to include some important parts.

Imo the fabric API should be treated like Forge/NeoForge. You need it, you should probably keep it updated and there is no point in overcomplicating that. KISS principle and all.