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