Thread Tools Display Modes
03-11-07, 02:17 PM   #1
Mazzlefizz
A Pyroguard Emberseer
 
Mazzlefizz's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 3,521
For those of you updating your add-ons

Due to the decreased amount of time I've spent on developing, I have not released a version in quite some time. As a result, I think many people are starting to update their add-ons on their own. While completely reasonable, I think some of these weird errors people are experiencing may be due to library conflicts. So, here's a quick primer on updating libraries. There's probably a better guide somewhere, but I didn't find anything in my quick search.

Most Ace2 add-on distributions you download on your own will include embedded libraries. That means each Ace2 add-on has sub-directories, usually within a folder called "libs", that contain little "helper add-ons". Most Ace2 add-ons use the exact same helper add-ons, so there's a lot of duplication going on. That means your UI would need to load up dozens of the same exact helper add-ons for each add-ons that uses them. To avoid this, MazzleUI does not include those "helper sub-directories"; instead, it puts one copy of the stand-alone version of those libraries at the top level. This speeds loading up and decreases initial memory use. (Those duplicates will eventually be cleaned up.)

When you update those Ace2 add-ons on your own, you're probably re-adding those little helper sub-directories that were removed. While the updated library may be fine for the add-on that you included it with, it's possible that it can introduce conflicts for other add-ons that load after it. The newer version of the library may have slightly different behavior that conflicts with the expectations of the older add-ons.

So, I suggest doing one of three things:
  1. Update everything including the stand-alone libraries on the top level. Make sure to delete the embedded libraries in any Ace2 add-ons you download.
  2. Do the inverse and delete all the stand-alone libraries and update all the Ace2 add-ons to make sure they include the embedded libraries.
  3. Don't update anything and just wait for a new version of MazzleUI.

If you do the first item, check the original version of the add-on I include. I don't always delete all the libraries. I only delete the ones that are used by multiple add-ons. Another thing to note is that those add-ons don't always use a "libs" directory. Make sure to check them individually and not to a search and delete type thing.
__________________
MazzleUI Home Page: Mazzlefizz.WoWInterface.com
Info, FAQs, Forums, Download can be found at that link.
  Reply With Quote
03-11-07, 04:29 PM   #2
airdragon
A Flamescale Wyrmkin
Join Date: Apr 2005
Posts: 147
Thanks for the info Mazzle. I have one really pressing question that did not seem to get directly addressed here (or I'm blind, equal chance if not greater chance of this).

Lets say I go to all the trouble to put back the lib folders in the Ace2 addons, will they use the versions in their subfolder first? And inversely will MazzleUI choose to use the top-level versions or use the embedded smaller versions?

I guess getting to what I'm doing might help better with the question. Lets say I want to add all the libs back to all the original mod folders (including MazzleUI). Will this mean they will start to use their proper versions of the Ace2 libraries now in the specific addons subfolder? Or will they choose the higher level one to run?

Thanks!

PS THANK YOU..... I don't think you know how long I've been trying to get a UI to run like this one does. Not only have you improved my overall enjoyment of WoW, you've given life to dozens of new ideas for what to do with a UI. I can't say THANK YOU enough.
  Reply With Quote
03-11-07, 09:20 PM   #3
timmyrulz27
A Murloc Raider
Join Date: Nov 2006
Posts: 8
heres a tutorial for using the wowace updater to deal with the standalonelibs. Somebody double check this and make sure i understand the concept of the ace2 addons/libs.
  Reply With Quote
03-12-07, 01:18 AM   #4
Mazzlefizz
A Pyroguard Emberseer
 
Mazzlefizz's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 3,521
Originally Posted by airdragon
Thanks for the info Mazzle. I have one really pressing question that did not seem to get directly addressed here (or I'm blind, equal chance if not greater chance of this).

Lets say I go to all the trouble to put back the lib folders in the Ace2 addons, will they use the versions in their subfolder first? And inversely will MazzleUI choose to use the top-level versions or use the embedded smaller versions?

I guess getting to what I'm doing might help better with the question. Lets say I want to add all the libs back to all the original mod folders (including MazzleUI). Will this mean they will start to use their proper versions of the Ace2 libraries now in the specific addons subfolder? Or will they choose the higher level one to run?

Thanks!

PS THANK YOU..... I don't think you know how long I've been trying to get a UI to run like this one does. Not only have you improved my overall enjoyment of WoW, you've given life to dozens of new ideas for what to do with a UI. I can't say THANK YOU enough.
It's a good question, but I don't know the answer to it. Perhaps someone more familiar with the mechanics of ace libraries could answer that. My guess is that it would depend on the effective load order of the add-ons, but that's a pretty uninformed guess.

I did just think of one other possible concern. The MazzleUI add-ons were never set-up to use embedded libraries since there never was any need to. As a result, there are a few libraries you'll need to keep stand-alone, name Ace, BabbleLib and Banzailib.
__________________
MazzleUI Home Page: Mazzlefizz.WoWInterface.com
Info, FAQs, Forums, Download can be found at that link.
  Reply With Quote
03-12-07, 12:13 PM   #5
airdragon
A Flamescale Wyrmkin
Join Date: Apr 2005
Posts: 147
Originally Posted by timmyrulz27
heres a tutorial for using the wowace updater to deal with the standalonelibs. Somebody double check this and make sure i understand the concept of the ace2 addons/libs.
If I'm reading the wiki on WAU, version 1.7 standalone libraries version will automatically do things the way I'm talking about, hopefully avoiding library errors. I'm going to try it out and report back alter on it (stupid work getting in the way of WoW).
  Reply With Quote
03-12-07, 01:55 PM   #6
Mazzlefizz
A Pyroguard Emberseer
 
Mazzlefizz's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 3,521
I don't know what you mean by "the way you talked about". Your original question was about what would happen in the odd situation that you had both stand-alone and embedded libraries at the same time. When you only have one of the two, which is what you seem to be refferring to in your last post, what it does will be clear. It's basically what it does right now, i.e. use the stand-alone libraries.
__________________
MazzleUI Home Page: Mazzlefizz.WoWInterface.com
Info, FAQs, Forums, Download can be found at that link.
  Reply With Quote
03-12-07, 02:05 PM   #7
estarianne
A Murloc Raider
Join Date: Sep 2006
Posts: 5
It's my understanding that if you have both standalone and embedded, or multiple embedded, ace keeps the most recent version and dumps all older versions. This goes along with the assumption that library changes are always fully compatible with older add-on versions, which isn't always the case I guess.

I found that I had to update libraries to update some mods, yet I didn't delete the standalones (just kept the embedded libs). It's all working fine, I just have nasty load times due to my laziness. Hey, maybe I'll go fix that now.

edit: Don't update PT 3.0, Mazzle's autobar doesn't like the newest version. Other than that it's all good.

Last edited by estarianne : 03-12-07 at 02:38 PM.
  Reply With Quote
03-13-07, 04:19 PM   #8
SottoVoce
A Kobold Labourer
Join Date: Mar 2007
Posts: 1
Actually the WAU updates the libraries the way you configure it to.

If you tell WAU to install the !!!StandaloneLibraries it will do just that and then delete the embedded libraries from all the Ace2 Add-Ons to decrease initial memory use.
After you've done that WAU will always update the addons without externals (meaning no embedded libraries).

By the way, after going through the list of installed add ons in the WAU unselecting all Ace Add ons mentioned in the Mazzle FAQ as modified/critical-to-be-updated I thought "What the hell" and just updated ALL installed Ace Add Ons.
What do you know? It works perfectly fine, nothings broken, everythings updated.

Only error BugSack throws is something from Quixote which, I believe, isn't even originally installed with MazzleUI, I think it came along, when I installed FuQuestFu (which I really like, btw, disabled Monkey Quest after trying QuestFu for a few days).
__________________
Sotto Voce
  Reply With Quote
03-13-07, 04:47 PM   #9
airdragon
A Flamescale Wyrmkin
Join Date: Apr 2005
Posts: 147
Actually WAU does not function that way with the standalonelibraries thing. You have to make sure when you choose "install/update selected addons" that you then pick "without Externals". Also a full reinstall of all addons will cause all of the externals to be loaded in each Ace2 mod.

Anyways, sorry about the confusion in my post back there. The 'way' was actually a real life conversation that through my coffee induced state of consciousness I thought had occurred here.

I tried updating two ways, one was to have all the embedded externals and the other was to have every possible library that could be standalone be on the top level.

The embedded way is EVIL, even with 'Load on Demand'. I've never seen numbers that high on Warmup. EVER. So I nixed that.

Then I sat down and tried to figure a way to make sure I got all the libraries updated without screwing to much with MazzleUI. I came up with this.

1.) Started with a fresh addon folder.
2.) Copied the !!!StandaloneLibraries from http://files.wowace.com into addon directory
3.) Copied MazzleUI files saying No to all requests for file overwrites
4.) Downloaded WAU from http://www.wowace.com
5.) Clicked Edit > Mark Installed Addons (F4 sortcut0
6.) Clicked File > Install/Update selected addons > Without Externals
7.) Loaded game up with character already Mazzified, no errors
8.) Loaded game up on un-Mazzified character, also no loading errors
9.) Mazzified new character, also no errors. Had new Ace2 addons installed.

In addition the loading imprint on Warmup was almost reasonable (I'm an addon junkie so most people would have ran to the hills).

PS: Just discovered with this one small error, if you choose to leave the programs mentioned as critically important as is, updating with WAU will break Autobar, sRaidFrames and oRA.
  Reply With Quote
03-14-07, 05:27 AM   #10
Mechrior
A Chromatic Dragonspawn
 
Mechrior's Avatar
Join Date: Nov 2006
Posts: 155
Question Autobar Changes

could i just ask what actual changes mazzle made to autobar?
this is mainly so i can just see whats different in the mazzle version compared to the ACE version available now... as a friend updated autobar by mistake and he cant see anything different in the way it works.... apart from the fact it work s with the new version of PT.
no errors or anything.
__________________
When the light in your heart shines, The rest of the world will pale in comparison


  Reply With Quote
03-14-07, 06:15 AM   #11
Nymbia
A Fallenroot Satyr
AddOn Author - Click to view addons
Join Date: Nov 2006
Posts: 22
As far as library load order and which copy gets used..

1) Any libraries in the root folder will always load first (if they exist), due to being listed in the OptionalDependancies of addons that use them.
2) Additional copies that are embedded in addons (if they exist) will load next.
3) When a library tries to load and there's already a copy of the same library present, the newer one will be kept and the older one will get discarded (and removed from memory).

Apologies for the PT3 API change, this diff should fix things..
Code:
Index: C:/Documents and Settings/Administrator/Desktop/AutoBar2/AutoBarItemList.lua
===================================================================
--- C:/Documents and Settings/Administrator/Desktop/AutoBar2/AutoBarItemList.lua	(revision 29879)
+++ C:/Documents and Settings/Administrator/Desktop/AutoBar2/AutoBarItemList.lua	(revision 29884)
@@ -42,12 +42,29 @@
 	if (cacheSet) then
 		local sortedList = {};
 		local index = 1;
-		for itemId, value in pairs(cacheSet) do
-			if (type(value) == "boolean") then
-				value = 0;
+		if PT:IsSetMulti(set) then
+			for _, t in ipairs(cacheSet) do
+				for itemId, value in pairs(t) do
+					if itemId ~= "set" then
+						if (type(value) == "boolean") then
+							value = 0;
+						end
+						sortedList[index] = { itemId, value };
+						index = index + 1;
+					end
+				end
 			end
-			sortedList[index] = { itemId, value };
-			index = index + 1;
+		else
+			for itemId, value in pairs(cacheSet) do
+				if itemId ~= "set" then
+					if (type(value) == "boolean") then
+						value = 0;
+					end
+					sortedList[index] = { itemId, value };
+					index = index + 1;
+				end
+			end
 		end
 		table.sort(sortedList, sortList);
 		for i, j in ipairs(sortedList) do
@@ -92,13 +109,31 @@
 	local cacheSet = PT:GetSetTable(set);
 	if (cacheSet) then
 		local index = table.getn(rawList) + 1;
-		for itemId, value in pairs(cacheSet) do
-			if (not value or type(value) == "boolean") then
-				value = 0;
+		if PT:IsSetMulti(set) then
+			for _, t in ipairs(cacheSet) do
+				for itemId, value in pairs(t) do
+					if itemId ~= "set" then
+						if (not value or type(value) == "boolean") then
+							value = 0;
+						end
+						value = tonumber(value);
+						rawList[index] = {itemId, value, priority};
+						index = index + 1;
+					end
+				end
 			end
-			value = tonumber(value);
-			rawList[index] = {itemId, value, priority};
-			index = index + 1;
+		else
+			for itemId, value in pairs(cacheSet) do
+				if itemId ~= "set" then
+					if (not value or type(value) == "boolean") then
+						value = 0;
+					end
+					value = tonumber(value);
+					rawList[index] = {itemId, value, priority};
+					index = index + 1;
+				end
+			end
 		end
 	end
 	return rawList;
  Reply With Quote
03-14-07, 06:45 AM   #12
Mechrior
A Chromatic Dragonspawn
 
Mechrior's Avatar
Join Date: Nov 2006
Posts: 155
Exclamation uh huh

well i feel a little bit more stupid..... i have no idea what that actually means! lol.

i meant what were the actual changes..... different sorting..... custom listing.....

because to be honest i cant see the difference between his new updated copy of autobar and the mazzle one.
__________________
When the light in your heart shines, The rest of the world will pale in comparison


  Reply With Quote
03-14-07, 11:21 AM   #13
Mazzlefizz
A Pyroguard Emberseer
 
Mazzlefizz's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 3,521
Originally Posted by Nymbia
As far as library load order and which copy gets used..

1) Any libraries in the root folder will always load first (if they exist), due to being listed in the OptionalDependancies of addons that use them.
2) Additional copies that are embedded in addons (if they exist) will load next.
3) When a library tries to load and there's already a copy of the same library present, the newer one will be kept and the older one will get discarded (and removed from memory).
And by older one, you mean older in terms of load order, not older in terms of some sort of internal versioning scheme, right?
__________________
MazzleUI Home Page: Mazzlefizz.WoWInterface.com
Info, FAQs, Forums, Download can be found at that link.
  Reply With Quote
03-14-07, 12:25 PM   #14
Nymbia
A Fallenroot Satyr
AddOn Author - Click to view addons
Join Date: Nov 2006
Posts: 22
Originally Posted by Mechrior
well i feel a little bit more stupid..... i have no idea what that actually means! lol.

i meant what were the actual changes..... different sorting..... custom listing.....

because to be honest i cant see the difference between his new updated copy of autobar and the mazzle one.
That's the changes that need to be made for Mazzle's version of autobar to be compatible with new versions of PT3, I didn't look at if it was actually different from the version on the Ace svn or not.
Originally Posted by Mazzlefizz

And by older one, you mean older in terms of load order, not older in terms of some sort of internal versioning scheme, right?
Apologies for the lack of clarity, I was still half asleep

Libraries are versioned with 'major' and 'minor' versions.

The major version is the number in the filename -- ie AceHook-2.1. Libraries with different major versions will load alongside each other peacefully.

The minor version is a number that denotes even small changes -- in the case of.. well.. all the ace libraries, it's an SVN revision number.

By older I mean ones with a lower SVN revision number, that number is the key that determines which version of the library gets kept. No matter where it's stored be it embedded, standalone, or anything else, the library that will be in memory once all the addons are loaded will be the one with the highest revision number.

Last edited by Nymbia : 03-14-07 at 12:27 PM.
  Reply With Quote
03-14-07, 01:27 PM   #15
Mazzlefizz
A Pyroguard Emberseer
 
Mazzlefizz's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 3,521
Ah ok, so the true most up-to-date version will always be loaded. So if I understand you correctly, any library conflicts will always be because there's a change in api or the behavior of the library that's incompatible with another add-on that assumes an older version.

And for whoever was asking about Autobar, I do nothing to it except add ChatFrame7 as a potential anchor, and that's done outside of the add-on after it loads. You should be able to drop in the new one just fine. On my machine I run the latest version of everthing except TopScoreFu.
__________________
MazzleUI Home Page: Mazzlefizz.WoWInterface.com
Info, FAQs, Forums, Download can be found at that link.
  Reply With Quote
03-14-07, 02:23 PM   #16
Nymbia
A Fallenroot Satyr
AddOn Author - Click to view addons
Join Date: Nov 2006
Posts: 22
Originally Posted by Mazzlefizz
Ah ok, so the true most up-to-date version will always be loaded. So if I understand you correctly, any library conflicts will always be because there's a change in api or the behavior of the library that's incompatible with another add-on that assumes an older version.
For the most part. Sometimes there'll be a problem with upgrading that will occur, or tainting/hooking oddnesses with older versions.
  Reply With Quote
03-27-07, 10:02 PM   #17
Priti
A Murloc Raider
 
Priti's Avatar
Join Date: Jul 2006
Posts: 6
Originally Posted by airdragon

1.) Started with a fresh addon folder.
2.) Copied the !!!StandaloneLibraries from http://files.wowace.com into addon directory
3.) Copied MazzleUI files saying No to all requests for file overwrites
4.) Downloaded WAU from http://www.wowace.com
5.) Clicked Edit > Mark Installed Addons (F4 sortcut0
6.) Clicked File > Install/Update selected addons > Without Externals
7.) Loaded game up with character already Mazzified, no errors
8.) Loaded game up on un-Mazzified character, also no loading errors
9.) Mazzified new character, also no errors. Had new Ace2 addons installed.

PS: Just discovered with this one small error, if you choose to leave the programs mentioned as critically important as is, updating with WAU will break Autobar, sRaidFrames and oRA.
I wanted to bump this back up as I tried this today and MazzleUI is still working perfectly. It basically looks like as long as you are using the WAU to update addons and update WITHOUT Externals everything should be fine.

Thanks for this great post Airdragon.
And thanks for a great mod Mazzle. This one will go in the history books.
  Reply With Quote
05-22-07, 07:45 PM   #18
Dontlooknow
A Defias Bandit
Join Date: Jan 2007
Posts: 2
Originally Posted by Airdragon
1.) Started with a fresh addon folder.
2.) Copied the !!!StandaloneLibraries from http://files.wowace.com into addon directory
3.) Copied MazzleUI files saying No to all requests for file overwrites
4.) Downloaded WAU from http://www.wowace.com
5.) Clicked Edit > Mark Installed Addons (F4 sortcut0
6.) Clicked File > Install/Update selected addons > Without Externals
7.) Loaded game up with character already Mazzified, no errors
8.) Loaded game up on un-Mazzified character, also no loading errors
9.) Mazzified new character, also no errors. Had new Ace2 addons installed.
Super Quote bump for great justice this fixed all of the problems i was having with mazzle
  Reply With Quote
05-22-07, 11:18 PM   #19
Lyc
A Fallenroot Satyr
Join Date: Jan 2007
Posts: 24
[/quote]
Then I sat down and tried to figure a way to make sure I got all the libraries updated without screwing to much with MazzleUI. I came up with this.

1.) Started with a fresh addon folder.
2.) Copied the !!!StandaloneLibraries from http://files.wowace.com into addon directory
3.) Copied MazzleUI files saying No to all requests for file overwrites
4.) Downloaded WAU from http://www.wowace.com
5.) Clicked Edit > Mark Installed Addons (F4 sortcut0
6.) Clicked File > Install/Update selected addons > Without Externals
7.) Loaded game up with character already Mazzified, no errors
8.) Loaded game up on un-Mazzified character, also no loading errors
9.) Mazzified new character, also no errors. Had new Ace2 addons installed.

In addition the loading imprint on Warmup was almost reasonable (I'm an addon junkie so most people would have ran to the hills).

PS: Just discovered with this one small error, if you choose to leave the programs mentioned as critically important as is, updating with WAU will break Autobar, sRaidFrames and oRA.[/quote]



TY, this helped alot.
  Reply With Quote
05-22-07, 11:38 PM   #20
drdiesel
A Theradrim Guardian
Join Date: May 2007
Posts: 57
I tried the above instructions exactly step-by-step and I get into the game with a fairly jacked up interface. Most the artowrk for action bars are standard Blizz displays and I can't even get Mazzle to load to try to re-mazzlefile my UI.

Anyone else having these issues?
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » AddOn Help/Support » For those of you updating your add-ons


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