pangea/xcore — pull request #11 by chall8908 (2014-06-30 20:13:32+00:00)
Title: Xcore app

__Note__: I'm still working on a method for making theming work with our build script. Additional commits will follow to add this functionality.

Changelog:
* Forked Onyx Bootplate - modified folder structure
* Updated build script to take advantage of new folder structure
* Extensions must now have a `package.js` file in their `client` folder

---------------

In order to get this all working, I had to fork Enyo's bootplate and modify the folder structure. The main benefit to this change is it makes extensions agnostic to the structure of our client. By simply pointing the Enyo deployment script at the extension's client folder (in `lib/extensions`), we allow extensions to have whatever internal structure makes the most sense to them.

That said, the internal structure of extensions as we've defined them has not changed. Extensions are still required to have this general structure:
````
extension-root/
|
+-- client/
| |
| \-- assets/
|
+-- database/
| |
| +-- source/
| | |
| | \-- manifest.js
| |
| \-- orm/
|
\-- test/
````

However, there was an unspoken requirement that the `client` folder must have a `views` and `data` folder and that only code in those folders would be executed or included in the build and that _all_ the code would be included and bundled. There was also no order guarantee, as files would be loaded in the order they were read off the file system.

This will require extensions define their own structure by including a `package.js` file in the `client` folder.

On the other hand, our build script is now highly dependent on the structure of the bootplate included and will require anyone wanting to swap out our bootplate to understand the differences and be able to make the required changes.