1# Contributing to Testify
2
3So you'd like to contribute to Testify? First of all, thank you! Testify is widely used, so each
4contribution has a significant impact within the Golang community! Below you'll find everything you
5need to know to get up to speed on the project.
6
7## Philosophy
8
9The Testify maintainers generally attempt to follow widely accepted practices within the Golang
10community. That being said, the first priority is always to make sure that the package is useful to
11the community. A few general guidelines are listed here:
12
13*Keep it simple (whenever practical)* - Try not to expand the API unless the new surface area
14provides meaningful benefits. For example, don't add functions because they might be useful to
15someone, someday. Add what is useful to specific users, today.
16
17*Ease of use is paramount* - This means good documentation and package organization. It also means
18that we should try hard to use meaningful, descriptive function names, avoid breaking the API
19unnecessarily, and try not to surprise the user.
20
21*Quality isn't an afterthought* - Testify is a testing library, so it seems reasonable that we
22should have a decent test suite. This is doubly important because a bug in Testify doesn't just mean
23a bug in our users' code, it means a bug in our users' tests, which means a potentially unnoticed
24and hard-to-find bug in our users' code.
25
26## Pull Requests
27
28We welcome pull requests! Please include the following in the description:
29
30  * Motivation, why your change is important or helpful
31  * Example usage (if applicable)
32  * Whether you intend to add / change behavior or fix a bug
33
34Please be aware that the maintainers may ask for changes. This isn't a commentary on the quality of
35your idea or your code. Testify is the result of many contributions from many individuals, so we
36need to enforce certain practices and patterns to keep the package easy for others to understand.
37Essentially, we recognize that there are often many good ways to do a given thing, but we have to
38pick one and stick with it.
39
40See `MAINTAINERS.md` for a list of users who can approve / merge your changes.
41
42## Issues
43
44If you find a bug or think of a useful feature you'd like to see added to Testify, the best thing
45you can do is make the necessary changes and open a pull request (see above). If that isn't an
46option, or if you'd like to discuss your change before you write the code, open an issue!
47
48Please provide enough context in the issue description that other members of the community can
49easily understand what it is that you'd like to see.
50
51