|
| 1 | +# Contributing to json-rpc |
| 2 | + |
| 3 | +:+1::tada: First off all, thanks for taking the time to contribute! :tada::+1: |
| 4 | + |
| 5 | +The following is a set of guidelines for contributing to [json-rpc](https://github.com/pavlov99/json-rpc), which is hosted on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. |
| 6 | + |
| 7 | +#### Table Of Contents |
| 8 | + |
| 9 | +[Code of Conduct](#code-of-conduct) |
| 10 | + |
| 11 | +[I don't want to read this whole thing, I just have a question!!!](#i-dont-want-to-read-this-whole-thing-i-just-have-a-question) |
| 12 | + |
| 13 | +[How Can I Contribute?](#how-can-i-contribute) |
| 14 | + * [Reporting Bugs](#reporting-bugs) |
| 15 | + * [Suggesting Enhancements](#suggesting-enhancements) |
| 16 | + * [Pull Requests](#pull-requests) |
| 17 | + |
| 18 | +[Styleguides](#styleguides) |
| 19 | + * [Git Commit Messages](#git-commit-messages) |
| 20 | + |
| 21 | +## Code of Conduct |
| 22 | + |
| 23 | +This project and everyone participating in it is governed by the [json-rpc Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [json-rpc@p99.io](mailto:json-rpc@p99.io). |
| 24 | + |
| 25 | +## I don't want to read this whole thing I just have a question!!! |
| 26 | + |
| 27 | +> **Note:** Please don't file an issue to ask a question. You'll get faster results by using the resources below. |
| 28 | +
|
| 29 | +We have a message board [Gitter](https://gitter.im/pavlov99/json-rpc) where the community chimes in with helpful advice if you have questions. |
| 30 | + |
| 31 | +## How Can I Contribute? |
| 32 | + |
| 33 | +### Reporting Bugs |
| 34 | + |
| 35 | +This section guides you through submitting a bug report for json-rpc. Following these guidelines helps maintainers and the community understand your report :pencil:, reproduce the behavior :computer: :computer:, and find related reports :mag_right:. |
| 36 | + |
| 37 | +When you are creating a bug report, please [include as many details as possible](#how-do-i-submit-a-good-bug-report). Fill out [the required template](ISSUE_TEMPLATE.md), the information it asks for helps us resolve issues faster. |
| 38 | + |
| 39 | +> **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one. |
| 40 | +
|
| 41 | +#### How Do I Submit A (Good) Bug Report? |
| 42 | + |
| 43 | +Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on that repository and provide the following information by filling in [the template](ISSUE_TEMPLATE.md). Add a label 'bug' to the issue. |
| 44 | + |
| 45 | +Explain the problem and include additional details to help maintainers reproduce the problem: |
| 46 | + |
| 47 | +* **Use a clear and descriptive title** for the issue to identify the problem. |
| 48 | +* **Describe the exact steps which reproduce the problem** in as many details as possible. For example, start by explaining how you used json-rpc, e.g. which command exactly you used, which framework if aplicable. When listing steps, **don't just say what you did, but explain how you did it**. |
| 49 | +* **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). |
| 50 | +* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. |
| 51 | +* **Explain which behavior you expected to see instead and why.** |
| 52 | +* **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. You can use [this tool](http://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. |
| 53 | +* **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below. |
| 54 | + |
| 55 | +### Suggesting Enhancements |
| 56 | + |
| 57 | +This section guides you through submitting an enhancement suggestion for json-rpc, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion :pencil: and find related suggestions :mag_right:. |
| 58 | + |
| 59 | +When you are creating an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion). Fill in [the template](ISSUE_TEMPLATE.md), including the steps that you imagine you would take if the feature you're requesting existed. |
| 60 | + |
| 61 | +#### How Do I Submit A (Good) Enhancement Suggestion? |
| 62 | + |
| 63 | +Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue and provide the following information: |
| 64 | + |
| 65 | +* **Use a clear and descriptive title** for the issue to identify the suggestion. |
| 66 | +* **Provide a step-by-step description of the suggested enhancement** in as many details as possible. |
| 67 | +* **Provide specific examples to demonstrate the steps**. Include copy/pasteable snippets which you use in those examples, as [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). |
| 68 | +* **Describe the current behavior** and **explain which behavior you expected to see instead** and why. |
| 69 | +* **Include screenshots and animated GIFs** which help you demonstrate the steps. You can use [this tool](http://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. |
| 70 | + |
| 71 | +### Pull Requests |
| 72 | + |
| 73 | +* Fill in [the required template](PULL_REQUEST_TEMPLATE.md) |
| 74 | +* Do not include issue numbers in the PR title |
| 75 | +* Include screenshots and animated GIFs in your pull request whenever possible. |
| 76 | +* Document your code with [Napoleon style](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/) docstrings. |
| 77 | +* Add tests and ensure test regression. Pull request would not be accepted if it breaks the build. |
| 78 | +* End all files with a newline |
| 79 | +* Squash commits to logical units. If you fix commit "A" with commit "B", squash them into one and open pull request again. |
| 80 | +* Add you name to the end of [AUTHORS](AUTHORS) list. It approximately follows chronological order. |
| 81 | +* Make sure you use the same email for your commits. |
| 82 | + |
| 83 | +## Styleguides |
| 84 | + |
| 85 | +### Git Commit Messages |
| 86 | + |
| 87 | +* Use the present tense ("Add feature" not "Added feature") |
| 88 | +* Use the imperative mood ("Move cursor to..." not "Moves cursor to...") |
| 89 | +* Limit the first line to 72 characters or less |
| 90 | +* Reference issues and pull requests liberally after the first line |
| 91 | +* Consider starting the commit message with an applicable emoji: |
| 92 | + * :art: `:art:` when improving the format/structure of the code |
| 93 | + * :racehorse: `:racehorse:` when improving performance |
| 94 | + * :non-potable_water: `:non-potable_water:` when plugging memory leaks |
| 95 | + * :memo: `:memo:` when writing docs |
| 96 | + * :bug: `:bug:` when fixing a bug |
| 97 | + * :fire: `:fire:` when removing code or files |
| 98 | + * :green_heart: `:green_heart:` when fixing the CI build |
| 99 | + * :white_check_mark: `:white_check_mark:` when adding tests |
| 100 | + * :lock: `:lock:` when dealing with security |
| 101 | + * :shirt: `:shirt:` when removing linter warnings |
0 commit comments