JPM Replaces CFX For Firefox 38

The Python based command line tool, CFX, was what we’ve used to build, run, and test add-ons which used the Add-on SDK in the past.  Last August, we released CFX 1.17 and there are no plans to release a new version.  We are replacing CFX with JPM which is a NodeJS based equivalent that works on Firefox 38 and higher and will be accepted on AMO.

For now, you can continue to use CFX as AMO will still accept those add-ons but it is recommended that you start using JPM tool as it is the only one receiving updates.

Why We Switched

We’ve made the new tool for a number of reasons: For one, the Python tool supported a number of features which we wanted to deprecate.  Also, building the tool with JavaScript instead of Python so that it may eventually be used in Firefox with the WebIDE and finally we wanted to replace the old third party module system that was invented for CFX with NPM.

If you are familiar with CFX then this guide on switching to JPM should prove useful.

Advantages

  • JPM is easier to install, especially on Windows.
  • JPM is easier to release, because CFX is Python based and is distributed as a zip file. JPM is Node-js based and is distributed through NPM.
  • JPM produces smaller XPIs, because no extra files are produced*.
  • JPM supports NPM packges.

We hope you enjoy JPM!

Find the source on github! and the issue tracker too!

*JPM produces an install.rdf and minimal bootstrap.js for now, in future versions it will not.

5 comments on “JPM Replaces CFX For Firefox 38”

  1. blueskyy wrote on

    Let’s say a developer wanted to change the extension’s id, would AMO accept it, or should the developer stick to the old jetpack id assigned by cfx?

    1. Erik Vold wrote on

      No sorry, you cannot change the id of an add-on on AMO once it has been submitted at the moment. So keeping the id generated by cfx is probably what you want to do, see https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/cfx_to_jpm#Add-on_ID

  2. Brett Zamir wrote on

    Excellent work making our lives easier by harmonizing with processes used in other environments–thanks!

  3. John Nagle wrote on

    Is JPM ready for use yet? Its web page says “Currently only works with Firefox Nightly.”[1]

    [1] https://www.npmjs.com/package/jpm

    1. Yunier J wrote on

      JPM is ready for use in Firefox 38 +. I’m porting my add-ons to JPM and work nice, it like more than cfx.