Firefox development has recently moved to a rapid release cycle to bring new features and security, stability, and other bug fixes to hundreds of millions of users much faster than we have previously. In order to support this exciting new release schedule, a lot has to change, and one of the biggest areas impacted is add-on compatibility.
With past Firefox releases, add-ons were not marked as compatible with a new version until the developer manually tested and updated their add-on to support it. This process took months to get compatibility to an acceptable level and only worked because of the infrequency of Firefox releases. Our proposed plan for compatibility going forward assumes add-ons are compatible unless we find evidence that they aren’t.
Under the new proposal, add-ons hosted on AMO that are compatible with the previous major release will be automatically marked as compatible with a version just before it branches to Aurora unless we detect that the add-on is broken. Users of Aurora, Beta, and final releases should automatically have compatibility for the vast majority of their add-ons. Nightly users will still need to disable compatibility checking as they currently do, preferably by installing the Add-on Compatibility Reporter.
How will this process work?
There are three key parts:
- Firefox and platform developers should take add-on compatibility into account with any changes they make. Add-on compatibility will be included in the criteria for changes being promoted to Aurora and Beta channels. It’s especially important to minimize breaking changes for Firefox 5 & 6 when the Add-on SDK is not yet stable. Once released this summer, the Add-on SDK will be an excellent alternative to dealing with compatibility.
- Before any compatibility-breaking changes land, Firefox developers should follow a standardized compatibility notification process with a description of the change, the reasons for the change, and patterns we can look for in add-ons to identify those affected. This will be used to update documentation, make blog posts, and add the patterns to the AMO compatibility scanner.
- The day before we branch for Aurora, AMO’s compatibility scanner will be run on the latest versions of all add-ons compatible with the most recent release. Any add-ons flagged as potentially incompatible or that use binary components will not have their compatibility bumped and the authors will receive an email with the identified problems. After testing and fixing any problems, the author can then manually set compatibility and rejoin the automatic process for future releases. Add-ons that have not been flagged will have their compatibility bumped to the new version.
Add-ons that aren’t hosted on AMO can use their own updateURL
mechanism to bump compatibility without issuing an actual update, just as AMO does. They’ll also be able to use our standalone validator to run compatibility tests without being hosted on AMO.
We realize that some changes, especially those involving the user interface, will be difficult to automatically detect. In the next phase, we’ll work on integration with compatibility reports from Nightly users of the Compatibility Reporter to detect when an add-on has suddenly broken.
But Aurora 5 is already out!
We’re still working on the tools to be able to scan for compatibility, notify authors, and automatically bump add-ons, so this process isn’t in place for Aurora 5. We expect to be able to automatically bump 4.0.* compatible add-ons to 5.* during the Beta period. Note that the flow shown in the image above indicates that each channel has 6 weeks; however, Firefox 5 is on an even faster cycle and the releases do not yet line up as shown.
We’re looking for feedback on this proposal and invite you to participate in discussions in its newsgroup thread.
Justin Scott (fligtar) wrote on
Kohei Yoshino wrote on
Jon Bresler wrote on
Jon Bresler wrote on
Stephanie Daugherty wrote on
Wladimir Palant wrote on
Justin Scott (fligtar) wrote on
Marc wrote on
cfl wrote on
Eddie Weber wrote on
Gilad wrote on
Michael Uplawski wrote on
Rob H wrote on
Yvonne Taylor wrote on
Joe wrote on
John wrote on
Joe T. wrote on
Justin Scott (fligtar) wrote on
Erik L Eidt wrote on
Erik L Eidt wrote on
James wrote on
Marc wrote on
Pat Hallihan wrote on
goob wrote on
Rainer wrote on
Justin Scott (fligtar) wrote on
Sasha van den Heetkamp wrote on
Rainer wrote on