iquercorb / OpenModMan

Open Mod Manager - Open source and generic Mod ("Modifications") manager.
GNU General Public License v3.0
95 stars 5 forks source link

[QoL Feature Suggestion] Option for mod dependencies to ignore version number, set at package creation #128

Closed PraetorAugustus closed 1 week ago

PraetorAugustus commented 2 weeks ago

Here's my use case:

Mod A is the main mod. Mods B, C, and D all require Mod A, so they have dependencies.

With the current logic, Mods B-D are dependent on an exact file match, Mod_A_v1.0.ozp.

When the mod creator updates Mod A to v1.1, I remake the package—Mod_A_v1.1.ozp—but none of the dependent mods know about the new filename. So I also have to remake Mods B-D to link to v1.1.

Expected new logic:

For the Mod-Package Editor UI, add: Dependencies: [dropdown] Exact | Latest

You can probably repurpose the Upgrade_Needed logic to check which mod is the latest, but I think you also need a function to List files in the repository (to scan for the newest). That should be a standard fileUI call and then you can parse the list for matching Mod_A_vX.X.ozp files.

Hope that makes sense.

iquercorb commented 1 week ago

I implemented dependency resolving mechanism that allow wildcard in version number. It is now possible to declare dependency in the form : "Mod_name_v" or "Mod_name_v1." to allow any version of the Mod to be selected as compatible dependency. If multiples versions of the same mod are available, the one with the greater version is selected.

Beware, the mechanism only work for version numbers, this mean that if you declare something like "Modname" (without the "v"), the parser will simply ignore the "" and consider you declared the dependency for a Mod named "Modname*" (which is not a valid file name).