[1.1.76] Mod dependency's requirements aren't checked on update

This subforum contains all the issues which we already resolved.
Post Reply
lyvgbfh
Fast Inserter
Fast Inserter
Posts: 165
Joined: Fri Jul 10, 2020 6:48 pm
Contact:

[1.1.76] Mod dependency's requirements aren't checked on update

Post by lyvgbfh »

I'm filing this as a bug because it's a bit of an unintended corner case, and it's clearer to do this kind of report as a bug format than as a suggestion format.
Issue
When updating mods via the portal, version requirements aren't checked for sub-dependencies and beyond.
Situation
PyMods switched one mod in the dependency tree (Coal Processing) to require base 1.1.78. Users who updated today and weren't on 1.1.78 had their mods updated anyway, and were left in a situation where the mods would not load but it wasn't clear why. I initially wrote this off as a reading comprehension issue, but it's been reported upwards of ten times over the last 24 hours since the update. The issue has even appeared on the forums, here.
Reproduction
  1. Install set of mods (hereinafter "parent" and "child") where the parent depends on the child, and the child requires a specific game version <= the one you're testing on (attached as parent-1.0.0, child-1.0.0)
  2. Update child to require a newer-than-installed game version (attached as child-2.0.0) upload this update to the mod portal, do not install it to your game manually
  3. Update parent to require the new child version (attached as parent-2.0.0) upload this update to the mod portal, do not install it to your game manually
  4. Launch the game and update your mods via the portal
  5. Accept the prompt to reload the game after the update, and check your active mod list.
Images
Result
Parent is updated to 2.0.0, which requires Child 2.0.0 (which was not installed, as it requires a newer Base than we have)

Now, with only two mods in the set this is fairly clear. With a complex dependency tree however, this quickly becomes very confusing to the user why their mods don't load after a portal update.

Personally I think the issue is two-fold:
1. The mod update process doesn't appear to check requirement changes beyond the mod itself (e.g. if the updated parent required a different game version, this case would be handled fine as the game wouldn't install said update)
2. When conflicts are encountered, the source of the conflict isn't clear until you've clicked through the mod list to find which of a set of dependencies is creating the issue

The report here primarily concerns itself with (1), as this was the source of the situation many users found themselves in. I argue this doesn't fit in [Not a Bug] (i.e. the author should have just set a matching base version requirement on the parent mod) as it's unnecessary to require a mod author to check every dependency, dependency's dependency, etc to decide on the minimum game version they require for their mod.

Thanks for reading through the wall of text to get here. Let me know if there's any further questions :)
Attachments
dep-bugreport-parent_1.0.0.zip
parent mod, 1.0.0
(346 Bytes) Downloaded 84 times
dep-bugreport-child_1.0.0.zip
child mod, 1.0.0
(341 Bytes) Downloaded 80 times

curiosity
Filter Inserter
Filter Inserter
Posts: 326
Joined: Wed Sep 11, 2019 4:13 pm
Contact:

Re: [1.1.76] Mod dependency's requirements aren't checked on update

Post by curiosity »

Related: viewtopic.php?f=48&t=88338
Mod dependency resolution is pretty bad.

Rseding91
Factorio Staff
Factorio Staff
Posts: 13210
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [1.1.76] Mod dependency's requirements aren't checked on update

Post by Rseding91 »

This is fixed as a result of fixing this: 107673
If you want to get ahold of me I'm almost always on Discord.

Post Reply

Return to “Resolved Problems and Bugs”