Thread Tools Display Modes
12-10-06, 04:07 AM   #1
Jayhawk
Premium Member
 
Jayhawk's Avatar
AddOn Author - Click to view addons
Join Date: May 2006
Posts: 105
Ace2 Dependencies?

You may have noticed I'm having some issues with this...

I've read that FuBar addons should be able to run without FuBar. I've been trying this, as to check that I've got all the required Libraries, but no dice. Worse, the add on doesn't load at all...but doesn't throw any errors either.

I tried to set the following libraries to load.
  • * AceAddon-2.0
  • * AceConsole-2.0
  • * AceDB-2.0
  • * AceEvent-2.0
  • * AceHook-2.1
  • * AceLibrary
  • AceLocale-2.2 (specifically using this in SkillsPlus)
  • * AceOO-2.0
  • Babble-Race-2.2 (specifically using this in SkillsPlus)
  • Babble-Spell-2.2 (specifically using this in SkillsPlus)
  • * Compost-2.0
  • Crayon-2.0 (specifically using this in SkillsPlus)
  • Dewdrop-2.0 (specifically using this in SkillsPlus)
  • FuBarPlugin-2.0 (specifically using this in SkillsPlus)
  • Metrognome-2.0 (specifically using this in SkillsPlus)
  • Tablet-2.0 (specifically using this in SkillsPlus)
* add on not in the current upload

The FubarPlugin-2.0 documention says it needs:
  • Ace2
  • CompostLib
  • DewdropLib
  • TabletLib

Where as the lua itself says:
  • AceLibrary
  • AceOO-2.0
  • AceEvent-2.0
  • DewdropLib
  • TableLib
As you see it doens't mention CompostLib...

Digging deeper, I see AceOO-2.0.lua is dependent on:
  • AceLibrary

Whereas AceEvent-2.0.lua is dependent on:
  • AceLibrary
  • AceOO-2.0
Neither of the API documentation pages say anything about dependencies...

I also checked with some other addons, like Nevcairiel's ItemBonusesFu, which shows up just fine, but looking at the libraries...I don't really see much difference (or at least not stuff I can see that would make a difference...)

I'm confused..should I just dump in all of the Ace2 stuff even if it isn't used directly, just to make sure there's not a single dependency missing?

Please note the current version has FuBar set as dependency. I switched did that off when I was testing the above.

Last edited by Jayhawk : 12-10-06 at 04:53 AM.
  Reply With Quote
12-10-06, 05:22 AM   #2
mizrolist
A Deviate Faerie Dragon
Join Date: Aug 2006
Posts: 14
http://www.wowace.com/forums/index.php?topic=3276.0

i don't know if it helps you, but I hope so...
  Reply With Quote
12-10-06, 06:00 AM   #3
Jayhawk
Premium Member
 
Jayhawk's Avatar
AddOn Author - Click to view addons
Join Date: May 2006
Posts: 105
Thanks.

I did since then find out a few more things...
One) If you set #LoadOnDemand to TRUE obviously the addon won't load automatically...
Dôh.

Two) If you set it to FALSE, it will load automatically and error message will pop up for missing dependencies.
Yay!

What doesn't help is that there seem to be multiple versions of the same libraries included in various add ons (nor do all FuBar plugins carry with them the complete set of libraries they need to run).

So.. I think I got everything now. Except for one thing... Is there a way to manually load an add on if #LoadOnDemand 0?
  Reply With Quote
12-10-06, 10:10 AM   #4
LaoTseu
A Cyclonian
 
LaoTseu's Avatar
AddOn Author - Click to view addons
Join Date: Aug 2006
Posts: 45
My own AllPlayed addon is a FuBar addon that can run without FuBar. I'm always testing it alone and it was a bit of a pain to get the dependencies right at the beginning. You can look at what Ace... libraries I load to give you a starting point.

One think I can tell you is that none of the Ace... libraries use Compost. In fact, Compost is no longer supposed to be necessary (LUA 5.1.1 fixed the table memory problem) and authors are removing it from their addons. That doesn't mean that an addon no longer need Compost but it does mean that none of the Ace... libraries should need it.

There are two ways that an Ace2 addon may be missing labraries. First, the author may have updated to a new version of the library (e.g. AceLocale-2.0 to AceLocale-2.2), made the change in the LUA code (local L = AceLibrary("AceLocale-2.2"):new("xxx")) but forgot to change the .TOC file and to include the new folder in the libs directory. This error happen often because if you have another Ace2 addon that load before yours or if you use the standalone version of the libraries for development, the new library is available even though you are not including it in your package. In short, the addon works OK in the author environment but may not work in yours. To fix this, you need to check the LUA code and make sure that all the proper libraries (and their dependencies) are listed in the .TOC file and that all the proper folders are present in the addon folder. You could also include that standalone Ace2 lib folders in your setup but I would not recommend that.

Second, the TOC refer to libraries that are not present. This happen because we use SVN to commit the addon code and the ZIP files are generated automatically. Authors will often just take that ZIP, rename it and upload it to the sites like WoWInterface. The issue is that the WoWAce servers have been hammered down by excessive load since the last patch so often the script that include the external libraries in the ZIP file fails. To fix this, you just have to identify the missing library directories and copy them over from another Ace2 addon that has them.

In both cases, if you load the addon by itself, you just add libraries until it load making sure that the addon .TOC points to the proper files and that the proper files are present in the addon libs directory.

Hope that helps.
  Reply With Quote
12-11-06, 12:36 AM   #5
Jayhawk
Premium Member
 
Jayhawk's Avatar
AddOn Author - Click to view addons
Join Date: May 2006
Posts: 105
Thanks!

Thanks Lao, I ended up doing exactly that after I realised the LoadOnDemand was playing tricks on me.

After a lot of fiddling, trying to find the latest libraries (or at least those that are internally compatible) I came up with the following list:
  • AceAddon-2.0
  • AceConsole-2.0
  • AceDB-2.0
  • AceEvent-2.0
  • AceHook-2.1
  • AceLibrary
  • AceLocale-2.2
  • AceOO-2.0
  • Babble-Race-2.2
  • Babble-Spell-2.2
  • Crayon-2.0
  • Dewdrop-2.0
  • FuBarPlugin-2.0
  • Metrognome-2.0
  • Tablet-2.0

The Babble libs and Metrognome are specific to SkillsPlus, but the rest seems to be what's needed to have a FuBar add on be fully stand alone.

What's clear though is that very few FuBar addons contain all their required libraries...
  Reply With Quote
12-11-06, 04:07 AM   #6
Elkano
A Flamescale Wyrmkin
 
Elkano's Avatar
AddOn Author - Click to view addons
Join Date: Oct 2005
Posts: 131
With AceEvents-2.0 you most likely won't need Metrognome if you port your code.

BTW: when are you going to upload to the SVN?
  Reply With Quote
12-11-06, 05:12 PM   #7
LaoTseu
A Cyclonian
 
LaoTseu's Avatar
AddOn Author - Click to view addons
Join Date: Aug 2006
Posts: 45
Originally Posted by Elkano
With AceEvents-2.0 you most likely won't need Metrognome if you port your code.

BTW: when are you going to upload to the SVN?
I'm an interested party here. I use Metrognome in AllPlayed because I need to update every second or every 20 seconds. When I did it, the AceEvent and Metrognome doc and forum posts were saying that Metrognome was better for those kind events. What changed in AceEvent that make this no longer true?

I'm asking here since the Ace Wiki is still not available and the libraries documentation is not available anywhere else as far as I know.

Thanks in advance.
  Reply With Quote
12-12-06, 12:18 AM   #8
Jayhawk
Premium Member
 
Jayhawk's Avatar
AddOn Author - Click to view addons
Join Date: May 2006
Posts: 105
Thanks for the comment Elkano. Any pointers on using AceEvent in stead of Metrognome? I think I saw a reference to it, but...

As for SVN. I go the account, I got the login, I'm waiting for the site to calm down, so as not to run into any Error 500 messages halfway uploading. I hope it will be done by the weekend.
  Reply With Quote
12-12-06, 01:55 AM   #9
Elkano
A Flamescale Wyrmkin
 
Elkano's Avatar
AddOn Author - Click to view addons
Join Date: Oct 2005
Posts: 131
when the wiki is online, check here: http://www.wowace.com/wiki/AceEvent-...elay.2C_....29

and wrt SVN it's working fine even if the page shows 500
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » AddOn Search/Requests » Ace2 Dependencies?

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off