Add-ons Blog

Add-on SDK Version 1.4.1 Released

In the 1.4 release we tweaked the manner in which the SDK determines its own version (it now uses git-describe when possible). Yesterday, we discovered that this new versioning process conflicted with the way the Add-on Builder deploys the SDK in their application.

Today we released the hotfix version 1.4.1 to address this issue so that the Add-on Builder can push a 1.4 version of the SDK to users. The patch included in the 1.4.1 release gets the version number, if absent from git, from the name of the parent directory.

If you were already using 1.4 in your own environment, you will not need this new version, nor would you see any differences if you decided to upgrade to it. This fix is strictly to help the Builder team launch 1.4 to their users.

If you have any questions or issues with this hotfix release, please ask in any of the following areas:

post to our discussion group
chat with us on irc.mozilla.org #jetpack
report a bug
check out the source and contribute bug fixes, enhancements, or documentation

For more information on the Jetpack Project check out our wiki

Jetpack Project: weekly update for January 24th, 2012

Project News

  • We’re releasing SDK 1.5b2 this afternoon, including updated localization documentation.
  • If you’re interested in addon localization progress, you should read over Zbigniew Braniecki’s insightful feedback post on our html localization proposal.
  • Yesterday I posted a note about SDK 1.4 and the Addon Builder

Quick Stats

Note: the stats above are based on the queries I linked to for each item. If you have suggestions on how these queries might be made more accurate,please comment below. Stats generated at 2012-01-24 08:40:59 PST

Meeting Brief

  • Builder: next push will fix a number of regressions from last week’s push and introduce the new builder helper.
  • SDK: some reports of problems in 1.4 with content script permissions change. Need to follow up with a bug and investigate alternatives.
  • Round table: Talos testing work going well; Alex is meeting with the UX team to discuss widget changes on Wednesday at 9AM PST.

Full minutes are available here:
https://wiki.mozilla.org/Jetpack/Weekly_Meeting/2012-1-24#Minutes

SDK 1.4 and Addon Builder

Over the last few releases we have typically updated Addon Builder to be able to use the latest version of the SDK within a few days. As you may have noticed, this hasn’t happened yet for the SDK 1.4 release. The Builder project’s product manager Daniel Buchner recently posted about this to the Jetpack google group:

  1. The ‘Builder Helper’ addon needed to be updated, and in fact SDK developer Alexandre Poirot has significantly re-worked and simplified the helper.
  2. Changes in how the SDK packages addons, including a newer simplified internal directory structure.

As Daniel noted in this reply to the above thread, these changes are currently scheduled to be deployed to the Addon Builder this coming Wednesday, January 25th.

Add-ons Update – Week of 2012/01/19

I post these updates every 3 weeks to inform add-on developers about the status of the review queues, add-on compatibility, and other happenings in the add-ons world.

The Review Queues

  • Most nominations for full review are taking less than 10 days to review.
  • Most updates are being reviewed within 5 days.
  • Most preliminary reviews are being reviewed within 5 days.

These stats are taken from last week’s queue report:

  • 39 nominations in the queue awaiting review.
  • 50 updates in the queue awaiting review.
  • 49 preliminary submissions in the queue awaiting review.

Our New Years Challenge has really paid off and add-ons are now reviewed almost immediately after they are submitted. Most add-ons waiting in the queue are waiting for actions from admin reviewers or their developers.

If you’re interested in joining the AMO Editors team and help us review add-ons, please visit our wiki page.

Firefox 10

The Firefox 10 compatibility post is here. The compatibility bump to Firefox 10 was run last week, so any add-ons with compatibility under 10.* should be tested and manually upgraded in the Developer Hub, if possible.

You can run the standalone compatibility tool if you want to test your add-on yourself or if it isn’t hosted on AMO.

The Add-ons Default to Compatible feature is progressing, and we expect to land on Firefox 10. Once this is in place, your compatibility worries will be minimized, and we’ll be taking a more active role in letting developers know if their add-ons are incompatible with a new version of Firefox. This feature will be a big win for both developers and Firefox users, so we’re very excited about it.

Firefox 11

A compatibility blog post for Firefox 11 is coming up. I apologize for the delay.

Jetpack Project: weekly update for January 17th, 2012

Project News

  • Addon SDK 1.4 shipped last week; if your SDK-based addon makes use of resource urls to access web content located in the data directory, please check out my blog post detailing the dangers of hard-coding these urls, and how you can fix them.
  • Cheevos is an SDK-based addon written by Firefox developer Jared Wein that awards you achivements for getting to know Firefox better. Jared started working on Cheevos at the SDK Hack Day in November, and blogged recently about the progress the addon has made and the current leaderboards.
  • Irakli recently moved and expanded the list of community-contributed modules; you can now find it on github.

Quick Stats

Note: the stats above are based on the queries I linked to for each item. If you have suggestions on how these queries might be made more accurate,please comment below. Stats generated at 2012-01-17 11:31:31 PST

Meeting Brief

  • Builder: on track for 1.0 in February, the new builder helper addon needs testing.
  • SDK: now licensed under MPL v2.0, releasing SDK 1.5 test build later today.
  • Community feedback regarding confusing web presence, will look at ways to consolidate info.
  • Discussion on the priorities and next steps for user contributed modules, widget in toolbar feature, addontab.
  • Alex’s builder re-write needs review.

Full minutes are available here:
https://wiki.mozilla.org/Labs/Jetpack/Weekly_Meeting/2012-1-17#Minutes

SDK 1.4: known issue with hard-coding resource URIs

The Jetpack project released Addon SDK version 1.4 yesterday; this release is likely the most significant release of the SDK since 1.0 in June, and includes a number of improvements. One of the improvements was a change to simplify the internal file & folder structure of the xpi packages the SDK creates. This work was tracked in bug 660629.

One side-effect of this change is that the resource urls for files in the data folder of an add-on have changed. If you have created an add-on and for some reason hard-coded a resource url into your code, you will need to change your code in order for your add-on to work when packaged with SDK version 1.4.

While the release notes go into this issue in detail, I would like to highlight here the two main examples we are seeing in the wild of hard coded resource uris, with strategies for working around each.

1. Hard coded resource uris in main.js

Addon authors occasionally reference html and javascript files in the addon’s data directory directly via a hard-coded string:

var myPanel = require("panel").Panel({
  contentURL: "resource://jid1-294x0ji6mesjag-at-jetpack-example-data/my-file.html",
  contentScriptFile: "resource://jid1-294x0ji6mesjag-at-jetpack-example-data/my-script.js"
});

You should always use the method self.data.url instead:

var data = require("self").data;
var myPanel = require("panel").Panel({
  contentURL: data.url("my-file.html"),
  contentScriptFile: data.url("my-script.js")
});

2. Hard coded resource uris in html or css files inside the data directory.

Referencing a css or image file from an html or css file in the addon’s data directory does not require the entire resource uri path because these resources can be referenced with relative paths. Instead of doing this:

<html>
  <body>
    <img src="resource://jid1-294x0ji6mesjag-at-jetpack-example-data/my-file.png"/>
  </body>
</html>

…all you need to do is this:

<html>
  <body>
    <img src="my-file.png"/>
  </body>
</html>

If you have created an SDK-based addon and have included some hard-coded resource uris in your code, you will only need to make changes to address this issue if you re-package your addon with 1.4. As we are not re-packing addons on AMO automatically for this release, there is no immediate need to update your code.

It is possible 6 weeks from now that we will re-pack all addons to use SDK 1.5, and at this point any remaining addons using hard-coded resource uris will stop working. To mitigate this we are working with the AMO team to identify all affected addons and contact addon authors directly to encourage them to update and use the best practices I demonstrated above.

Jetpack Project: weekly update for January 10th, 2012

Project News

Quick Stats

Note: the stats above are based on the queries I linked to for each item. If you have suggestions on how these queries might be made more accurate,please comment below. Stats generated at 2012-01-10 10:28:34 PST

Meeting Brief

  • Builder: release tomorrow fixes AMO account ids, looking for feedbackon Builder helper addon
  • SDK: releasing 1.4 today, working to co-ordinate messaging resource uri value changes
  • Apps: consult with labs to see which api-utils modules they would like frozen
  • Talos testing: Jeff Hammel stopped by, kicking off project to get automated testing

Full minutes are available here:
https://wiki.mozilla.org/Jetpack/Weekly_Meeting/2012-1-10#Minutes

Announcing Add-on SDK 1.4!

The Jetpack team is proud to announce the release of Add-on SDK 1.4! This version of the SDK has the most new features of all the releases we have made since the 1.0 release. Some of the new features include:

- Thanks to community members Hernan Colmeiro and Erik Vold, we have a new Simple Prefs API allowing you to easily create preferences for your add-on. Please see the documentation to learn how to use this new API.

- We have a brand new loader which is simplified and should give us even better performance.

- We have a new layout to the XPI files generated by the SDK. *Please note this if you have hard-coded any resource://URL links!! You should fix those links as specified in the release notes!*

For more new features and known issues,please see the Release Notes.

To get started building add-ons with the Add-on SDK, download it, then check out the documentation!

As always, we’d love to hear from you about your experiences with this release. You can contact us in a variety of ways:

post to our discussion group
chat with us on irc.mozilla.org #jetpack
report a bug
check out the source and contribute bug fixes, enhancements, or documentation

For more information on the Jetpack Project check out our wiki

Default Compatibility is Coming and Your Help is Needed!

All add-ons will be made compatible by default in the upcoming Firefox 10 release, so it’s crunch time for testing them in Beta, Aurora, and Nightly. With default compatibility, you can expect to see less of the incompatible add-ons dialog, and more of your add-ons should just work.

If you are a Firefox developer, support professional, or contributor, your help is critical—if you think there might be a compatibility issue in any of the release channels, please file a bug here so we can take action right away if needed.

In general, it would be super helpful for everyone to install the Add-on Compatibility Reporter and let us know through the reporter if your add-ons are working properly.

Your help is greatly appreciated!

Issue Corrected with Add-on Usage Stats

After receiving numerous reports from add-on developers about slight dips in their usage statistics, we discovered an issue yesterday with the log configuration of several servers. This issue has been corrected and statistics should return to normal beginning with today’s report. Unfortunately, active daily user statistics since December 16, 2011 are approximately 33% lower than they should be and cannot be corrected due to lost logs.

More Details
The last few weeks, Mozilla IT has addressed numerous stability issues with AMO and VAMO (versioncheck.addons.mozilla.org, which handles add-on update pings) and made significant changes to the network configuration to keep AMO up and running. One of those changes was the addition of a caching proxy in our Amsterdam datacenter, which was brought online on December 16 to receive 1/3 of the update ping traffic.

Unfortunately, these new servers were not configured to send their logs to our metrics processing tools, so those pings were not counted and the logs are no longer available. We were not immediately sure of the scope of the problem due to both the ongoing stability issues and expected decline in usage during the holidays and fluctuation in usage after a release. The log configuration was corrected yesterday afternoon and Metrics is validating today whether the logs are being processed correctly going forward.

Mozilla IT and Metrics are working on automated ways to prevent this from happening in the future as we continue to deploy AMO around the world. We know that many developers depend on these statistics, and apologize for the data lost over the past 2.5 weeks.