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.
