Skip to content

at-kevinlau/fireplace

 
 

Repository files navigation

Fireplace

Fireplace is a packaged version of the Firefox Marketplace's front-end.

Build Status

Glossary

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.

Installation

npm install
npm install -g commonplace

Flue

Comprehensive Flue documentation can be found in Flue's README.

Yule Log

Docs can be found in Yule Log's README

Usage

If you haven't already, run commonplace init to install local settings files. Some settings (media/js/settings_local.js) may need to be updated if you plan to run a local setup, including api_url.

From the terminal, run the following command

damper

This will start a local server and filesystem watcher on 0.0.0.0:8675 by default.

For more options, read the damper documentation.

For instructions on running Flue (the mock API server), please see the Flue docs.

Compiling

To run the compilation process, which compiles templates, CSS, and locale files, run the following command:

commonplace compile

Compiling Includes

If you need to compile include files (i.e.: for Space Heater or a less HTTP- heavy version of the project), run commonplace 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.

Localizing

A detailed guide to extracting strings and creating JS language packs can be found on the wiki.

The API

Read the docs.

Tests

Install casper

brew install casperjs

Running unit tests

Load http://localhost:8675/tests in your browser.

Running functional tests

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

Local Development With Nginx

See Using Fireplace with Zamboni