mirror of https://github.com/stretchr/testify.git
51 lines
2.5 KiB
Markdown
51 lines
2.5 KiB
Markdown
# Contributing to Testify
|
|
|
|
So you'd like to contribute to Testify? First of all, thank you! Testify is widely used, so each
|
|
contribution has a significant impact within the Golang community! Below you'll find everything you
|
|
need to know to get up to speed on the project.
|
|
|
|
## Philosophy
|
|
|
|
The Testify maintainers generally attempt to follow widely accepted practices within the Golang
|
|
community. That being said, the first priority is always to make sure that the package is useful to
|
|
the community. A few general guidelines are listed here:
|
|
|
|
*Keep it simple (whenever practical)* - Try not to expand the API unless the new surface area
|
|
provides meaningful benefits. For example, don't add functions because they might be useful to
|
|
someone, someday. Add what is useful to specific users, today.
|
|
|
|
*Ease of use is paramount* - This means good documentation and package organization. It also means
|
|
that we should try hard to use meaningful, descriptive function names, avoid breaking the API
|
|
unnecessarily, and try not to surprise the user.
|
|
|
|
*Quality isn't an afterthought* - Testify is a testing library, so it seems reasonable that we
|
|
should have a decent test suite. This is doubly important because a bug in Testify doesn't just mean
|
|
a bug in our users' code, it means a bug in our users' tests, which means a potentially unnoticed
|
|
and hard-to-find bug in our users' code.
|
|
|
|
## Pull Requests
|
|
|
|
We welcome pull requests! Please include the following in the description:
|
|
|
|
* Motivation, why your change is important or helpful
|
|
* Example usage (if applicable)
|
|
* Whether you intend to add / change behavior or fix a bug
|
|
|
|
Please be aware that the maintainers may ask for changes. This isn't a commentary on the quality of
|
|
your idea or your code. Testify is the result of many contributions from many individuals, so we
|
|
need to enforce certain practices and patterns to keep the package easy for others to understand.
|
|
Essentially, we recognize that there are often many good ways to do a given thing, but we have to
|
|
pick one and stick with it.
|
|
|
|
See `MAINTAINERS.md` for a list of users who can approve / merge your changes.
|
|
|
|
## Issues
|
|
|
|
If you find a bug or think of a useful feature you'd like to see added to Testify, the best thing
|
|
you can do is make the necessary changes and open a pull request (see above). If that isn't an
|
|
option, or if you'd like to discuss your change before you write the code, open an issue!
|
|
|
|
Please provide enough context in the issue description that other members of the community can
|
|
easily understand what it is that you'd like to see.
|
|
|