# Contributing to rapidtide

Welcome to the rapidtide repository! We're excited you're here and want to contribute.  

These guidelines are designed to make it as easy as possible to get involved. If you have any questions that aren't discussed below, please let us know by opening an [issue][link_issues]!

Before you start you'll need to set up a free [GitHub][link_github] account and sign in. Here are some [instructions][link_signupinstructions].

Already know what you're looking for in this guide? Jump to the following sections:
* [Joining the conversation](#joining-the-conversation)
* [Understanding issue labels](#issue-labels)
* [Making a change](#making-a-change)
* [Recognizing contributions](#recognizing-contributions)

## Joining the conversation

`rapidtide` is a young project maintained by a growing group of enthusiastic developers&mdash; and we're excited to have you join! Most of our discussions will take place on open [issues][link_issues].

As a reminder, we expect all contributions to `rapidtide` to adhere to our [code of conduct][link_coc].

### Issue labels

The current list of labels are [here][link_labels] and include:

* [![Help Wanted](https://img.shields.io/badge/-help%20wanted-159818.svg)][link_helpwanted] *These issues contain a task that a member of the team has determined we need additional help with.*

    If you feel that you can contribute to one of these issues, we especially encourage you to do so!

* [![Bugs](https://img.shields.io/badge/-bugs-fc2929.svg)][link_bugs] *These issues point to problems in the project.*

    If you find new a bug, please give as much detail as possible in your issue, including steps to recreate the error.
    If you experience the same bug as one already listed, please add any additional information that you have as a comment.

* [![Enhancement](https://img.shields.io/badge/-enhancement-84b6eb.svg)][link_enhancement] *These issues are asking for enhancements to be added to the project.*

    Please try to make sure that your enhancement is distinct from any others that have already been requested or implemented. If you find one that's similar but there are subtle differences please reference the other request in your issue.

## Making a change

We appreciate all contributions to rapidtide, but those accepted fastest will follow a workflow similar to the following:

**1. Comment on an existing issue or open a new issue referencing your addition.**

This allows other members of the rapidtide development team to confirm that you aren't overlapping with work that's currently underway and that everyone is on the same page with the goal of the work you're going to carry out.

[This blog][link_pushpullblog] is a nice explanation of why putting this work in up front is so useful to everyone involved.

**2. [Fork][link_fork] the [rapidtide repository][link_rapidtide] to your profile.**

This is now your own unique copy of rapidtide. Changes here won't effect anyone else's work, so it's a safe space to explore edits to the code!

Make sure to [keep your fork up to date][link_updateupstreamwiki] with the master repository.

**3. Make the changes you've discussed.**

Try to keep the changes focused. We've found that working on a [new branch][link_branches] makes it easier to keep your changes targeted.

When you're creating your pull request, please make sure to review the rapidtide [style conventions][link_styleguide].

**4. Submit a [pull request][link_pullrequest].**

A member of the development team will review your changes to confirm that they can be merged into the main codebase.

## Recognizing contributions

We welcome and recognize all contributions from documentation to testing to code development.
You can see a list of current contributors in the [contributors tab][link_contributors].

## Thank you!

You're awesome. :wave::smiley:

<br>

*&mdash; Based on contributing guidelines from the [tedana][link_tedana] project, which in turn are based on guidelines from the [STEMMRoleModels][link_stemmrolemodels] project.*

[link_github]: https://github.com/
[link_rapidtide]: https://github.com/bbfrederick/rapidtide
[link_signupinstructions]: https://help.github.com/articles/signing-up-for-a-new-github-account
[link_react]: https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments
[link_issues]: https://github.com/bbfrederick/rapidtide/issues
[link_coc]: https://github.com/bbfrederick/rapidtide/blob/master/CODE_OF_CONDUCT.md
[link_labels]: https://github.com/bbfrederick/rapidtide/labels
[link_discussingissues]: https://help.github.com/articles/discussing-projects-in-issues-and-pull-requests

[link_bugs]: https://github.com/bbfrederick/rapidtide/labels/bug
[link_helpwanted]: https://github.com/bbfrederick/rapidtide/labels/help%20wanted
[link_enhancement]: https://github.com/bbfrederick/rapidtide/labels/enhancement

[link_pullrequest]: https://help.github.com/articles/creating-a-pull-request/
[link_fork]: https://help.github.com/articles/fork-a-repo/
[link_pushpullblog]: https://www.igvita.com/2011/12/19/dont-push-your-pull-requests/
[link_branches]: https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/
[link_styleguide]: http://rapidtide.readthedocs.io/en/latest/contributing.html
[link_updateupstreamwiki]: https://help.github.com/articles/syncing-a-fork/
[link_contributors]: https://github.com/bbfrederick/rapidtide/graphs/contributors
[link_tedana]: https://github.com/ME-ICA/tedana
[link_stemmrolemodels]: https://github.com/KirstieJane/STEMMRoleModels
