# Contributing to Mass Action Scheduler

:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:

The following is a set of guidelines for contributing to Mass Action Scheduler and its packages,
which are hosted in the [Salesforce Mass Action Scheduler](https://github.com/sfdx-mass-action-scheduler) organization on GitHub.

## Table of Contents

[Code of Conduct](#code-of-conduct)

[How Can I Contribute?](#how-can-i-contribute)
  * [Reporting Bugs](#reporting-bugs)
  * [Suggesting Enhancements](#suggesting-enhancements)
  * [Pull Requests](#pull-requests)

[Styleguides](#styleguides)

[Additional Notes](#additional-notes)


## Code of Conduct

This project and everyone participating in it is governed by the [Code of Conduct](CODE_OF_CONDUCT.md).
By participating, you are expected to uphold this code.


## How Can I Contribute?

### Reporting Bugs

This section guides you through submitting a bug report for Mass Action Scheduler.
Following these guidelines helps maintainers and the community understand your report :pencil:, reproduce the behavior :computer: :computer:, and find related reports :mag_right:.

Before creating bug reports, please check [this list](#before-submitting-a-bug-report) as you might find out that you don't need to create one.

When you are creating a bug report, please include as many details as possible.
Fill out [the template](.github/ISSUE_TEMPLATE/BUG_REPORT.md), the information it asks for helps us resolve issues faster.

> **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.

#### Before Submitting A Bug Report

* Read the [wiki](https://github.com/sfdx-mass-action-scheduler/sfdx-mass-action-scheduler/wiki) for documentation and usage.
* Check the [FAQ](https://github.com/sfdx-mass-action-scheduler/sfdx-mass-action-scheduler/wiki/Frequently-Asked-Questions). Your question might already be answered.
* Review conversations in the [community group](https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F93A000000LhvN). Your issue might already have been discussed.
* Perform a [cursory search](https://github.com/search?utf8=%E2%9C%93&q=repo%3Asfdx-mass-action-scheduler%2Fsfdx-mass-action-scheduler&type=issues) to see if the problem has already been reported. If it has **and the issue is still open**, add a comment to the existing issue instead of opening a new one.

#### How Do I Submit A (Good) Bug Report?

Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/).

* **Use a clear and descriptive title** for the issue to identify the problem.
* **Describe the exact steps which reproduce the problem** in as many details as possible. For example, when listing steps, **don't just say what you did, but explain how you did it**.
* **Provide specific examples to demonstrate the steps**.
* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
* **Explain which behavior you expected to see instead and why.**
* **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem.
* **Include any error messages and information from Mass Action Logs.**

### Suggesting Enhancements

This section guides you through submitting an enhancement suggestion for Mass Action Scheduler,
including completely new features and minor improvements to existing functionality.
Following these guidelines helps maintainers and the community understand your suggestion :pencil: and find related suggestions :mag_right:.

Before creating enhancement suggestions, please check [this list](#before-submitting-an-enhancement-suggestion) as you might find out that you don't need to create one.

When you are creating an enhancement suggestion, please include as many details as possible.
Fill out [the template](.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md), including how you imagine you would use the requested feature.

#### Before Submitting An Enhancement Suggestion

* Read the [wiki](https://github.com/sfdx-mass-action-scheduler/sfdx-mass-action-scheduler/wiki) for documentation and usage. The feature might already exist.
* Perform a [cursory search](https://github.com/sfdx-mass-action-scheduler/sfdx-mass-action-scheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22enhancement+%E2%9C%A8%22) to see if the enhancement has already been requested. If it has **and the request is still open**, add a comment to the existing request instead of opening a new one.

#### How Do I Submit A (Good) Enhancement Suggestion?

Enhancements are tracked as [GitHub issues](https://guides.github.com/features/issues/).

* **Use a clear and descriptive title** for the issue to identify the suggestion.
* **Provide a step-by-step description** of the suggested enhancement in as many details as possible.
* **Describe the current behavior** and **explain which behavior you expected to see instead** and why.
* **Explain why this enhancement would be useful.**
* **Include screenshots and animated GIFs** which help you demonstrate the steps or point out the part of Mass Action Scheduler which the suggestion is related to.
* **Specify which version of Mass Action Scheduler you're using.** Determine the version number by going to Setup, search for `Installed` in the Quick Find box, then click **Installed Packages**.

### Pull Requests

Please follow these steps to have your contribution considered by the maintainers. We follow the [GitHub Flow](https://guides.github.com/introduction/flow/) to submit pull requests from feature branches from forks of this project.

1. Fork the repo
    * https://github.com/sfdx-mass-action-scheduler/sfdx-mass-action-scheduler
2. Check out a new branch and name it to what you intend to do
    * Use one branch per fix / feature
3. Commit your changes
    * Follow the [styleguides](#styleguides)
    * Provide a git message that explains what you've done
    * Commit to your forked repository
4. Push to the branch of your forked repository
5. Make a pull request to the main repository
    * Follow all instructions in the [template](.github/PULL_REQUEST_TEMPLATE.md)

While the prerequisites above must be satisfied prior to having your pull request reviewed,
the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.


## Styleguides

Follow the coding convention and standards of the code in the project.


## Additional Notes

### Issue and Pull Request Labels

Labels help us track and manage issues and pull requests.
Refer to the full list of labels and their descriptions [here](https://github.com/sfdx-mass-action-scheduler/sfdx-mass-action-scheduler/labels).

[GitHub search](https://help.github.com/articles/searching-issues/) makes it easy to use labels for finding groups of issues or pull requests you're interested in.
We encourage you to read about [other search filters](https://help.github.com/articles/searching-issues/) which will help you write more focused queries.

