Skip to content
David Souther edited this page Dec 2, 2013 · 2 revisions

Tools & Languages

grunt manages the build as whole, compiling the assets in src/ to appropriate locations in lib/, running tests, and other automated project management tasks. Tests are run written in Mocha using Chai(), run with a combination of PhantomJS and Karma (controlled with Grunt). Sources are mostly written in CoffeeScript, Stylus, and Jade.

Directory layout

.
├── context.json # Context describing JEFRi contexts
├── grunt.js
├── package.json
├── README.md
├── dist # Interim compile-step resources
│   └── compiled # Individual compiled ls files
├── lib # Final compiled files
│   ├── jefri.js # NodeJS entry point
│   └── jefri.min.js # Browser entry point
├── src # Source files.
│   ├── min # Wrapper scripts for browser exports.
│   ├── node # Wrapper scripts for NodeJS Exports
│   ├── Runtime.ls # The Guts
│   └── Transaction.ls # Transaction unit-of-work encapsulation
└── test
    ├── assets
    │   └── superscore.js
    ├── nunit
    │   ├── smoke.ls
    │   └── tests.js
    ├── qunit
    │   ├── amd
    │   │   ├── jefri.html
    │   │   ├── jefri.ls
    │   │   ├── superscore.js -> ../assets/superscore.js
    │   │   ├── tests.js
    │   │   └── underscore.js -> ../assets/underscore.js
    │   ├── assets
    │   │   ├── coffee-script.js
    │   │   ├── qunit
    │   │   │   ├── jquery-1.8.1.min.js
    │   │   │   ├── jquery-latest.js -> jquery-1.8.1.min.js
    │   │   │   ├── jquery-min.js
    │   │   │   ├── qunit.css
    │   │   │   └── qunit.js
    │   │   ├── superscore.js -> ../../../node_modules/superscore/lib/superscore.min.js
    │   │   └── underscore.js
    │   └── min # Traditional QUnit tests
    │       ├── context # Contexts
    │       ├── js # JS source tests.
    │       ├── ls # LS Source tests
    │       │   └── compiled # Compile LS tests.
    │       ├── qunit.html
    │       └── tests.js
    └── spec # Jasmine tests
        ├── jefri # Browser tests
        └── node # NodeJS tests
            ├── ls # test sources
            │   ├── jefri.ls
            │   └── transaction.ls
            └── spec # Compiled tests

Contributing

From the jefri organization, fork the repo you need to work.

Doing work, create feature branches as

  • feature-[issue-number]/ShortDesc for new features
  • refactor-[issue-number]/ShortDesc for refactoring work
  • bug-[issue-number]/ShortDesc for bug fixes.

Push to your fork, and start a pull request.

Please add issues when you're starting something new, or use an existing issue. Keep them idempotent.

Any PRs without testing will not be merged.

Clone this wiki locally