2.2 KiB
Contributing to iD
Thinking of contributing to iD? High five! Here are some basics for our habits so that you can write code that fits in perfectly.
Javascript
We use the Airbnb style for Javascript with only one difference:
4 space soft tabs always for Javascript, not 2.
No aligned =, no aligned arguments, spaces are either indents or the 1
space between expressions. No hard tabs, ever.
Javascript code should pass through JSHint with no warnings.
HTML
There isn't much HTML in iD, but what there is is similar to JS: 4 spaces always, indented by the level of the tree:
<div>
<div></div>
</div>
CSS
Just like HTML and Javascript, 4 space soft tabs always.
.radial-menu-tooltip {
background: rgba(255, 255, 255, 0.8);
}
We write vanilla CSS with no preprocessing step. Since iD targets modern browsers, feel free to use newer features wisely.
Tests
Test your code and make sure it passes. Our testing harness requires node.js and a few modules:
- Install node.js - 'Install' will download a package for your OS
- Go to the directory where you have checked out
iD - Run
npm install - Run
npm testto see whether your tests pass or fail.
Licensing
iD is under the WTFPL. Some of the libraries it uses are under different licenses. If you're contributing to iD, you're contributing WTFPL code.
Submitting Changes
Let's say that you've thought of a great improvement to iD - a change that turns everything red (please do not do this, we like colors other than red).
In your local copy, make a branch for this change:
git checkout -b make-red
Make your changes to source files. By source files we mean the files in js/.
the iD.js and iD.min.js files in this project are autogenerated - don't edit
them.
So let's say you've changed js/ui/confirm.js.
- Run
jshint srcto make sure your code is clean - Run tests with
npm test - Commit your changes with an informative commit message
- Submit a pull request to the
systemed/iDproject.