Many thanks for using Ractive and contributing to its development. The following is a quick set of guidelines designed to maximise your contribution's effectiveness.
If you're having trouble getting Ractive to do what you want, there are a couple of places to get help before submitting an issue:
Of course, if you've encountered a bug, then the best course of action is to raise an issue (if no-one else has!).
Before submitting an issue, please make sure you're using the latest released version - http://cdn.ractivejs.org/latest/ractive.js.
If the bug persists, it may have been fixed in the latest development version. You can always get the most recent successful build from http://cdn.ractivejs.org/edge/ractive.js.
The best issues contain a reproducible demonstration of the bug in the form of a JSFiddle or similar. This JSFiddle has a basic setup to get started with - even better, you could create a failing test using this fiddle as a base.
Pull requests against the master branch will not be merged!
All pull requests are welcome. You should create a new branch, based on the dev branch, and submit the PR against the dev branch.
Caveat for what follows: If in doubt, submit the request - a PR that needs tweaking is infinitely more valuable than a request that wasn't made because you were worrying about meeting these requirements.
Before submitting, run grunt test
(which will concatenate, lint and test the code) to ensure the build passes - but don't include files from the build
folder in the PR.
There isn't (yet) a formal style guide for Ractive, so please take care to adhere to existing conventions:
- Tabs, not spaces!
- Variables at the top of function declarations
- Semi-colons
- Single-quotes for strings
- Liberal whitespace:
// this...
var foo = function ( bar ) {
var key;
for ( key in bar ) {
doSomething( bar, key ); // no space between function name and bracket for invocations
}
};
// ...NOT this
var foo = function(bar){
for(var key in bar){
doSomething(bar, key);
}
}
Above all, code should be clean and readable, and commented where necessary. If you add a new feature, make sure you add a test to go along with it!
There's no contributor license agreement - contributions are made on a common sense basis. Ractive is distributed under the MIT license, which means your contributions will be too.