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
- 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)
- 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
- 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
- Launch the game and update your mods via the portal
- 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