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..46912a746e8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG.md @@ -0,0 +1,39 @@ +--- +name: Bug Report +about: Something went awry and you'd like to tell us about it. + +--- + + + + + +## 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..950fbc2a48d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/DOCS.md @@ -0,0 +1,29 @@ +--- +name: Documentation +about: Are the docs lacking or missing something? Do they need some new hotness? Tell us here. + +--- + + + + + +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..c0c9d72385c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/FEATURE.md @@ -0,0 +1,26 @@ +--- +name: ✨ Feature Request +about: Suggest an idea for this project + +--- + + + + + +### 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..b7515b436cf --- /dev/null +++ b/.github/ISSUE_TEMPLATE/SUPPORT.md @@ -0,0 +1,23 @@ +--- +name: Support, Help, and Advice +about: Need help or support? Please don't open an issue! Head to https://stackoverflow.com/questions/tagged/chart.js. + +--- + +Hey there! If you need help or tech support then this is not the place to +ask. Please post a question to [StackOverflow](https://stackoverflow.com/questions/tagged/chart.js) +or head over to [Chart.js Slack](https://chartjs-slack.herokuapp.com/). + +You maximize your chances of having your question answered if you follow +[StackOverflow's guidelines for how to ask a good question](https://stackoverflow.com/help/how-to-ask). +If your question was not answered on [StackOverflow](https://stackoverflow.com/questions/tagged/chart.js), +that does not mean you should post it here. If you do, it will be immediately closed. + +Chart.js users vastly outnumber our small number of volunteer maintainers and we try to help as many users +as we can, but we may not get to every question. Chart.js is a community project. You can contribute to maximizing +the number of users helped by +[asking good questions](https://stackoverflow.com/help/how-to-ask), +answering questions on [StackOverflow](https://stackoverflow.com/questions/tagged/chart.js) +or [Slack](https://chartjs-slack.herokuapp.com/), +creating an issue or pull request for the documentation, +or otherwise [contributing to the project](https://www.chartjs.org/docs/latest/developers/contributing.html). diff --git a/docs/developers/contributing.md b/docs/developers/contributing.md index 13f8e4429c6..244dcdfa528 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