|
| 1 | +# Contributors Guide |
| 2 | + |
| 3 | +Ghidra is an open source project. If you are interested in making it better, |
| 4 | +there are many ways you can contribute. For example, you can: |
| 5 | + |
| 6 | +- Submit a bug report |
| 7 | +- Suggest a new feature |
| 8 | +- Provide feedback by commenting on feature requests/proposals |
| 9 | +- Propose a patch by submitting a pull request |
| 10 | +- Suggest or submit documentation improvements |
| 11 | +- Review outstanding pull requests |
| 12 | +- Answer questions from other users |
| 13 | +- Share the software with other users who are interested |
| 14 | +- Teach others to use the software |
| 15 | +- Package and distribute the software in a downstream community (such as your |
| 16 | + preferred Linux distribution) |
| 17 | + |
| 18 | +Note: Contributing to the open source project is entirely voluntary, and does |
| 19 | +not create an employer-employee relationship between the U.S. Government and |
| 20 | +the contributor. |
| 21 | + |
| 22 | +## Bugs and Feature Requests |
| 23 | + |
| 24 | +If you believe that you have found a bug or wish to propose a new feature, |
| 25 | +please first search the existing [issues] to see if it has already been |
| 26 | +reported. If you are unable to find an existing issue, consider using one of |
| 27 | +the provided templates to create a new issue and provide as many details as you |
| 28 | +can to assist in reproducing the bug or explaining your proposed feature. |
| 29 | + |
| 30 | +## Patch Submission tips |
| 31 | + |
| 32 | +Patches should be submitted in the form of Pull Requests to the Ghidra |
| 33 | +[repository] on GitHub. But first, consider the following tips to ensure a |
| 34 | +smooth process when submitting a patch: |
| 35 | + |
| 36 | +- Ensure that the patch compiles and does not break any build-time tests |
| 37 | +- Be understanding, patient, and friendly; developers may need time to review |
| 38 | + your submissions before they can take action or respond. This does not mean |
| 39 | + your contribution is not valued. If your contribution has not received a |
| 40 | + response in a reasonable time, consider commenting with a polite inquiry for |
| 41 | + an update. |
| 42 | +- Limit your patches to the smallest reasonable change to achieve your intended |
| 43 | + goal. For example, do not make unnecessary indentation changes; but don't go |
| 44 | + out of your way to make the patch so minimal that it isn't easy to read, |
| 45 | + either. Consider the reviewer's perspective. |
| 46 | +- Before submission, please squash your commits to using a message that starts |
| 47 | + with the issue number and a description of the changes. |
| 48 | +- Isolate multiple patches from each other. If you wish to make several |
| 49 | + independent patches, do so in separate, smaller pull requests that can be |
| 50 | + reviewed more easily. |
| 51 | +- Be prepared to answer questions from reviewers. They may have further |
| 52 | + questions before accepting your patch, and may even propose changes. Please |
| 53 | + accept this feedback constructively, and not as a rejection of your proposed |
| 54 | + change. |
| 55 | + |
| 56 | +## Review |
| 57 | + |
| 58 | +- We welcome code reviews from anyone. A committer is required to formally |
| 59 | + accept and merge the changes. |
| 60 | +- Reviewers will be looking for things like threading issues, performance |
| 61 | + implications, API design, duplication of existing functionality, readability |
| 62 | + and code style, avoidance of bloat (scope-creep), etc. |
| 63 | +- Reviewers will likely ask questions to better understand your change. |
| 64 | +- Reviewers will make comments about changes to your patch: |
| 65 | + - MUST means that the change is required |
| 66 | + - SHOULD means that the change is suggested, further discussion on the |
| 67 | + subject may be required |
| 68 | + - COULD means that the change is optional |
| 69 | + |
| 70 | +[issues]: https://github.com/NationalSecurityAgency/ghidra/issues |
| 71 | +[repository]: https://github.com/NationalSecurityAgency/ghidra/ |
| 72 | + |
0 commit comments