matehat/brewer.js — Issue #5: 0.4 Roadmap
Author: matehat
Created: 2012-02-19 07:09:59+00:00
State: open
Labels: change, enhancement

We should reduce the number of classes and just increase the diversity of the vocabulary.

#### Removing the `Package` class

So, we need a project class. The "Package" class existed only to accommodate de distinction between JavaScript and CSS bundles, and their distinctive needs. If we make the bundling process a separate thing, packages can be removed, and there would be only sources and projects.

#### (Almost) everything as sources

Sources can provide source files and encapsulate their own compilation process to provide different representations of source files. This concept of source is the same as before. Staying functionally compatible, though the nomenclature would need revision, the separate entity that generate bundled (and potentially compressed) assets could be thought of as a particular case of sources. It just interacts more tightly with the project to find files that match an access path and a type to aggregate bundled assets. Vendor libraries are also just sources, only more static.

#### New ideas

New kinds of sources and operations could include :

* images and sprites
* code inline documentation (docco-style)
* javascript templates and compilation (for bundling and exchange)
* static site generator (a la Jekyll)

#### Brewfile

The Brewfile is currently used to specify only the structure of a project. It could also be used to specify tasks and task-groups, such as what other build systems out there do (make, cake, rake).