# Contributions Guidelines

You are welcome to contribute to this project. Here are the guidelines we try to stick to in this project.


* [Questions or Problems](#questions-or-problems)
* [Filing an Issue](#filing-an-issue)
* [Triaging Issues](#triaging-issues)
* [Finding an Issue to Work On](#finding-an-issue-to-work-on)
* [Feature Requests](#feature-requests)
* [Development Environment setup](../docs/dev-env-setup.md)
* [Pull Request + Code Style Guidelines](../docs/pr-coding-guidelines.md)
* [Tests](../docs/tests.md)
* [Production Server Setup](../docs/prod-server.md)
* [Acknowledgements](#acknowledgements)

Please note that everyone interacting in our codebases, issue trackers, and any other form of communication, including chat rooms and mailing lists, is expected to follow our [code of conduct](https://github.com/webcompat/webcompat.com/blob/master/CODE_OF_CONDUCT.md) so we can all enjoy the effort we put into this project.

## Questions or Problems

If you have a question about the site or about web compatibility in general, feel free to join us in the #webcompat:mozilla.org channel on the Mozilla Matrix network. [Here's how to join](https://wiki.mozilla.org/Matrix#Connect_to_Matrix).

## Filing an Issue

If you're using webcompat.com and something is confusing, broken, or you think it could be done in a better way, please let us know. Issues are how the project moves forward&mdash;let us know what's bothering you.

* Search the [issues list](https://github.com/webcompat/webcompat.com/issues) for existing similar issues.  Consider adding to an existing issue if you find one.
* Choose a descriptive title.
* Provide a test, snippet of code or screenshot that illustrates the problem. This small gesture goes a long way towards getting a speedy fix.
* If you are able to, please always add a `type` label to the issue. If it fits, you also can add a `scope` and / or `language` label. Feel free to take a look at the [label list](https://github.com/webcompat/webcompat.com/labels) first.

## Triaging Issues

One way to contribute is to triage issues. This could be as simple as confirming a bug, or as complicated as debugging errors and providing fixes. A tiny bit of effort in someone else's issue can go a long way.

## Finding an Issue to Work On

The logic for the issue tracker is this -
* [*Milestones*](https://github.com/webcompat/webcompat.com/milestones) - just look for the current quarter.

Anything labeled ["status: good-first-bug"](https://github.com/webcompat/webcompat.com/labels/status:%20good%20first%20bug) is perfect for getting started!

There's also a `"prio: good-next-bug"` issue when you're ready to tackle something more complex or `"prio: important"` when you are an experienced open source contributor.

> Note: We do not recommend working on more than two `good-first-bugs`, just one when you are a first time contributor. Take it slow and your time to get into the projects' own flow.


## Feature Requests

You can request a new feature by [submitting an issue](#filing-an-issue) to our repo. If you would like to implement a new feature then consider what kind of change it is:

* **Major Changes** that you wish to contribute to the project should be discussed first in an issue so that we can better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project.
* **Small Changes** can be crafted and submitted as a Pull Request.


## Acknowledgements
A lot of this document was inspired directly by the excellent [Backbone.LayoutManager](https://github.com/tbranyen/backbone.layoutmanager/blob/master/CONTRIBUTING.md) and [Angular.js](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#issue) CONTRIBUTING files.
