How to deprecate one mod and redirect to another?

Place to get help with not working mods / modding interface.
Pi-C
Smart Inserter
Smart Inserter
Posts: 1088
Joined: Sun Oct 14, 2018 8:13 am
Contact:

How to deprecate one mod and redirect to another?

Post by Pi-C »

There was that one mod that stopped working about two months ago, with the author going MIA. Yesterday I released another mod that fixed it (actually, my mod was a direct copy of the complete original content and some code changes/added graphics), with a disclaimer right in the description that I would deprecate it when the original mod gets updated. The original mod has been updated about an hour ago. Now I want to deprecate mine. How do I do that correctly?

I'm afraid that just marking the mod as deprecated won't be enough: "Marking a mod as deprecated will remove it from public listings" -- that's good, I guess, because people who haven't installed my mod won't see it (unless they search for the correct mod name). But what about those who did install it? Will they get notified that my mod is deprecated? Should I release another version with a dependency on the other mod and ask the original author to add a conflict against mine?

Strange things happen if both mods are installed. Look at these pictures:
Both mods installed: Original mod (5.17.3) has wrong name and description (left of thumbnail); version, author and mod portal link are correct.
Both mods installed: Original mod (5.17.3) has wrong name and description (left of thumbnail); version, author and mod portal link are correct.
realistic_ores.png (123.85 KiB) Viewed 1226 times
Both mods installed: For my mod (5.17.4), version, author, and mod portal differ from original mod, which is correct.
Both mods installed: For my mod (5.17.4), version, author, and mod portal differ from original mod, which is correct.
realistic_ores_fix.png (133.61 KiB) Viewed 1226 times
Just the original mod: Without my mod present, the correct name of the original mod is shown. Note that the description (left of thumbnail) is shorter now.
Just the original mod: Without my mod present, the correct name of the original mod is shown. Note that the description (left of thumbnail) is shorter now.
just_realistic_ores.png (122.66 KiB) Viewed 1226 times
My mod apparently overwrites the original's name if both mods are installed. Therefore I guess I should not only deprecate it, but have users remove it. Is there any recommended procedure to do that?
A good mod deserves a good changelog. Here's a tutorial (WIP) about Factorio's way too strict changelog syntax!

FuryoftheStars
Filter Inserter
Filter Inserter
Posts: 389
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: How to deprecate one mod and redirect to another?

Post by FuryoftheStars »

I would say in addition to the thoughts you already had with the dependency and conflicts, also change the description on you mod to say it’s depreciated, change the mod name (not file name) so it’s not the same as the other mod (maybe add DEPRECIATED to it), and maybe even empty out/delete all of the files within yours so they do nothing.

That’s probably what I would do, anyway.

Pi-C
Smart Inserter
Smart Inserter
Posts: 1088
Joined: Sun Oct 14, 2018 8:13 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Pi-C »

FuryoftheStars wrote:
Sun Aug 11, 2019 7:21 pm
I would say in addition to the thoughts you already had with the dependency and conflicts, also change the description on you mod to say it’s depreciated, change the mod name (not file name) so it’s not the same as the other mod (maybe add DEPRECIATED to it), and maybe even empty out/delete all of the files within yours so they do nothing.
If I deprecate a mod, it won't be publicly listed any longer. But if I update my mod (with all files but info.json removed) and immediately deprecate it, will those people who have the old version installed even see the deprecated version? That's what bothers me -- kind of a hen-egg-problem. :-)
A good mod deserves a good changelog. Here's a tutorial (WIP) about Factorio's way too strict changelog syntax!

FuryoftheStars
Filter Inserter
Filter Inserter
Posts: 389
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: How to deprecate one mod and redirect to another?

Post by FuryoftheStars »

I could be wrong, but I beleive depreciating just hides the listing in the in game mod manager for new downloads, but doesn’t prevent it from noticing an update for it.

But what you could do if in doubt is put the DEPRECIATED part into the mod name, but don’t actually check the depreciated option on the mod portal.

Edit: You could even go so far as to put “Realistic Ores Fix - DEPRECIATED (original updated)”

Pi-C
Smart Inserter
Smart Inserter
Posts: 1088
Joined: Sun Oct 14, 2018 8:13 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Pi-C »

FuryoftheStars wrote:
Sun Aug 11, 2019 8:06 pm
I could be wrong, but I beleive depreciating just hides the listing in the in game mod manager for new downloads, but doesn’t prevent it from noticing an update for it.
OK, I'll try that …
But what you could do if in doubt is put the DEPRECIATED part into the mod name, but don’t actually check the depreciated option on the mod portal.

Edit: You could even go so far as to put “Realistic Ores Fix - DEPRECIATED (original updated)”
Yes, that seems to be a good compromise: Make it obvious that my mod is not needed any more and hit the "Deprecated" button a week later so people have a chance to see that they should switch back to the original.

Now there's only one thing I want to know: it's about the word in capitals. :-)

"DEPRECIATED" or "DEPRECATED"? My dictionary lists both words. "Depreciated" seems to mean something has "lost value" or has been "devaluated", and it seems to me this would be used mostly in economics/finances. "Deprecated" I would interpret as "made obsolete" or "outdated", which seems more appropriate in an IT context. Any opinion on that by a native speaker? (I don't know whether English is your first language, Fury, so please excuse me if you really are a native speaker yourself!)
A good mod deserves a good changelog. Here's a tutorial (WIP) about Factorio's way too strict changelog syntax!

FuryoftheStars
Filter Inserter
Filter Inserter
Posts: 389
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: How to deprecate one mod and redirect to another?

Post by FuryoftheStars »

Haha, I am a native speaker, but I’m typing on a phone and my fingers are a little big for the keys, so.... :P

I would think the one with an “i” in it, but check see which form the mod portal uses.

Pi-C
Smart Inserter
Smart Inserter
Posts: 1088
Joined: Sun Oct 14, 2018 8:13 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Pi-C »

Well, you can never be sure on the forum where people come from, and then there are also native speakers of US, British, Australian … English, which complicates things even more.

Anyway, it really says "Deprecated" on the mod portal. But has that been put up by a native speaker of English (there's at least one on the team now)? :-D

Oh, and thanks for your help! It was much appreciated.
A good mod deserves a good changelog. Here's a tutorial (WIP) about Factorio's way too strict changelog syntax!

User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 875
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Oktokolo »

"deprecated" is the correct word.
"depreciated" means something slightly different.

Pi-C
Smart Inserter
Smart Inserter
Posts: 1088
Joined: Sun Oct 14, 2018 8:13 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Pi-C »

Oktokolo wrote:
Sun Aug 11, 2019 11:22 pm
"depreciated" means something slightly different.
Found this following the link:
Usage notes
This verb form is often used mistakenly for deprecated.
So the text on the mod portal is correct. Thanks for clearing that up! :-)
A good mod deserves a good changelog. Here's a tutorial (WIP) about Factorio's way too strict changelog syntax!

Pi-C
Smart Inserter
Smart Inserter
Posts: 1088
Joined: Sun Oct 14, 2018 8:13 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Pi-C »

Pi-C wrote:
Sun Aug 11, 2019 6:58 pm
Should I release another version with a dependency on the other mod and ask the original author to add a conflict against mine?
Seems like this would work in info.json:

Code: Select all

{
    "name": "RealisticOresFix",
	[...]
    "dependencies": ["RealisticOres", "! RealisticOresFix"],
	[...]
}


So I can directly depend on the other mod and add a conflict against my own. This way, the other mod wouldn't need to add a conflict, and if people see that my mod is highlighted in red they will notice that my mod should be removed:
Depend on original mod, conflict with itself.
Depend on original mod, conflict with itself.
conflict-with-itself.png (128.61 KiB) Viewed 1166 times

This seems to be necessary as the last version (with "DEPRECATED" in the mod name, with an appeal to remove my mod and reinstall the original in the description, and with all content removed) has been downloaded six times already:
Even an empty, deprecated mod will be downloaded. :-)
Even an empty, deprecated mod will be downloaded. :-)
downloads.png (61.38 KiB) Viewed 1166 times
A good mod deserves a good changelog. Here's a tutorial (WIP) about Factorio's way too strict changelog syntax!

User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 875
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Oktokolo »

Pi-C wrote:
Mon Aug 12, 2019 7:13 am
This seems to be necessary as the last version (with "DEPRECATED" in the mod name, with an appeal to remove my mod and reinstall the original in the description, and with all content removed) has been downloaded six times already:
If people enter the ingame mod update tab and just click on "update selected", that leads to downloading available updates for all installed mods. In general, players do not review the preselected mods before updating as updating 'em all is exactly what they want most of the time.

The self-incompatibility in info.json looks like a really good idea. That way there is no chance the mod gets used after the update and it should lead players to look at its description.

Pi-C
Smart Inserter
Smart Inserter
Posts: 1088
Joined: Sun Oct 14, 2018 8:13 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Pi-C »

Oktokolo wrote:
Mon Aug 12, 2019 3:27 pm
If people enter the ingame mod update tab and just click on "update selected", that leads to downloading available updates for all installed mods. In general, players do not review the preselected mods before updating as updating 'em all is exactly what they want most of the time.
Makes sense, I didn't think of that because I've made it a habit to look at what will change ever since an update to one mod broke my game. Also, the list of mods I have to update at the same time usually isn't too long, so I can handle it.
The self-incompatibility in info.json looks like a really good idea.
Yes, and it is so obvious! I wonder why I didn't think of this solution right from the start … :-)
A good mod deserves a good changelog. Here's a tutorial (WIP) about Factorio's way too strict changelog syntax!

User avatar
Optera
Smart Inserter
Smart Inserter
Posts: 2809
Joined: Sat Jun 11, 2016 6:41 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Optera »

Updating deprecated mods to be incompatible with the successor seems like the least terrible option we currently have.
Ideally we should be able to link deprecated mods to alternative new ones with the game asking the player if they want to continue using the deprecated version or switch to the new one.

Another thing we can already do is make deprecated mods print a warning about being deprecated in on_configuration_changed.

Pi-C
Smart Inserter
Smart Inserter
Posts: 1088
Joined: Sun Oct 14, 2018 8:13 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Pi-C »

Optera wrote:
Mon Aug 12, 2019 5:24 pm
Updating deprecated mods to be incompatible with the successor seems like the least terrible option we currently have.
Does that mean, mod X should have "dependencies": ["Y", "! Y"]? It does work, but it seems a bit confusing, could be unclear what mod is to be deprecated. Perhaps that's just my personal opinion because I'm still so enthusiastic about the self-conflict, though. :-D
Ideally we should be able to link deprecated mods to alternative new ones with the game asking the player if they want to continue using the deprecated version or switch to the new one.
Generally speaking, yes. It's not really useful if both mods are almost duplicates and the one is only a one-time patch for a specific version of the other mod.
Another thing we can already do is make deprecated mods print a warning about being deprecated in on_configuration_changed.
How could I've forgotten that! I've used every means I could think of (mod title, mod description, dependencies, changelog) to make it clear that my mod should be replaced -- and there I could just have kindly reminded the users with a message on each tick! :-D
A good mod deserves a good changelog. Here's a tutorial (WIP) about Factorio's way too strict changelog syntax!

User avatar
Optera
Smart Inserter
Smart Inserter
Posts: 2809
Joined: Sat Jun 11, 2016 6:41 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Optera »

Pi-C wrote:
Mon Aug 12, 2019 7:53 pm
Does that mean, mod X should have "dependencies": ["Y", "! Y"]? It does work, but it seems a bit confusing, could be unclear what mod is to be deprecated. Perhaps that's just my personal opinion because I'm still so enthusiastic about the self-conflict, though. :-D
I Was talking about your way of flagging the deprecated mod incompatible with the updated mod.
Pi-C wrote:
Mon Aug 12, 2019 7:53 pm
How could I've forgotten that! I've used every means I could think of (mod title, mod description, dependencies, changelog) to make it clear that my mod should be replaced -- and there I could just have kindly reminded the users with a message on each tick! :-D
Sounds like a good way to get rid of your userbase. :lol:

User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 875
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Oktokolo »

Pi-C wrote:
Mon Aug 12, 2019 7:53 pm
Does that mean, mod X should have "dependencies": ["Y", "! Y"]?
Mod X should have "dependencies": ["Y", "! X"] making it incompatible with itself.

User avatar
5thHorseman
Smart Inserter
Smart Inserter
Posts: 1191
Joined: Fri Jun 10, 2016 11:21 pm
Contact:

Re: How to deprecate one mod and redirect to another?

Post by 5thHorseman »

Optera wrote:
Mon Aug 12, 2019 8:00 pm
Pi-C wrote:
Mon Aug 12, 2019 7:53 pm
I could just have kindly reminded the users with a message on each tick! :-D
Sounds like a good way to get rid of your userbase. :lol:
Goal achieved!
Image Image

Pi-C
Smart Inserter
Smart Inserter
Posts: 1088
Joined: Sun Oct 14, 2018 8:13 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Pi-C »

Optera wrote:
Mon Aug 12, 2019 8:00 pm
Pi-C wrote:
Mon Aug 12, 2019 7:53 pm
Does that mean, mod X should have "dependencies": ["Y", "! Y"]? It does work, but it seems a bit confusing, could be unclear what mod is to be deprecated. Perhaps that's just my personal opinion because I'm still so enthusiastic about the self-conflict, though. :-D
I Was talking about your way of flagging the deprecated mod incompatible with the updated mod.
I still don't get it: Let's say the original mod is Y, my fix is X. X was necessary because Y was broken. Now X is obsolete because the author of the original mod returned and updated Y. So the updated Y is the successor of X, is that correct? My approach was to use these dependencies for X: ["Y", "! X"], so it is incompatible with itself, not with its successor. Incompatibility of X with the successor would be ["Y", "! Y"].

X must depend on Y, because I want to make it clear that people should return to the original mod. Technically, it really doesn't make a difference whether X conflicts with Y or with itself -- it won't be able to be loaded either way (tested that locally). However, ["Y", "! X"] seems to be more intuitive than ["Y", "! Y"] because the dependency is on the mod that should be installed and the conflict is on the mod that should be removed.
A good mod deserves a good changelog. Here's a tutorial (WIP) about Factorio's way too strict changelog syntax!

Pi-C
Smart Inserter
Smart Inserter
Posts: 1088
Joined: Sun Oct 14, 2018 8:13 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Pi-C »

5thHorseman wrote:
Tue Aug 13, 2019 2:36 am
Optera wrote:
Mon Aug 12, 2019 8:00 pm
Pi-C wrote:
Mon Aug 12, 2019 7:53 pm
I could just have kindly reminded the users with a message on each tick! :-D
Sounds like a good way to get rid of your userbase. :lol:
Goal achieved!
Next time. Perhaps. After that, I probably won't need to release mods again. Easy way to save some bandwidth …
A good mod deserves a good changelog. Here's a tutorial (WIP) about Factorio's way too strict changelog syntax!

User avatar
Optera
Smart Inserter
Smart Inserter
Posts: 2809
Joined: Sat Jun 11, 2016 6:41 am
Contact:

Re: How to deprecate one mod and redirect to another?

Post by Optera »

Pi-C wrote:
Tue Aug 13, 2019 5:49 am
Optera wrote:
Mon Aug 12, 2019 8:00 pm
Pi-C wrote:
Mon Aug 12, 2019 7:53 pm
Does that mean, mod X should have "dependencies": ["Y", "! Y"]? It does work, but it seems a bit confusing, could be unclear what mod is to be deprecated. Perhaps that's just my personal opinion because I'm still so enthusiastic about the self-conflict, though. :-D
I Was talking about your way of flagging the deprecated mod incompatible with the updated mod.
I still don't get it: Let's say the original mod is Y, my fix is X. X was necessary because Y was broken. Now X is obsolete because the author of the original mod returned and updated Y. So the updated Y is the successor of X, is that correct? My approach was to use these dependencies for X: ["Y", "! X"], so it is incompatible with itself, not with its successor. Incompatibility of X with the successor would be ["Y", "! Y"].

X must depend on Y, because I want to make it clear that people should return to the original mod. Technically, it really doesn't make a difference whether X conflicts with Y or with itself -- it won't be able to be loaded either way (tested that locally). However, ["Y", "! X"] seems to be more intuitive than ["Y", "! Y"] because the dependency is on the mod that should be installed and the conflict is on the mod that should be removed.
I may have substituted you idea with what made more sense to me.

For what you just described use dependency on a maximum version. Say original 0.1.1 made the fix obsolete then dependencies in the fix should simple be

Code: Select all

"dependencies": ["original < 0.1.1"]
This allows the fix to work fine on old versions, but will automatically disable it once original has been updated to 0.1.1.

Post Reply

Return to “Modding help”