Summary
Work with the Jetpack team to implement a core set of modules. This is currently looking like JEPs 102 - 116, over releases 0.3, 0.4 and 0.5.
Background
Jetpack's architecture under versions 0.8 and earlier (now called the Jetpack Prototype) is being phased out for a new architecture called the Jetpack SDK. Check the SDK docs and wiki for details, but briefly, the differences between the two:
- The Jetpack SDK is a framework for making (traditional) extensions.
- "Jetpacks" produced under the SDK are actually XPIs. They're real extensions. Under the Prototype they were single JS files.
- Since jetpacks are now extensions, it no longer makes sense to say "I made a jetpack." It's more like, "I made an extension using Jetpack."
- Jetpack itself is no longer an extension. It no longer makes sense to say, "I installed Jetpack."
- The SDK is basically a toolchain, runtime, and API -- a framework.
- The SDK is very loosely integrated with Firefox. The runtime is bundled in each XPI. Aside from changes required to support the SDK's high-level APIs, the runtime doesn't require any significant changes to Firefox or Gecko. A (re)loadable extension mechanism is being worked on, but it's like icing on the cake.
- The SDK has a security model, the Prototype didn't.
- Roughly speaking, there are two layers of APIs under the SDK. There's a low-level, chrome-privileged layer that wraps the platform. And there's a high-level, secure, low surface area, and friendly layer that builds on the lower. It's the higher layer that might be thought of as "the Jetpack API," but it's entirely possible to use the lower to build an extension.
- The Bespin IDE of the Prototype will be replaced with a contracted-out in-browser IDE called "FlightDeck." (Maybe you've heard of it?) FlightDeck provides a nice UI to the SDK's toolchain. It will be available as a Web app.
Current Status
Jetpack SDK 0.2rc1 released. Bug fixes and progress on the platform. Introduction of high-level APIs pushed back to 0.3 or later.
Next Steps
- 0.2 to be released next week.
Related Bugs
- Meta tracking bug for Jetpack dependencies in trunk Firefox/Gecko: bug 543856
- Calling out some important ones for Firefox team:
- (Re)loadable extension mechanism: bug 542385. (Branch version is bug 544021.)
Related Links
- Jetpack SDK wiki
- Jetpack team weekly meetings wiki
- #jetpack
- There's a Jetpack drivers mailing list. Ping adw or Daniel Buchner if interested.
- Module coding guidelines
Team
- Wiki page writer: adw
- Members: mossop
- Jetpack/Labs peeps: atul, myk
Goals
- Implement on trunk support for Jetpack extensions.
- Make sure Jetpack has what it needs for a smooth uplift into Firefox.
- Keep an open communication channel between the Firefox and Jetpack teams.
Non Goals
- Finalize or dictate the Jetpack APIs.