Skip to content
This repository has been archived by the owner on Feb 14, 2018. It is now read-only.

cloudkick/cast

Repository files navigation

cast: be a wizard
====================

Cast is a framework for deploying applications, written in Node.js.

Cast provides tools for system administrators and developers to create,
deploy, maintain, and monitor distributed services, written in any language.

Cast's internals are structured around building RESTful APIs for all
operations, so that all tasks can be scripted and more powerful tools
can be built on top.

**Note: This project has been deprecated in favor of other projects we are 
currently working on at Rackspace (Cloud Monitoring, Service Registry, etc.) 
and we don't guarantee any support for it anymore.**

Contributing to cast
====================

Cast is open source under the Apache 2.0 License.

Source code is on github:
  <http://github.com/cloudkick/cast>

The mailing list is on google groups:
  <http://groups.google.com/group/cast-dev>

Cast is written mostly in Javascript, and we attempt to follow the Google
Javascript coding and style conventions:
  <http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml>

In addition, all code should pass jslint and Google Closure's Javascript
Lint, which you can run like this:
  $ scons jslint
  $ scons gjslint

Cast also uses extensive unit tests, which you can also run via scons:
  $ scons test

If you are adding new features, please make sure they conform to the
styleguide, pass jslint, and have good test case coverage.


Hacking & Code Style notes
====================

 * Be consistent!

 * Use 'err' and 'callback' for the names of error variables and
   callback functions respectively.

 * Private class members must be prefixed with a single underscore (_)

 * Never access "private" class members directly outside the class, but
   use the corresponding getter method (if necessary, create it).

 * When exporting symbols, attach them directly to the exports object,
   and attempt to place all of the local functions in a file at the top
   of a file.

  * use JSDoc annotations

  * Modules must be imported in the following order:
    * standard library modules (os, util, http, ..)
    * external dependencies
    * cast modules

    Each group must be separated with a blank line.

    For example:
    var util = require('util');

    var printf = require('extern/sprintf').sprintf;

    var config = require('util/config');