SeaMonkey Trunk Tracker

Saturday, December 24, 2011

SeaMonkey 2.7 Beta 1 is Compatible by Default

Today, on Christmas Eve (local time), SeaMonkey 2.7 Beta 1 will be released. This version features something that will probably make a huge difference to ordinary users: Compatible-by-default add-ons (called CBD in the following). This is basically a change of opinion regarding add-on compatibility: Instead of assuming that an add-on is not compatible with a new application version, we will henceforth assume that it is, which should better reflect reality. Switching to a faster release cycle (with less ground-breaking, incompatible changes per release) certainly helped this come true.

So far, support channels have seen many complaints from users who didn't want to upgrade to a new version of SeaMonkey because their favorite add-ons didn't work with it (yet). Sometimes people only upgraded later, or only when they were told how to override compatibility checks (e.g. using the ACR).

Unlike Firefox add-ons, SeaMonkey add-ons did never benefit from automatic compatibility bumps on AMO. Thus as far as SeaMonkey was concerned, if the add-on developers didn't do the bump themselves, it was up to each individual user to take measures if they wanted to keep their add-ons active. And of course they did. Finding no UI option for that, they asked on the support channels, delayed the update, or gave up.

Now if you take a look at the SeaMonkey Add-on Compatibility Tracking page, you'll easily see that about half the add-ons listed under the AMO category are not marked compatible with the current stable version of SeaMonkey (or better). Add-on authors generally got better at bumping compatibility, but it's still a manual task as far as SeaMonkey is concerned.

So what's different with the new CBD feature? Simply put, almost all of that other half from above will be compatible with SeaMonkey 2.7 Beta 1. Automatically. Without any end-user having to change or install anything in addition. That's what I call a UX win! :-) [1]

So, why not all add-ons from the above list? Because some restrictions apply. For CBD to take effect for a SeaMonkey add-on, the following requirements need to be met:
  1. The add-on is compatible with at least SeaMonkey 2.1 or Toolkit 2.0 (the matching Firefox version is 4.0, which is also their lower bound for CBD). This makes sense since that was when fully SeaMonkey adopted the Places back-end (formerly use for history only, then for bookmarks, too) and added Sync support. [2]
  2.  
  3. The add-on does not contain binary components (this rules out popular add-ons like Lightning and Enigmail).
  4.  
  5. The add-on does not claim to only support a later version of SeaMonkey than the one that is currently running the check (in other words: the add-on minVersion must not be larger than the app version).
  6.  
  7. The add-on did not opt out of CBD (by setting the strictCompatibility flag in install.rdf or on AMO).


From my experience, the majority of frequently used SeaMonkey add-ons pass all of these checks. So instead of instructing all users with add-on compatibility issues to install the ACR, we can now limit that advice to those who want to test and give feedback for Beta, Aurora and trunk builds. With CBD, the ACR cannot be used to enable old (pre-2.1) add-ons anymore anyway.

That's it for our next beta, but there's more! In early 2012, when SeaMonkey 2.9 hits Beta, users on that channel will be able to have Sync distribute their installed add-ons across multiple instances of SeaMonkey (provided the add-ons are available from AMO). Note that Firefox will ship the new feature one release earlier (it landed very close to the Aurora uplift, which is the cut-off for changes that affect localization), but that's not too bad since this feature doesn't work across applications anyway.


Now what's left to say? Merry Christmas everyone! Let there be peace on earth.


[1]: Thanks to everyone who worked on this feature! I know you primarily have Firefox on multiple platforms in mind when you develop things in Toolkit, but still.


[2]: Toolkit/AOM Bug 680845 still applies, i.e. if an add-on is marked as compatible with SeaMonkey on AMO, installation will fail if the add-on's install.rdf doesn't list SeaMonkey.


Note to self: Contact the developers of the add-ons listed under 2.0x since these will not benefit from CBD as-is, though at least some of them still work with current SeaMonkey version for sure, e.g. Nostalgy. If anyone reads this and shares my concerns, feel free to help (e.g. using the ACR to give feedback), it is surely appreciated!

Labels:

Tuesday, December 13, 2011

11-12-13

[Note: This post is quite different from those I made in the past. Long story short: Due to time constraints I will hardly ever be able to revive the old SeaMonkey Trunk Tracker style of release updates or even complete the missing ones. That's not too bad, though, since I'm now responsible for the SeaMonkey website, which includes the list of changes per release (of which we have more now, as you know). This allows me to re-focus this blog on what it is actually about: tracking trunk development. The below is probably a good example of what is still to come.]

Welcome back! It's 11-12-13 now (at least in my timezone) and I feel this is the perfect time to share something with you that just landed on trunk.

If you are building SeaMonkey or Thunderbird on Windows, you can now finally replace this:

make -f client.mk

or this:

autoconf-2.13
cd mozilla
autoconf-2.13
cd js/src
autoconf-2.13
mkdir -p $MOZ_OBJDIR
cd $MOZ_OBJDIR
../comm-central/configure
time python -O ../comm-central/mozilla/build/pymake/make.py

by this:

time python -OO mozilla/build/pymake/make.py -f client.mk

and replace this:

mk_add_options MOZ_OBJDIR=/e/mozilla-src/comm-central-build

by this:

mk_add_options MOZ_OBJDIR=e:/mozilla-src/comm-central-build

and add back this:

mk_add_options MOZ_MAKE_FLAGS=-j8

in your .mozconfig and there you'll have it: Parallelized building on Windows, using pymake! On a fast PC like mine (i7) you can get a full debug build done from scratch in only about 25 minutes now, without the fear of experiencing intermittent hangs. :-)

Thanks go to all the people who worked on pymake and especially the ones who fixed the last issue on comm-central (Bug 706905).

BTW: AFAICS the comm-central client.mk is still missing some pymake-related fixes that were recently made to the mozilla-central equivalent, especially Bug 707512 and Bug 643167. Please correct me if I'm wrong.

In the next issue I'm going to talk about compatible-by-default extensions (a.k.a. add-ons) and the implications for SeaMonkey. Stay tuned!

Labels: ,