Fireplace is a packaged version of the Firefox Marketplace's front-end.
- Ashes
- A secure debug information collection server
- Damper
- A node.js server that serves a browser-friendly version of Fireplace
- Flue
- A mocked-out version of the Marketplace API.
- Hearth
- The source code for Fireplace.
- Inferno
- A build server which generates a packaged version of the Marketplace.
- Smoke Alarm
- A functional test runner for great justice.
- Yule Log
- A fake version of Fireplace to provide the Gaia team with a package that can be shipped and later upgraded to the real Fireplace.
npm install -d
Our dependencies:
nunjucks
: For templatesstylus
: For stylesheets
If you plan on doing compilation (i.e.: you're Wil Clouser), you'll also need
clean-css
: For minifying CSS or whateverrequirejs
: For warming up Spaceheateruglify-js
: For minifying JS and L10n string extraction
Comprehensive Flue documentation can be found in Flue's README.
Docs can be found in Yule Log's README
brew install node
And make sure that /usr/local/share/npm/bin
is in your $PATH
, à la: ::
export PATH=/usr/local/share/npm/bin:$PATH
From the terminal, run the following command
node damper.js
This will start a local server on 0.0.0.0:8675 by default.
To control the hostname and port you can use the following otions
node damper.js --host 127.0.0.1 --port 8888
In addition to an HTTP server, the damper will also run a Stylus watcher (to recompile CSS as it's edited) and a template watcher (to recompile templates as they're edited).
For instructions on running Flue (the mock API server), please see the Flue docs.
To run the compilation process, which compiles templates, CSS, and locale
files, run the damper with the --compile
argument:
node damper.js --compile
The damper will not start a local server in this case, but a strings.po
file
will be generated.
If you need to compile include files (i.e.: for Space Heater or a less HTTP-
heavy version of the project), run make includes
. This will generate two files:
hearth/media/js/include.js
hearth/media/css/include.css
The CSS in include.css
is generated in the order in which CSS files are
included in hearth/index.html
.
include.js
uses a lightweight AMD loader (rather than require.js). This keeps
file size down and also makes it possible to name-mangle internal keywords which
otherwise wouldn't be minifiable. Note that the only safe globals are require
and define
---using any other non-browser globals will result in errors. I.e.:
accessing _
without requiring 'underscore'
will cause the code to fail. Also
note that all modules must include a name as the first parameter.
Note that you need the dev dependencies to run this compilation. You can get
them by running npm install -d
.
A detailed guide to extracting strings and creating JS language packs can be found on the wiki.
- If new templates or
.styl
files are added, they will not be recognized until the damper is restarted. Deleted files may also cause problems.
Install casper
brew install casperjs
Load http://localhost:8675/tests in your browser.
Before you run the functional tests, make sure your settings_local.js
file has
the subset of keys found in
settings_travis.js
.
make test