| 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/ |