On Oct 5, 2011, at 03:52:03, cstamas wrote:
> I always thought it's other way around, non-intrusive _libraries_ like Growl 
> should be backward compatible (at least with the clients in growlized apps), 
> instead of nagging all the growl supporting apps to do a release and having 
> all the growl users waiting for that to happen (and explaining they cannot 
> interfere with how the apps are built and released).

Growl is an application, not a library.

The Growl framework is a library (of a sort), and it is backward compatible 
(for now).

Moreover, Growl is compatible with any application that will talk to it; the 
problem is that applications that use old frameworks (or that use 1.2.1 or 
newer but over-conditionalize) aren't talking to Growl 1.3.

> Could somebody technical at least explain _what_ is the problem instead 
> responding with "X app needs a release, there is a beta build of it 
> already".... I don't want to use Betas because I upgraded Growl....

Growl frameworks older than 1.2.1 looked for a prefpane before trying to 
register with Growl. If there was no prefpane, they didn't register with Growl. 
If they didn't register with Growl, they didn't (and still don't) notify.

(Registration is what makes an app show up in the list. An app that doesn't 
register *cannot* notify, even if it tries. The framework registers the 
application automatically.)

1.2.1 included a fix for a problem that existed at the time, and that fix 
coincidentally fixes the current problem: Framework 1.2.1 and newer check for a 
running GrowlHelperApp (Growl's background process before 1.3), not an 
installed prefpane.

1.3 is a descendant of GrowlHelperApp with an evolution of the prefpane 
interface added in. To the frameworks, it looks just like the old GHA, and 
framework 1.2.1 and later are able to detect it, so they register and notify.

Thus, applications need to use 1.2.1 or later to be compatible with Growl 1.3 
and later.

The other issue, over-conditionalization, is that some applications do use new 
enough frameworks, but only attempt to send notifications if Growl is 
installed. That check still fails through framework 1.2.2: 1.3's changes were 
decided upon after 1.2.2 came out, so no 1.2.x framework knows to look for 
Growl installed as an application. (So the framework can see that there is a 
running GrowlHelperApp, but can't see a Growl prefpane, because there isn't 
one.)

The solution for that is for applications to not only attempt to notify if 
Growl is installed. The framework does an equivalent check for them anyway 
(either with the old check or the new 
is-it-just-running-and-we-don't-care-where-it-is check), so applications should 
simply register and notify unconditionally and let the framework sort it out.

-- 
You received this message because you are subscribed to the Google Groups 
"Growl Discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/growldiscuss?hl=en.


Reply via email to