Best way to split Thunderbird and Firefox users? (Because WebExtensions)

I have an extension that uses the same code (and ID) for Firefox and Thunderbird. I’m nearly finished updating to use WebExtensions for Firefox, but I’ve hit the obvious question: How can my Firefox and Thunderbird users update sanely when they no longer use the same code?

I suspect that the answer is: Tell the Firefox users to uninstall the old extension and download a new one (with a new ID), and leave the Thunderbird users on the old one (old ID). But that’s super unpleasant for the users (and will surely result in high user loss).

Is there a better way to do this?

Thanks.

Adam

Do I get this right that you still want to support a version using the old API for Thunderbird users parralel to the new WebExtension version for Firefox (two “branches”)?

If so, then I think this should work:
Thunderbird users will always get the latest compatible version and Firefox users will always get the absolutely latest version.
So updating with a version that uses the WebExtension API won’t affect Thunderbird users at all.
Updating with a version that works in Thunderbird however would overwrite the add-on for Firefox users too, so simply “cover” that with another WebExtension update.

Oh, and you will always need to get both versions approved (Updating while you still have an update pending usually disables the pending version).
So you should wait for the first update to be approved, disable it yourself immediately (so it won’t get shipped to users), submit the 2nd update and, once that is approved, re-enable the first update.

Ok, this really isn’t a nice workflow …

Interesting, and thanks. But… that’s super painful. I think I’m going to proceed with telling Firefox users to uninstall the old XUL extension and go install a new WebExtensions one.

(I just wrote a blog post giving background and rationale, if anyone’s interested: http://crypti.cc/blog/2016/07/14/mdh-dividing-firefox-and-thunderbird)

Given the circumstances, you could do the following:

  • Create a new WebExtension for your Firefox users, with a new ID.
  • Submit an update to the old listing that migrates your Firefox users to the new ID, using the Add-ons Manager API.

This would need to be coordinated with the admin reviewer team, so we’re aware of the timing and the install/uninstall code. For this sort of thing we also require the user to be prompted before the migration, so it’s up to them to choose to update.

1 Like

@jorgev: Does “coordinate with the admin reviewer team” mean adding a note about it to the review submission, or asking about it on IRC, or sending an email to someone, or…?

Thanks.

You can email amo-admins AT mozilla DOT org when you’re ready to push the version that migrates users.

Also, the Thunderbird project is preparing to set up its own instance of AMO. Once that is in place, you would be able to easily split the two extensions, because they are in different databases. Unfortuantely, there is no date yet when that will be in place.