# Contributing

Contributors can open issues or create pull requests.

## Issues

Contributors can open new issues on the GitHub repository [here](https://github.com/autotwin/automesh/issues). An issue can either report an existing bug, or request a new feature. Contributors should ensure that their candidate issue does not match an existing open issue before opening it. If a closely-related but incomplete open issue exists, contributors should comment on the existing open issue.

### Bug Reports

A new bug report can be opened [here](https://github.com/autotwin/automesh/issues/new?template=bug_report.md).

### Feature Requests

A new feature request can be opened [here](https://github.com/autotwin/automesh/issues/new?template=feature_request.md). Feature requests that are deemed feasible will be considered by the developers, and could even be addressed by a contributor through a pull request. Feature requests that are deemed infeasible will likely be denied.

## Pull Requests

Contributors can propose changes to the code in the repository by creating a pull request as follows:

- Fork the base repository [here](https://github.com/autotwin/automesh/fork).
- Clone the forked repository, make changes, and push them back to the fork.
- Create a pull request between the base and forked repositories [here](https://github.com/autotwin/automesh/pulls).
- Wait for the pull request to be either approved or dismissed. Approval and subsequent merging of pull requests is contingent upon:

  - The tests are all passing, resulting in a high (desirably, complete) code coverage, and any changes are properly tested.
  - The documentation is successfully built, and any changes are properly documented.
  - The changes provide an appropriate and substantial improvement to the repository.
