# Contributing to GRAPEVNE

Thank you for your interest in contributing to GRAPEVNE. There are many ways in which you can contribute, beyond writing code. The goal of this document is to provide a high-level overview of how you can get involved.

## Asking Questions

Have a question? Check out our [Q&A board](https://github.com/kraemer-lab/GRAPEVNE/discussions/categories/q-a), it may have already been answered! Answer not there? Ask a new question and a member of the community will be only too happy to answer it for you!

## Providing Feedback

Your comments and feedback are welcome. Have an idea for a new feature? Propose it in our [Ideas board](https://github.com/kraemer-lab/GRAPEVNE/discussions/categories/ideas). Have a [general query](https://github.com/kraemer-lab/GRAPEVNE/discussions/categories/general), or simply want to [show and tell](https://github.com/kraemer-lab/GRAPEVNE/discussions/categories/show-and-tell) some of your amazing GRAPEVNE workflows? Check out our [discussion boards](https://github.com/kraemer-lab/GRAPEVNE/discussions) for all of the above.

## Reporting Issues

Have you identified a reproducible problem in GRAPEVNE? We want to hear about it! Here's how you can make reporting your issue as effective as possible.

### Look For an Existing Issue

Before you create a new issue, please do a search in [open issues](https://github.com/kraemer-lab/GRAPEVNE/issues) to see if the issue (or feature request) has already been filed. Be sure to scan through our [most popular](https://github.com/kraemer-lab/GRAPEVNE/discussions/categories/ideas?discussions_q=is%3Aopen+category%3AIdeas+sort%3Atop) Ideas for feature request proposals.

If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments). Use a reaction in place of a "+1" comment:

- 👍 - upvote
- 👎 - downvote

If you cannot find an existing issue that describes your bug or feature, create a new issue using the guidelines below.

### Writing Good Bug Reports and Feature Requests

File a single issue per problem or feature request. Do not enumerate multiple bugs or feature requests in the same issue.

Do not add your issue as a comment to an existing issue unless it's for the identical input. Many issues look similar, but have different causes.

The more information you can provide, the more likely someone will be successful at reproducing the issue and finding a fix.

Please include the following with each issue:

- Version of GRAPEVNE

- Your operating system

- Reproducible steps (1... 2... 3...) that cause the issue

- What you expected to see, versus what you actually saw

- Any images, animations, or a link to a video showing the issue occurring

- A link to any modules (and module repositories) used to create the issue

- Any errors generated by GRAPEVNE, such as a copy of the Log report.

If you have time, consider checking out this short article on [How to Write a Good Issue](https://dev.to/opensauced/how-to-write-a-good-issue-tips-for-effective-communication-in-open-source-5443).

### Final Checklist

Please remember to do the following:

- [ ] Search the issue repository to ensure your report is a new issue

- [ ] Provide the series of steps necessary to recreate the issue after starting GRAPEVNE

- [ ] Simplify these steps as far as possible to better isolate the problem

Don't worry if the developers can't reproduce the issue right away. They will simply ask for more information!

## Contributing Fixes

If you are interested in writing code to fix issues, please see our
[contributing guide for developers](https://github.com/kraemer-lab/GRAPEVNE/tree/main/dev).
