✨ Thanks for contributing to AVA! ✨
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Translations: Español, Français, Italiano, 日本語, Português, Русский, 简体中文
As a user of AVA you're the perfect candidate to help us improve our documentation. Typo corrections, error fixes, better explanations, more examples, etc. Open issues for things that could be improved. Help translate our docs. Anything. Even improvements to this document.
Use the scope:documentation
label to find suggestions for what we'd love to see more documentation on.
Some issues are created with missing information, not reproducible, or plain invalid. Help make them easier to resolve. Handling issues takes a lot of time that we could rather spend on fixing bugs and adding features.
We're always looking for more opinions on discussions in the issue tracker. It's a good opportunity to influence the future direction of AVA.
The needs triage
and question
labels are a good place to find ongoing discussions.
You can use issue labels to discover issues you could help out with:
blocked
issues need help getting unstuckbug
issues are known bugs we'd like to fixenhancement
issues are features we're open to includingperformance
issues track ideas on how to improve AVA's performance
The help wanted
and good for beginner
labels are especially useful.
You may find an issue is assigned. Please double-check before starting on this issue because somebody else is likely already working on it.
We'd like to fix priority
issues first. We'd love to see progress on low-priority
issues too. future
issues are those that we'd like to get to, but not anytime soon. Please check before working on these since we may not yet want to take on the burden of supporting those features.
Read on for tips on contributing code.
We're using GitHub Discussions. Jump in there and lurk, talk to us, and help others.
Once you find an issue you'd like to work on leave a comment so others are aware. We'll then assign you to the issue.
Of course you can work on things that do not yet have an issue. However if you're going to be putting in a lot of effort it's best to discuss it first.
When you're ready to get feedback on your work, open a draft pull request. It's fine if the work's not yet done, but please do let us know what's remaining. This lets reviewers know not to nit-pick small details or point out improvements you already know you need to make.
Reviewing large pull requests can take a lot of time. Time that may not always be available. Smaller pull requests may land more quickly. If you're introducing a new feature think about how it might be broken up. It's OK to land features as opt-in experiments. These require less documentation and test coverage.
Try and avoid making breaking changes. Those take more time to ship. Instead make the new behavior opt-in. This way your feature can ship, and you can use it, on its own schedule.
Non-experimental features should be accompanied with tests and documentation.
Don't include unrelated changes in your pull request. Make sure tests pass on your machine by running npm test
. You can run specific test files as well using npx tap test-tap/{file}.js
or npx test-ava test/{file}.js
.
When you make a pull request please use a clear and descriptive title. Be specific about what's changed and why.
Please make sure the Allow edits from maintainers box is checked. That way we can make certain minor changes ourselves, allowing your pull request to be merged sooner.
You might be asked to make changes to your pull request. There's never a need to open another pull request. Push more commits to your existing branch. We'll squash them when we merge the PR.
Dependencies are managed using npm
. Only update dependencies when needed for your pull request. Don't rebuild the lockfile.
And finally, have fun!