Snow Leopard Updates Cause Mail Plug-in Headaches

Apple released Mac OS X 10.6.1 about a week after Snow Leopard shipped, and only days after many Mail plug-in developers added support for the new operating system to their products. Thanks to a change in the way Snow Leopard's Mail application handles plug-ins, however, that minor update means developers have to update their plug-ins every time Mail gets updated, too.

The problem for developers is that Apple changed how Mail interacts with plug-ins in Snow Leopard. Since there's a chance that a plug-in could cause problems with the application, they are all disabled when Mail is updated.

"One important change in Mail 4.X (10.6) with respect to plugins is that each maintenance release of Mail will disable plugins that are not specifically compatible with the maintenance release," Mail Act-On developer Scott Morrison said on his indev blog.

Ken Aspeslagh from ecamm agreed. "Each new version of Mail and the associated Message framework includes a unique code. Plug-ins have to explicitly declare themselves compatible with each new version," Mr. Aspeslagh told The Mac Observer. "There is some sense to this as plug-ins are closely tied to the inner working of Mail, and stand the chance of breaking when updates. Apple didn't want to take this chance, so now they automatically disable all plug-ins with each update."

While the change translates into headaches for developers that now have to release compatibility updates every time Apple modifies Mail, the changes they'll have to make to their plug-ins will be trivial in most cases. Assuming their plug-ins don't break some functionality in Mail, they simply need to update an identifier code number in their plug-in to match the new number in the Mail application.

"This new method seems like it will require an update of every plug-in every time Apple updates Mail," Mr. Aspeslagh said.

The process seems pretty straight forward and simple for developers and end users alike, but it does break most automated update tools like Sparkle. Sparkle checks for updates after a plug-in loads and alerts the user if a newer version is available. Since Mail automatically disables all plug-ins that don't have a matching code number, Sparkle-enabled plug-ins won't get checked.

The change also means that plug-in versions will be tied to specific point releases of Mail, so using a newer version of a plug-in with an older version of Snow Leopard's Mail probably won't work, either.

The upside of Apple's plug-in compatibility changes in Mail means that end users will hopefully see fewer crashes related to third-party add-ons. The down side is that they probably won't want to install system updates until after they know compatible versions of the plug-ins they rely on are available.