Categories: jetpack sdk

Announcing Add-on SDK 1.17

I’m pleased to announce the immediate availability of Add-on SDK 1.17! You can download the SDK directly in either zip or tarball format. This is a maintenance release of the cfx tools to more easily support new apis added to Firefox in the future ( see bug 1032275 for more information ). The AMO validator tool has been updated to support extensions created with SDK 1.17 as of August 13th.

This will almost certainly be the last release of this tool; developers using the SDK are encouraged to try out the new JPM tool instead. JPM has some key advantages:

  • developers can create and use npm modules as dependencies in their add-ons.
  • installation via npm is much simpler: `npm install -g jpm`, particularly for developers already used to node.js.
  • cfx was a complex tool built for a time when sdk dependencies were packaged with each add-on. JPM removes a lot of this complexity and just does a few things well: running, packaging and running tests.

For more on migrating to JPM, please see Erik’s excellent post.

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 #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.

9 comments on “Announcing Add-on SDK 1.17”

  1. Peter wrote on

    >For more on migrating to JPM, please see Erik’s excellent post.

    The link is broken. Needs more http://.

    1. Jeff Griffiths wrote on

      Fixed – thanks!

  2. Brett Zamir wrote on

    This sounds very, very cool. However, it would be a wee bit even cooler imo if you could go in the other direction and support the npm (and Node) API within Firefox itself without need for Node. Add-ons could thus be built to provide their own GUI builders, dependencies could be obtained at install time, etc.

    1. Jeff Griffiths wrote on

      We have done that in for some apis, for example fs, path and child_process. It’s not a first-order goal to provide full node api compatibility, but it certainly has helped us to implement things using these lower-level apis. I’m not sure how that is related to Gui Builders or run-time dependency resolution though?

      1. Brett Zamir wrote on

        Sorry, I meant to say implement your own “npm” within Firefox (or bower).

        1. Jeff Griffiths wrote on

          Given the prevalence of a node js installation in most developer workflows, I find it hard to see what problem we’d solve by providing a working npm that way – it feels like a lot of work for not much advantage. It would be easier, frankly, to just package latest npm and node per-platform.

          1. Brett Zamir wrote on

            Yeah, that’s why I said “wee bit…cooler”. But I do think it would be worth something, especially to newbies if you could build an entire add-on in the browser ala the Addon Builder, but drawing from components in the wild (sort of like how the Addon Builder allowed sharing of libraries). Actually, I guess a more universal system would rely on bower instead of npm.

            As far as Node APIs, I wish any relevant ones (which were not server-specific unless Mozilla starting bundling a real server)–i.e., “privileged desktop-side code” which Mozilla shares with Node, could become adopted in Firefox and establish a precedent for write-once, future-stable APIs as we have in established client-side APIs.

  3. Andre wrote on

    I was trying to locate the release notes to see what has changed in the v1.17 API – does this document exist? Thanks in advance.

    1. wbamberg wrote on

      We only write release notes for the bits of the SDK that ship in Firefox – that is, the actual APIs – and you can find them here: I haven’t had time to write release notes for Firefox 33 yet.

      Pretty much the only part of the SDK that does not ship in Firefox is cfx. Updates to cfx are rare and usually very small, and as far as I know the only change in 1.17 is the change Jeff’s called out in the post: bug 1032275 ( is fixed.