Fork me on GitHub
isolate.js via AST analysis
Recent changes in SDK

There have being some significant changes to the Add-on SDK lately, which is a step forward to landing and shipping SDK in Firefox. In this post I’ll try to cover what the changes are.

Probably the most important detail is that SDK no longer uses packages. This is an improvement for two reasons:

  1. once SDK is in Firefox we won’t be able to perform complicated module search at compile time and even more so at runtime.
  2. We also see it as great improvement to current ambiguous behavior of require. Now SDK is just a library of modules. Once it’s in Firefox, all addons will be able to load any SDK module without needing to convert completely to an SDK-style project.
  3. We also hope to empower other Mozilla projects with CommonJS so that new APIs & features can be authored in de facto standard CommonJS module format.

Going forward, the idiomatic way to require an SDK modules now is: require("sdk/panel"). Low level and usually less stable APIs will have longer require paths: require("sdk/window/utils").

To ensure that addons built using the old layout are not affected by this change we have analyzed of all AMO hosted addons and created a mapping that maps module requirements used to a new style. CFX - SDK’s CLI tool uses this mapping to allow backwards compatible behavior, while we have no plans on breaking backwards compatibility in a visible future, we still would like to encourage authoring new add-ons in idiamatic style this will make your code a lot more portable!

This new layout is currently on the Master branch and is scheduled to be released on December 11 as version 1.12.

nodeconf 2012
Write logic, not mechanics
protocol based polymorphism
(clojurescripting :intro)
JS Guards
Packageless modules
Addons in multi process future
Yet another take on inheritance
Shareable private properties
Evolving VS Adjusting
oh my zsh
Git status in bash prompt
CommonJS based Github library
Gist plugin for Bespin
bespin - JavaScript Server
bespin chromend
Bespin to Helma
bespin multibackend mockup
Adjectives | Ubiquity + Bugzilla love
Some Mock-up around Ubiquity
Ubiquity command Say
ubiquity command dictionary
Picasa Photo Viewer (Linux port) - Updated
Ubiquity command for JIRA & Crucible
Picasa Photo Viewer (Linux port)
KeyZilla 0.1
XUL Development