diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 8dddb59c26d..a926215c1f0 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,42 +1,14 @@ - - - -## Expected Behavior - - - -## Current Behavior - - + Ahoy! -## Possible Solution - - + You're seeing this because you felt none of the other options fit the type of + issue you'd like to create. Please use this opportunity to tell us about the + type of issue you were looking for, so we can try to accommodate similar + issues in the future. -## Steps to Reproduce (for bugs) - - -1. -2. -3. -4. - -## Context - - - -## Environment - -* Chart.js version: -* Browser name and version: -* Link to your project: + If you're using this template to report an issue covered by an existing issue + type, we'll close it as invalid faster than you can spell 'Mississippi'. +--> diff --git a/.github/ISSUE_TEMPLATE/BUG.md b/.github/ISSUE_TEMPLATE/BUG.md new file mode 100644 index 00000000000..90ebd643e2b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG.md @@ -0,0 +1,43 @@ +--- +name: Bug Report +about: Something went awry +labels: 'type: bug' +--- + + + +## Expected Behavior + + +## Current Behavior + + +## Possible Solution + + + +## Steps to Reproduce (for bugs) + + +## Context + + +## Environment + +* Chart.js version: +* Browser name and version: +* Link to your project: diff --git a/.github/ISSUE_TEMPLATE/DOCS.md b/.github/ISSUE_TEMPLATE/DOCS.md new file mode 100644 index 00000000000..70e8b34c1ef --- /dev/null +++ b/.github/ISSUE_TEMPLATE/DOCS.md @@ -0,0 +1,25 @@ +--- +name: Documentation +about: Are the docs lacking or missing something? +labels: 'type: documentation' +--- + +Documentation Is: + + + +- [ ] Missing or needed +- [ ] Confusing +- [ ] Not Sure? + +### Please Explain in Detail... + + +### Your Proposal for Changes + + +### Example + diff --git a/.github/ISSUE_TEMPLATE/FEATURE.md b/.github/ISSUE_TEMPLATE/FEATURE.md new file mode 100644 index 00000000000..22b716a1db5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/FEATURE.md @@ -0,0 +1,25 @@ +--- +name: Feature Request +about: Suggest an idea +labels: 'type: enhancement' +--- + + + +### Feature Proposal + + +### Feature Use Case + + + +## Possible Implementation + diff --git a/.github/ISSUE_TEMPLATE/SUPPORT.md b/.github/ISSUE_TEMPLATE/SUPPORT.md new file mode 100644 index 00000000000..1b554bbf4bb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/SUPPORT.md @@ -0,0 +1,27 @@ +--- +name: Support, Help, and Advice +about: Need help or support? Head to https://stackoverflow.com/questions/tagged/chart.js +labels: 'type: support' +--- + + diff --git a/docs/developers/contributing.md b/docs/developers/contributing.md index 2fe3ee266bd..e0310d171b4 100644 --- a/docs/developers/contributing.md +++ b/docs/developers/contributing.md @@ -2,13 +2,12 @@ New contributions to the library are welcome, but we ask that you please follow these guidelines: -- Use tabs for indentation, not spaces. -- Only change the individual files in `/src`. -- Check that your code will pass `eslint` code standards, `gulp lint` will run this for you. -- Check that your code will pass tests, `gulp test` will run tests for you. -- Keep pull requests concise, and document new functionality in the relevant `.md` file. +- Before opening a PR for major additions or changes, please discuss the expected API and/or implementation by [filing an issue](https://github.com/chartjs/Chart.js/issues) or asking about it in the [Chart.js Slack](https://chartjs-slack.herokuapp.com/) #dev channel. This will save you development time by getting feedback upfront and make review faster by giving the maintainers more context and details. - Consider whether your changes are useful for all users, or if creating a Chart.js [plugin](plugins.md) would be more appropriate. -- 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. +- Check that your code will pass tests and `eslint` code standards. `gulp test` will run both the linter and tests for you. +- Add unit tests and document new functionality (in the `test/` and `docs/` directories respectively). +- Avoid breaking changes unless there is an upcoming major release, which are infrequent. We encourage people to write plugins for most new advanced features, and care a lot about backwards compatibility. +- We strongly prefer new methods to be added as private whenever possible. A method can be made private either by making a top-level `function` outside of a class or by prefixing it with `_` and adding `@private` JSDoc if inside a class. Public APIs take considerable time to review and become locked once implemented as we have limited ability to change them without breaking backwards compatibility. Private APIs allow the flexibility to address unforeseen cases. # Joining the project