Simple Machines Community Forum

SMF Development => Feature Requests => Next SMF Discussion => Topic started by: Illori on November 02, 2011, 12:30:08 PM

Title: [3.0] Depending on another customization/modification
Post by: Illori on November 02, 2011, 12:30:08 PM
The customization guidelines state the following

=== Installation / Uninstallation===
Your customization should install without any errors on an unmodified copy of SMF, except if it depends explicitly on another customization. In that case, the readme file should state clearly that it depends on, or extends another customization.

We currently do not support a method in the package manager to verify that the additional modification is already installed, this is something that would be useful to have in the future. What ways would you see useful to have this added?

One possible way is to verify that the mods package id and installed status is set correctly in the database.
Title: Re: Depends on another customization/modification
Post by: Matthew K. on November 02, 2011, 12:40:02 PM
I don't think it'd be that complicated to add a <required-mod>ModAuthor:ModName</required-mod> tag to the Package Manager, or something similar.
Title: Re: Depends on another customization/modification
Post by: Illori on November 02, 2011, 12:55:30 PM
in the same respect i guess we could have if <mod> is installed another mod will not install. for example with the 2 versions of aeva if one is installed the other would error out before you get a chance to attempt the install [some how people have had issues with this].
Title: Re: Depends on another customization/modification
Post by: Matthew K. on November 02, 2011, 01:04:17 PM
Yeah, there are multiple ways I'm sure that this could be handled. Although unfortunately this would require a core change.
Title: Re: Depends on another customization/modification
Post by: Illori on November 02, 2011, 01:08:25 PM
yes which is why it is in the board for features for the next version.
Title: Re: Depends on another customization/modification
Post by: Kindred on November 02, 2011, 03:17:58 PM
seriously?   I understand the required pre-load one... That's actually a good idea.
but checking for different versions?   Are we going to come and wipe their noses when they sneeze too?   
Title: Re: Depends on another customization/modification
Post by: Illori on November 02, 2011, 03:20:09 PM
it is an option, the issue comes up sometimes but given that, that specific mod author is no longer updating the mod it would not help that issue and i have not seen it anywhere else.
Title: Re: Depends on another customization/modification
Post by: Ricky. on November 02, 2011, 03:41:09 PM
Both the ideas are good and much appreciated.
However, where in first one you can only check through MOD id, in second one it will require little more effort but would be worthy as it will save lots of time of user as well as supporter where unexpected situations arises just because a user has installed one version over another, creating great conflicts . You know.. people tends to ignore warning where a new version of MOD says.. please uninstall previous version if any.

+1 from my side.
Title: Re: Depends on another customization/modification
Post by: Fustrate on November 02, 2011, 06:19:15 PM
I'll go out on a limb (and get slapped by Norv in the process) and say that this is guaranteed for the next major version. Also, clashes, so that you can mark when you know your mod/plugin/etc. won't work with something else (i.e. Super YouTube Embedder 1.1 clashes with versions of Aeva less than 2.2.2). It's complicated in words, but simple enough in code.
Title: Re: Depends on another customization/modification
Post by: Norv on November 02, 2011, 08:25:37 PM
:D

Yes, dependencies are necessary IMO. There are many reasons to support packages depending on or extending other packages, just think at portal mods or other big mods (or library-type mods) which may already have their own extensions but currently are mostly handling them occasionally on their sites. A tag <depends> on package manager will make sure they're supported properly in core SMF. Without issues for users who may want to install a package that depends on another one. (and their forum may not have the dependency installed etc).
The same goes (but I don't know if for 2.1) for clashes. (specify when a package conflicts with another).

As for previous versions of a package... Well. Package manager has the upgrade tag, to be used by modders when they create an updated package. It allows to not require the user all the time to uninstall the previous version of the mod. Instead users can install the update and be done... I'm not sure why this feature isn't more used... To my knowledge it is very (very!) rarely used. Maybe it's because it implies additional work for modders, but I wonder if there is something else, in the design of the tag maybe, or documentation on it, that is missing. Or whatever else could SMF do, to ease the process.
Title: Re: Depends on another customization/modification
Post by: KensonPlays on November 03, 2011, 02:22:05 PM
I agree with u Illori