| commit | author | age | ||
| 83c3f6 | 1 | # Contributing |
| SP | 2 | |
| 3 | New contributions to the library are welcome, but we ask that you please follow these guidelines: | |
| 4 | ||
| 5 | - Use tabs for indentation, not spaces. | |
| 6 | - Only change the individual files in `/src`. | |
| 7 | - Check that your code will pass `eslint` code standards, `gulp lint` will run this for you. | |
| 8 | - Check that your code will pass tests, `gulp test` will run tests for you. | |
| 9 | - Keep pull requests concise, and document new functionality in the relevant `.md` file. | |
| 10 | - Consider whether your changes are useful for all users, or if creating a Chart.js [plugin](plugins.md) would be more appropriate. | |
| 11 | - Avoid breaking changes unless there is an upcoming major release, which are infrequent. We encourage people to write plugins for most new advanced features, so care a lot about backwards compatibility. | |
| 12 | ||
| 13 | # Joining the project | |
| 14 | ||
| 15 | Active committers and contributors are invited to introduce yourself and request commit access to this project. We have a very active Slack community that you can join [here](https://chartjs-slack.herokuapp.com/). If you think you can help, we'd love to have you! | |
| 16 | ||
| 17 | # Building and Testing | |
| 18 | ||
| 19 | Chart.js uses <a href="http://gulpjs.com/" target="_blank">gulp</a> to build the library into a single JavaScript file. | |
| 20 | ||
| 21 | Firstly, we need to ensure development dependencies are installed. With node and npm installed, after cloning the Chart.js repo to a local directory, and navigating to that directory in the command line, we can run the following: | |
| 22 | ||
| 23 | ```bash | |
| 24 | > npm install | |
| 25 | > npm install -g gulp | |
| 26 | ``` | |
| 27 | ||
| 28 | This will install the local development dependencies for Chart.js, along with a CLI for the JavaScript task runner <a href="http://gulpjs.com/" target="_blank">gulp</a>. | |
| 29 | ||
| 30 | The following commands are now available from the repository root: | |
| 31 | ||
| 32 | ```bash | |
| 33 | > gulp build // build Chart.js in ./dist | |
| 34 | > gulp unittest // run tests from ./test/specs | |
| 35 | > gulp unittest --watch // run tests and watch for source changes | |
| 36 | > gulp unittest --coverage // run tests and generate coverage reports in ./coverage | |
| 37 | > gulp lint // perform code linting (ESLint) | |
| 38 | > gulp test // perform code linting and run unit tests | |
| 39 | > gulp docs // build the documentation in ./dist/docs | |
| 40 | > gulp docs --watch // starts the gitbook live reloaded server | |
| 41 | ``` | |
| 42 | ||
| 43 | More information can be found in [gulpfile.js](https://github.com/chartjs/Chart.js/blob/master/gulpfile.js). | |
| 44 | ||
| 45 | # Bugs and Issues | |
| 46 | ||
| 47 | Please report these on the GitHub page - at <a href="https://github.com/chartjs/Chart.js" target="_blank">github.com/chartjs/Chart.js</a>. Please do not use issues for support requests. For help using Chart.js, please take a look at the [`chartjs`](http://stackoverflow.com/questions/tagged/chartjs) tag on Stack Overflow. | |
| 48 | ||
| 49 | Well structured, detailed bug reports are hugely valuable for the project. | |
| 50 | ||
| 51 | Guidelines for reporting bugs: | |
| 52 | ||
| 53 | - Check the issue search to see if it has already been reported | |
| 54 | - Isolate the problem to a simple test case | |
| 55 | - Please include a demonstration of the bug on a website such as [JS Bin](http://jsbin.com/), [JS Fiddle](http://jsfiddle.net/), or [Codepen](http://codepen.io/pen/). ([Template](http://codepen.io/pen?template=JXVYzq)) | |
| 56 | ||
| 57 | Please provide any additional details associated with the bug, if it's browser or screen density specific, or only happens with a certain configuration or data. | |