Creating AddOn dependencies

What is a Dependent AddOn?
A dependent AddOn is one that relies on another AddOn or code library for it's full functionality. Generally, an AddOn author should take into account that the user might not have the AddOn/Library required, notify the user with a single error, and suppress all other errors that might occur.

How do I designate a Dependent AddOn?
In order for a user to know your AddOn is dependent, you must document this in the .toc file:

Example Standalone AddOn .toc file:


 * 1) Interface: 1300
 * 2) Title: myAddOn
 * 3) Description: Does stuff

Example Dependent AddOn .toc file:


 * 1) Interface: 1300
 * 2) Title: myAddOn
 * 3) Description: Does stuff
 * 4) Dependencies: ParentAddOn, OtherAddOn

What if other AddOns only improve my AddOn?
If an AddOn's code is only used to somehow improve the usability/functionality of your AddOn, but is not required for it to work, you can use the "OptionalDeps:" tag in your .toc file to have those AddOns loaded prior to your own:


 * 1) Interface: 1300
 * 2) Title: myAddOn
 * 3) Description: Does stuff
 * 4) Dependencies: ParentAddOn, OtherAddOn
 * 5) OptionalDeps: MakeMyAddOnCooler

Keep in mind that you must handle any errors that may occur if the user does not have the optionally dependent AddOn.