Thank you for your interest in contributing. We welcome bug reports, feature suggestions and pull requests.
Search the existing issues before logging a new one.
Some search tips:
- Don't restrict your search to only open issues. An issue with a title similar to yours may have been closed as a duplicate of one with a less-findable title.
- Search for the title of the issue you're about to log. This sounds obvious but 80% of the time this is sufficient to find a duplicate when one exists.
- Read more than the first page of results. Many bugs here use the same words so relevancy sorting is not particularly strong.
- If you have a crash, search for the first few topmost function names shown in the call stack.
When logging a bug, please be sure to include the following:
- What version of the package/plugin are you using
- If at all possible, an isolated way to reproduce the behavior
- The behavior you expect to see, and the actual behavior
We also accept suggestions in the issue tracker. Be sure to search first.
In general, things we find useful when reviewing suggestions are:
- A description of the problem you're trying to solve
- An overview of the suggested solution
- Examples of how the suggestion would work in various places
- Code examples showing e.g. "this would be an error, this wouldn't"
- Code examples showing usage (if possible)
- If relevant, precedent in other frameworks or libraries can be useful for establishing context and expected behavior
- A bug or feature you want to work on!
- A GitHub account.
- A working copy of the code.
Your pull request should:
-
Include a description of what your change intends to do
-
Be based on reasonably recent commit in the main branch
-
Include adequate tests
- At least one test should fail in the absence of your non-test code changes. If your PR does not match this criteria, please specify why
- Tests should include reasonable permutations of the target fix/change
- Include baseline changes with your change
-
Contain proper semantic commit messages as follows:
<type>[<scope>]: (<issue #>) <short summary> │ │ | │ | | | └─> Summary in present tense. Not capitalized. No period at the end. | | | │ │ └─> Issue # (optional): Issue number if related to bug database. │ │ │ └─> Scope (optional): eg. common, compiler, authentication, core │ └─> Type: chore, docs, feat, fix, refactor, style, or test.
-
To avoid line ending issues, set
autocrlf = input
andwhitespace = cr-at-eol
in your git configuration