AMO and minVersion 4.0 are BFF

Justin Scott

5

Every time a big Firefox release is upon us, we’re reminded of a longstanding and frustrating hassle on AMO: there’s only one latest version. Add-on versions and files are more complex than meets the eye, and in combination with our need for aggressive caching, AMO has only ever been able to return the very latest version of an add-on.

This becomes a problem around release time because developers may choose to upload an add-on that only works on the latest version, but it will strand users of the stable version. For example, if version 1.0 of my add-on supports up to Firefox 3.6.* and version 2.0 supports Firefox 4.0 and higher, as soon as I upload version 2.0, Firefox 3.6 users will stop getting updates and will see the add-on listed as incompatible on AMO except on the Old Versions page.

No more! As of a few weeks ago, the add-on update service will return the latest version compatible with your browser. If you’re using Firefox 3.6 and the latest version only supports Firefox 4.0, AMO will return the latest version that does support Firefox 3.6 on your platform.

Today we launched the second part of this fix, which will now support “backup versions”. If your add-on has a minVersion of 4.0 and you have previous versions that support a lower version, we’ll send both versions and only display the correct one. So, if you’re using Firefox 3.6 you’ll get the 3.6-compatible one as the latest, and if you’re using Firefox 4, you’ll get the Firefox 4 version as the latest. See FireFTP for an example of this in action.

We’re excited to finally have this support and hope that this will remove another barrier to compatibility updates for Firefox 4 and future versions.

5 responses

  1. Wladimir Palant wrote on ::

    I must say, it is somewhat confusing to have a download link point to version 1.0.10 when all the surrounding information (version number in page header, compatibility information etc.) suggests that you will get version 1.99.1 that is not compatible with your browser. But regardless, great work! This is definitely a big step forward.

    How does it choose which version to display in addition to the current one? Does it simply use the previous add-on version if minVersion changed between versions? Or does it look for a version compatible with the previous major browser release? Asking because I cannot see Adblock Plus 1.2.2 in the page source so a Firefox 3.0 user still won’t be able to install. Will he get updates if he has Adblock Plus 1.1 installed for example or does the update only cover two major browser versions as well?

    1. Justin Scott (fligtar) wrote on ::

      Yeah, the surrounding information mismatch is https://bugzilla.mozilla.org/show_bug.cgi?id=640041 . And the backup version is hard-coded for the latest release right now, so this will only work for Firefox 4, not previous versions. Update checking should work for all versions.

      1. Nuss wrote on :

        If bug 640041 is fixed, the add-on details page should say there is a compatible version of the add-on for the latest version of Firefox even if accessing it from an older browser.

        There are a few users out there not updating to the latest version of Firefox until their favorite add-on is compatible. If they go to the add-on details page to see if the add-on is compatible with the latest version and it says that it isn’t, they might not update to the latest version as a consequence, even if there are a compatible version.

  2. Wladimir Palant wrote on ::

    PS: Being able to maintain two stable branches of an add-on for different browser versions and having installation and updates work transparently for the users would be nice…

  3. johnjbarton wrote on ::

    I suppose there is some way to make this new feature work for us, but I don’t understand why this simple problem has to be made so complicated.

    When a user comes to amo wanting eg Firebug for Firefox 4.0, they should install 1.7b1. If they are using Firefox 3.6, the answer is Firebug 1.6.2.

    I’m sure there is a way to chewing-gum the result we want out of this new feature.