There is atleast one reason i know of that version info would be useful; When debugging the Lib, needing to know what version everyone else is using so authors can account for differences / changes.
I also agree with xbeeps on this one, a major version change at this point to change an irrelevant API is rude to every addon that uses LHC-3.
No... if you're debugging the library (and lets be realistic, this is a very very small number of users) you specifically know you need version information and you can easily call the function that requests it. And doing a major bump is really not a big deal because it doesn't break backwards compatibility with old comms it just requires updating the version you call.
Keep in mind I am not saying remove the version checks, I am saying make it so if you need version data you specifically have to request it instead of it always being available.
Then you can always do a major version bump if you're that worried about breaking it for old versions, or tell the limited amount of people using version data to help show out of date to update with the request.
I seriously do not understand how you can be so stubborn, it is not an opinion. Ask any sane author he will tell you exactly what I'm telling you, your version data is either flawed and requesting more data than it needs, or it's flawed and it's requesting data when it shouldn't be.
You haven't even answered the original question I've asked multiple times, what part of your design requires version information?
It doesn't matter if it disconnects people or not, it is irrelevant information. I could send out messages every 10 seconds and while it won't disconnect anyone it's a waste and bad design.
Hardly sabotaging is sabotaging. Calling it flawed without describing a flaw is just insulting, and won't gain you (or anyone) anything here. I don't care if you don't agree to the chosen design (unless you have a better way), it has a specific set of properties that it was specifically designed to have, it is not by mistake it is designed the way it is. Some of the properties are the result of compromises, and that's just the way it is. You can't please everyone, and right now you're obsessing about an extremely irellevant corner subject, not because it poses a problem, but just because the design decisions and compromises do not match what you would have done exactly. Move on to something useful, please.
I've told you repeatedly why it is flawed, I've suggested you how you can solve it and I even gave you a patch that shows how you can improve it to not send out unnecessary traffic.
From earlier posts: http://gist.github.com/165277 shows you an example of what I mean to make version data only requested when an addon specifically wants it. I've described the flaw multiple times as it using unnecessary comm data.
Version data is unnecessary for backwards compatibility because if you're breaking backwards compatibility you should be doing a major bump for a library.
Here's an example of what is happening in LibHealComm-3.0, assuming that you have r70 and r75. Keep in mind that the more versions you have the more version requests are sent.
r70 loads, tries to send a RAID and GUILD but can't because I've not loaded in yet
r75 loads, tries to send a RAID and GUILD but can't because I've not loaded in yet
PLAYER_ALIVE fires and r75 sends a version request to GUILD
PARTY_MEMBERS_CHANGED or RAID_ROSTER_UPDATE fire, r75 sends version request to RAID
That's pretty much junk data 99% of the time, but here's what happens when you factor in a UI reload:
r70 loads, sends RAID and GUILD addon message, people respond with versions
r75 loads, sends RAID and GUILd addon message, people respond with the exact same versions I just requested
Every time I reload repeats those last two requests, despite the fact that their version hasn't changed and mine hasn't either.
Something else to note, if you decide later on for some reason that you absolutely need version data nothing stops you from adding the code back in. All my diff does is change version data from something you always get, to something you get if it's wanted.
... well I was trying to be nice, but as you feel the need to be stubborn about it. It is flawed, and I am hardly sabotaging your design.
I've gone through the code a few times and I just double checked, if I missed something then prove me wrong. LibHealComm-3.0 does not need version data to function, the only time the version information is cared about is if an addon is specifically setup to check versions.
It is flat out not necessary for LibHealComm-3.0 itself to know the versions all the time, if you want people to be able to check other users versions to tell them they aren't up to date then that's fine. But it still isn't a reason for needing to know the versions all the time, nobody is seriously going to check LibHealComm-3.0 versions every time they login (and only one or two people will at that).
Git diff might complain a bit but the other ones don't seem to want to work: http://gist.github.com/165277 is all you need to do to LibHealComm-3.0 so that version checks are only used when the user requests them instead of all the time.
I don't find it useless nor irellevant, and there are many others who use this information. The use of whispers is of course to limit the number of messages to all. When someone logs on, all you will see is a request from the onlogger (containing the onlogger version), followed by your own whispered reply.
Obviously, when a new version is loaded, the client must broadcast the new version, because the previously broadcasted version is wrong. There's no way any library can tell if it is going to be upgraded.
That's your theory...
You aren't using version data in LibHealComm-3.0 so it's not relevant to the function of the actual library, the only way someone can find the information useful is if they specifically setup a mod to pull out the version data and most mods aren't doing that, it would be something specific to them wanting to see version data.
Basically, 99% of the time LHC is not going to need version data. All you have to do is add a new function that lets them request version and remove your automatic version checks.
Is there a particular reason HealComm is requesting version info when it first loads if you're in a guild and to have it all whispered to you? It's useless comm in general as you aren't even using it, but it's irrelevant information to people who I'm not grouped with.
 At that, why are you requesting comm updates each time a new version is loaded, right now if you run with a disembedded at say r70 and embedded at r75 then every time you do a UI reload it will request version data twice, once for r70 and another for r75. If you are in a raid then it requests it four times because it's going to be requesting it for GUILD/RAID/GUILD/RAID.
HealComm should not be sending any version information short of another addon specifically requesting it.
Your 3.2 changes to tooltip scanning broke the upgrade path, if a version before r57 loads then r57 or later it will give a tooltip error because the tooltip you use for scanning was already created, but it was only created with 4 lines not 5.
Need to replace your tooltip creation code with something along the lines of:
if (not lib.Tooltip) then
lib.Tooltip = CreateFrame("GameTooltip");
for i = 1, 5 do
lib["TooltipTextLeft" .. i] = lib.Tooltip:CreateFontString();
lib["TooltipTextRight" .. i] = lib.Tooltip:CreateFontString();
lib.Tooltip:AddFontStrings(lib["TooltipTextLeft" .. i], lib["TooltipTextRight" .. i]);
elseif( not lib.TooltipTextLeft5 ) then
lib.TooltipTextLeft5 = lib.Tooltip:CreateFontString();
lib.TooltipTextRight5 = lib.Tooltip:CreateFontString();