Check that setRow is not negative, fixes #644. (#773)
[dygraphs.git] / DEVELOP.md
CommitLineData
341a2d65
DV
1## dygraphs developer notes
2
3So you've made a change to dygraphs and would like to contribute it back to the open source project. Wonderful!
4
5This is a step-by-step guide explaining how to do it.
6
7### How-to
8
9To build dygraphs, run
10
e4fd77b3 11 npm run build
341a2d65
DV
12
13To run the tests, run:
14
e4fd77b3
DV
15 npm run build-tests
16 npm run test
341a2d65 17
e4fd77b3 18To iterate on the code, run:
341a2d65 19
e4fd77b3 20 npm run watch
341a2d65 21
e4fd77b3 22and open `tests/demo.html` (or one of the other demos) in your browser.
341a2d65 23
e4fd77b3
DV
24To iterate on a unit test, run the `watch` command above and open
25
26 auto_tests/runner.html
27
28in your browser. You can use the Mocha UI to run just a single test or suite.
29Or you can change `it` to `it.only` to do run just one test in code.
341a2d65 30
a6d0469d
DV
31To run a single test from the command line, you can use:
32
33 npm run test -- --grep highlight-series-background
34
35(Note the extra `--`.)
36
341a2d65
DV
37### dygraphs style
38
39When making a change, please try to follow the style of the existing dygraphs code. This will make the review process go much more smoothly.
40
41A few salient points:
42
431. We try to adhere to Google's [JS style guide][gstyle] and would appreciate it if you try to as well. This means:
44 * No tabs! Indent using two spaces.
45 * Use camelCase for variable and function names.
46 * Limit lines to 80 characters.
471. If you've added a new feature, add a test for it (in the tests/ directory) or a gallery entry.
481. If you've added an option, document it in `dygraph-options-reference.js`. You'll get lots of warnings if you don't.
491. If you've fixed a bug or added a feature, add a unit test (in `auto_tests`) for it.
50
51Adding a unit test ensures that we won't inadvertently break your feature in the future. To do this, either add to an existing test in `auto_tests/tests` or create a new one.
52
53### Sending a Pull Request
54
55To make a change, you'll need to send a Pull Request. See GitHub's documentation [here][pr].
56
57[gstyle]: http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
58[pr]: http://help.github.com/send-pull-requests/