Page 1 of 1

Mods in Mod Releases should use unique directory name

PostPosted: Thu Jun 30, 2016 15:56
by Wuzzy
There was recently a mod with directory name “boats” added to Mod Releases, this has a naming collision with the mod “boats” of Minetest Game, meaning using this mod together with Minetest Game will cause very ugly things!
I am sick of being unable to install two mods along each other just because they happen to use the same directory name. :-(

For instance, we have countless mob API mods, many use the directory name “mobs” which makes them a pain in the ass to maintain simutanously.

So can we please add a requirement for adding mods into the Mod Releases forum that those must must have an unique “technical” name (=directory name)?
IMO it can be checked easily by just searching through titles in the Mod Releases forum. Given that all thread titles must follow a strict syntax, it could even be checked by a script automatically. :-)
Checking against names of other mods might be a bit more difficult, however. :-(

So the minimum requirement could be that all mods in Mod Releases have an unique names within Mod Releases at least, but preferably they are globally unique.

I think all mods should have unique folder names because:
  • You should be at least be able to install all mods without problems (enabling them is another question)—this is a core feature of the modding system IMO, we should not ignore it
  • Helps with searching mods
  • Helps with keeping dependencies clean
  • Helps users by uniqely identifying a mod in conversations

If we allow for mods with equal names like we do now, we are just asking for trouble: Mods with equal names can't be installed at the same time. If you still want to use those two mods along each other, you have to manually rename them. This is sometimes not trivial as this may break other mods which often depend on the exact mod directory name (in depends.txt and the Lua code itself). Getting mod names and dependencies sorted out schould be the task of modders, not of users.

I know this is probably not achievable for all mods in existance because there are so many mods around. But we could try for mods in Mod Releases. The whole point of Mod Releases is to have at least some quality standard, right?
And while we're at it, the file “lua_api.txt” should also strongly suggest to make sure the mod directory name is not already used by someone else.

One question remains: What should happen to mods already in Mod Releases? Strictly speaking, they must be moved back to WIP Mods until they comply. But to be fair to the mod developers, a reasonable transition period should be given to comply. Yes, moving the mods back to WIP Mods is not nice to the modders, but it will be nice to the users and needs to be done someday to decrease the overall modding chaos just a little bit. ;-)

To address a common excuse beforehand:
No, being a “similar” or “replacement” mod is not an excuse to not care about unique names. Assume there are two similar mods with a similar but not equal functionality. Maybe those mods are incompatible. My use case for wanting both of them is experimentation. Sometimes I want to try one mod, sometimes the other one (not at the same time, mind you!). This is easier when all mods have unique folder names. With equal names I have to manually rename the mod names each time I want to switch which is not fun at all.


That having been said, I want to hear your opinion on this. If you think I'm wrong, I'm excited to hear your justification for allowing for two mods with an equal directory name.

PS: Yes, I have brought up this thing before, but that was a long time ago and the comunity has changed a bit. I also think I brought up some new arguments here.

Re: Mods in Mod Releases should use unique directory name

PostPosted: Thu Jun 30, 2016 16:35
by rubenwardy
I agree. It should also be possible to depend on a feature. For example, a mobs extension could depend on the 'mobs' feature, which could be satisfied by either mobs or mobs redo. Version support would also be nice.

Re: Mods in Mod Releases should use unique directory name

PostPosted: Thu Jun 30, 2016 17:12
by Wuzzy
Sounds like a feature request. Do you care to write an issue on GitHub for that? :-)

Anyways, my post was specifically about the Mod Releases forum, not Minetest itself.

Re: Mods in Mod Releases should use unique directory name

PostPosted: Thu Jun 30, 2016 19:22
by rubenwardy
Without the ability to depend on a feature, it would make forks impossible. Forks aren't compatible with each other anyway. My point is that without feature dependency, you need mods to have the same names to provide the same functionality

Re: Mods in Mod Releases should use unique directory name

PostPosted: Fri Jul 01, 2016 02:22
by domtron vox
I don't know how easy or desirable this is, but maybe new posts to the WIP and Release categories should require filling out a form instead of the normal post creator/editor. Then a script could be used to search for the technical name and warn that the given name is already used.

It would also help in keeping all mod posts in a regular format and make sure nothing is left out (like the license). If the form for some reason prevents the poster from doing something he could just edit the post right after submitting the form. I usually edit the post right after posting anyway because you always forget something or other. x.x

Re: Mods in Mod Releases should use unique directory name

PostPosted: Mon Jul 18, 2016 02:55
by Sokomine
It might be most helpful to point out the naming conflict to the modder who just created a mod with a naming conflict. There are so many mods out there that it's easy to get a conflict. There may still be mods which deliberately share a name with another one, but at least that's beeing discussed and adressed in the mod thread then.

Re: Mods in Mod Releases should use unique directory name

PostPosted: Mon Jul 18, 2016 07:26
by TenPlus1
I named Mobs Redo 'mobs' on purpose as it is a drop-in replacement for PilzAdam's simple mobs with backwards compatibility... Same with Farming Redo 'farming' a drop-in replacement for defauly farming which adds not only new crops but a new farming api... So sometimes it's a necessary evil.

Re: Mods in Mod Releases should use unique directory name

PostPosted: Mon Jul 18, 2016 14:57
by octacian
I think that unrelated mods should require different names, however, replacement mods should not, but should be marked as such. I am thinking about writing some type of mod package manager, and I'd even like to write new forums software that would make this whole thing easier, but that's just an idea...

Re: Mods in Mod Releases should use unique directory name

PostPosted: Mon Jul 18, 2016 20:36
by Byakuren
I think the requirement should be put in place immediately for non-replacement mods, and then put in place also for replacement mods if feature requirements are added as rubenwardy suggests.

Re: Mods in Mod Releases should use unique directory name

PostPosted: Tue Jul 19, 2016 16:53
by twoelk
I think mods need a unique identifier and I always thought this should be the mod name used in the code. If a mod should function as a replacement it should offer some sort of alias for function-redirecting.

If the naming scheme is used as TenPlus1 suggested then we have to make decisions when a name conflict occurs. So if I make some sort of automated listing I might have to code that the newest mod using that name shall be listed. For example that mobs-redo is listed while pilzadams-simple-mobs is never shown. I am not sure wether I would like such behavior.

This way you can't have both mods in your mods folder and have different worlds use different versions.

I know there are ways to achieve this but that would definitely not be newbie level

Re: Mods in Mod Releases should use unique directory name

PostPosted: Tue Jul 19, 2016 17:29
by rubenwardy
I use the mod's author's forum name and the mod's name as a unique identifier in the mod database

Re: Mods in Mod Releases should use unique directory name

PostPosted: Wed Jul 20, 2016 22:13
by Wuzzy
Okay, I can almost understand your reasoning for the exception that is “replacement mods”. However, you all failed to address my concerns regarding equal folder names (impossible to have 2 mods with same name installed at the same time, so it is very annoying to test 2 mods seperately). But yeah, if you think this is a neccessary evil and you are going to accept it, okay. Then I may have to tolerate this exception for now. Until Minetest provides some better way.
Still that's not the prettiest solution. It's a hack.
Especially “mobs” is not a pretty example. The last time I've checked I found 5 different mods which are all using the same short name “mobs”. Sorry, but this is extreme. Exceptions should not become the rule. I don't want to see a 6th mod called “mobs”. ;-)

Yes, I think rubenwardy is right that Minetest should somehow provide some mechanism for “feature dependencies”. If Minetest would have this, this would help a lot. With this feature there would be no excuse left for using the same name. Right?


To recap, can we agree on the following?:
Unique directory names will be enforced in Mod Releases. Exception: “replacement mods” (checked on a case-to-case basis). Also, this exception is something which should merely be tolerated, but it should not be encouraged. It's also only for mods which actually “replace” a specific mod by reimplementing a large chunk of that mod. Being similar alone does not make a replacement mod.
And when Minetest supports something like “abstract dependencies” or “feature dependencies”, this exception should be removed.