Firefox/Projects/Jetpack: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Status update)
Line 1: Line 1:
== Summary ==
== Summary ==


Make sure Jetpack's needs in Firefox and Platform are met.  Implement on trunk support for (re)loadable extensions.  Facilitate communication between Firefox and Jetpack teams.
Ensure that Jetpack extensions can be developed for production use on trunk Firefox.  Facilitate communication between Firefox and Jetpack teams.


== Background ==
== Background ==


Jetpack's architecture under versions 0.8 and earlier (now called the Jetpack "prototype") is being phased out for a new architecture nicknamed the Jetpack "reboot".  Check the [[Labs/Jetpack/Reboot|Labs reboot wiki page]] for details, but briefly, the differences between the two:
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 [https://jetpack.mozillalabs.com/sdk/latest/docs docs] and [[Labs/Jetpack/Reboot|wiki]] for details, but briefly, the differences between the two:


* '''The Jetpack reboot is a framework for making traditional extensions.'''
* '''The Jetpack SDK is a framework for making (traditional) extensions.'''
* "Jetpacks" produced under the reboot are actually XPIs.  They're real extensions.  Under the prototype they were single JS files.
* "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."
* 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."
* Jetpack itself is no longer an extension.  It no longer makes sense to say, "I installed Jetpack."
* The reboot is basically a toolchain, runtime, and API -- a framework.
* The SDK is basically a toolchain, runtime, and API -- a framework.
* "[[Labs/Jetpack/Reboot/Glossary|Cuddlefish]]" is what Atul has coined this 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  [https://bugzilla.mozilla.org/show_bug.cgi?id=542385 (re)loadable extension mechanism] is being worked on, but it's like icing on the cake.
* The reboot is very loosely integrated with Firefox.  The runtime is bundled in each XPI.  The only significant hook that these XPIs require is a [https://bugzilla.mozilla.org/show_bug.cgi?id=542385 (re)loadable extension mechanism].
* The SDK has a security model, the Prototype didn't.
* The reboot 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.
* Roughly speaking, there are two layers of APIs under the reboot.  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 "[[Labs/Jetpack/FlightDeck|FlightDeck]]." (Maybe you've heard of it?) FlightDeck provides a nice UI to the SDK's toolchain.  It will be available as a Web service or maybe an extension.
* The Bespin IDE of the prototype will be replaced with a contracted-out in-browser IDE called "[[Labs/Jetpack/FlightDeck|FlightDeck]]."  FlightDeck provides a nice UI to Cuddlefish's toolchain.  It will probably be available as an extension or Web service.


== Current Status ==
== Current Status ==


<onlyinclude>adw, mossop, ddahl, zpao attending weekly Jetpack meetings. Jetpack team is finalizing the [[Labs/Jetpack/Reboot/JEP|reboot's round-one API proposals]], already implementing somePreparing to release reboot 0.1.  (Details [http://blog.mozilla.com/adw/tag/status/ blogged] every Friday.)</onlyinclude>
<onlyinclude>Jetpack SDK 0.1 releasedWorking toward 0.2, to be released at the end of March.  (Details [http://blog.mozilla.com/adw/tag/status/ blogged] every Friday.)</onlyinclude>


== Next Steps ==
== Next Steps ==


* Reboot 0.1 to be released next week (of 03/01)It won't feature any high-level APIs but will demonstrate the new architecture.
* Release 0.2 at the end of March at the earliestIts highlight is intended to be the first high-level API, [[Labs/Jetpack/Reboot/JEP/104|simple storage]].
* Separately, mossop will be working on {{bug|542385}}, (re)loadable extensions...


== Related Bugs ==  
== Related Bugs ==


* Meta tracking bug for Jetpack dependencies in trunk Firefox/Gecko: {{bug|543856}}
* Meta tracking bug for Jetpack dependencies in trunk Firefox/Gecko: {{bug|543856}}
Line 35: Line 33:
== Related Links ==
== Related Links ==


* [[Labs/Jetpack/Reboot|Jetpack reboot wiki]]
* [[Labs/Jetpack/Reboot|Jetpack SDK wiki]]
* [[Labs/Jetpack/Weekly_Meeting|Jetpack team weekly meetings wiki]]
* [[Labs/Jetpack/Weekly_Meeting|Jetpack team weekly meetings wiki]]
* [irc://irc.mozilla.org/jetpack #jetpack]
* [irc://irc.mozilla.org/jetpack #jetpack]
Line 48: Line 46:
== Goals ==
== Goals ==


* Implement on trunk support for (re)loadable extensions.
* Implement on trunk support for Jetpack extensions.
* Make sure Jetpack has what it needs for a smooth uplift into Firefox.
* Make sure Jetpack has what it needs for a smooth uplift into Firefox.
* Keep an open communication channel between the Firefox and Jetpack teams.
* Keep an open communication channel between the Firefox and Jetpack teams.

Revision as of 08:17, 13 March 2010

Summary

Ensure that Jetpack extensions can be developed for production use on trunk Firefox. Facilitate communication between Firefox and Jetpack teams.

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 service or maybe an extension.

Current Status

Jetpack SDK 0.1 released. Working toward 0.2, to be released at the end of March. (Details blogged every Friday.)

Next Steps

  • Release 0.2 at the end of March at the earliest. Its highlight is intended to be the first high-level API, simple storage.

Related Bugs

  • Meta tracking bug for Jetpack dependencies in trunk Firefox/Gecko: bug 543856
  • Calling out some important ones for Firefox team:

Related Links

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.