|
| 1 | +Thank you for using RabbitMQ and for taking the time to contribute to the project. |
| 2 | +This document has two main parts: |
| 3 | + |
| 4 | + * when and how to file GitHub issues for RabbitMQ projects |
| 5 | + * how to submit pull requests |
| 6 | + |
| 7 | +They intend to save you and RabbitMQ maintainers some time, so please |
| 8 | +take a moment to read through them. |
| 9 | + |
1 | 10 | ## Overview
|
2 | 11 |
|
| 12 | +### GitHub issues |
| 13 | + |
| 14 | +The RabbitMQ team uses GitHub issues for _specific actionable items_ that |
| 15 | +engineers can work on. This assumes the following: |
| 16 | + |
| 17 | +* GitHub issues are not used for questions, investigations, root cause |
| 18 | + analysis, discussions of potential issues, etc (as defined by this team) |
| 19 | +* Enough information is provided by the reporter for maintainers to work with |
| 20 | + |
| 21 | +The team receives many questions through various venues every single |
| 22 | +day. Frequently, these questions do not include the necessary details |
| 23 | +the team needs to begin useful work. GitHub issues can very quickly |
| 24 | +turn into a something impossible to navigate and make sense |
| 25 | +of. Because of this, questions, investigations, root cause analysis, |
| 26 | +and discussions of potential features are all considered to be |
| 27 | +[mailing list][rmq-users] material. If you are unsure where to begin, |
| 28 | +the [RabbitMQ users mailing list][rmq-users] is the right place. |
| 29 | + |
| 30 | +Getting all the details necessary to reproduce an issue, make a |
| 31 | +conclusion or even form a hypothesis about what's happening can take a |
| 32 | +fair amount of time. Please help others help you by providing a way to |
| 33 | +reproduce the behavior you're observing, or at least sharing as much |
| 34 | +relevant information as possible on the [RabbitMQ users mailing |
| 35 | +list][rmq-users]. |
| 36 | + |
| 37 | +Please provide versions of the software used: |
| 38 | + |
| 39 | + * RabbitMQ server |
| 40 | + * Erlang |
| 41 | + * Operating system version (and distribution, if applicable) |
| 42 | + * All client libraries used |
| 43 | + * RabbitMQ plugins (if applicable) |
| 44 | + |
| 45 | +The following information greatly helps in investigating and reproducing issues: |
| 46 | + |
| 47 | + * RabbitMQ server logs |
| 48 | + * A code example or terminal transcript that can be used to reproduce |
| 49 | + * Full exception stack traces (a single line message is not enough!) |
| 50 | + * `rabbitmqctl report` and `rabbitmqctl environment` output |
| 51 | + * Other relevant details about the environment and workload, e.g. a traffic capture |
| 52 | + * Feel free to edit out hostnames and other potentially sensitive information. |
| 53 | + |
| 54 | +To make collecting much of this and other environment information, use |
| 55 | +the [`rabbitmq-collect-env`][rmq-collect-env] script. It will produce an archive with |
| 56 | +server logs, operating system logs, output of certain diagnostics commands and so on. |
| 57 | +Please note that **no effort is made to scrub any information that may be sensitive**. |
| 58 | + |
| 59 | +### Pull Requests |
| 60 | + |
3 | 61 | RabbitMQ projects use pull requests to discuss, collaborate on and accept code contributions.
|
4 | 62 | Pull requests is the primary place of discussing code changes.
|
5 | 63 |
|
6 |
| -## How to Contribute |
7 |
| - |
8 |
| -The process is fairly standard: |
| 64 | +Here's the recommended workflow: |
9 | 65 |
|
10 |
| - * Fork the repository or repositories you plan on contributing to |
11 |
| - * Clone [RabbitMQ umbrella repository](https://github.com/rabbitmq/rabbitmq-public-umbrella) |
12 |
| - * `cd umbrella`, `make co` |
| 66 | + * [Fork the repository][github-fork] or repositories you plan on contributing to. If multiple |
| 67 | + repositories are involved in addressing the same issue, please use the same branch name |
| 68 | + in each repository |
13 | 69 | * Create a branch with a descriptive name in the relevant repositories
|
14 |
| - * Make your changes, run tests, commit with a [descriptive message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html), push to your fork |
| 70 | + * Make your changes, run tests (usually with `make tests`), commit with a |
| 71 | + [descriptive message][git-commit-msgs], push to your fork |
15 | 72 | * Submit pull requests with an explanation what has been changed and **why**
|
16 |
| - * Submit a filled out and signed [Contributor Agreement](https://github.com/rabbitmq/ca#how-to-submit) if needed (see below) |
| 73 | + * Submit a filled out and signed [Contributor Agreement][ca-agreement] if needed (see below) |
17 | 74 | * Be patient. We will get to your pull request eventually
|
18 | 75 |
|
19 |
| -If what you are going to work on is a substantial change, please first ask the core team |
20 |
| -of their opinion on [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users). |
21 |
| - |
| 76 | +If what you are going to work on is a substantial change, please first |
| 77 | +ask the core team for their opinion on the [RabbitMQ users mailing list][rmq-users]. |
22 | 78 |
|
23 | 79 | ## Code of Conduct
|
24 | 80 |
|
25 | 81 | See [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md).
|
26 | 82 |
|
27 |
| - |
28 | 83 | ## Contributor Agreement
|
29 | 84 |
|
30 |
| -If you want to contribute a non-trivial change, please submit a signed copy of our |
31 |
| -[Contributor Agreement](https://github.com/rabbitmq/ca#how-to-submit) around the time |
32 |
| -you submit your pull request. This will make it much easier (in some cases, possible) |
33 |
| -for the RabbitMQ team at Pivotal to merge your contribution. |
34 |
| - |
| 85 | +If you want to contribute a non-trivial change, please submit a signed |
| 86 | +copy of our [Contributor Agreement][ca-agreement] around the time you |
| 87 | +submit your pull request. This will make it much easier (in some |
| 88 | +cases, possible) for the RabbitMQ team at Pivotal to merge your |
| 89 | +contribution. |
35 | 90 |
|
36 | 91 | ## Where to Ask Questions
|
37 | 92 |
|
38 |
| -If something isn't clear, feel free to ask on our [mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users). |
| 93 | +If something isn't clear, feel free to ask on our [mailing list][rmq-users]. |
| 94 | + |
| 95 | +[rmq-collect-env]: https://github.com/rabbitmq/support-tools/blob/master/scripts/rabbitmq-collect-env |
| 96 | +[git-commit-msgs]: https://goo.gl/xwWq |
| 97 | +[rmq-users]: https://groups.google.com/forum/#!forum/rabbitmq-users |
| 98 | +[ca-agreement]: https://cla.pivotal.io/sign/rabbitmq |
| 99 | +[github-fork]: https://help.github.com/articles/fork-a-repo/ |
0 commit comments