# Contributing to pEEGy

Thanks for taking the time to contribute to pEEGy!

The following document is a set of guidelines for contributing to pEEGy hosted in [Gitlab](https://gitlab.com/jundurraga/peegy).
These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.

## Code of Conduct

This project and everyone participating in it is governed by the [pEEGy Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [jaime.undurraga@gmail.com](mailto:jaime.undurraga@gmail.com).

## How Can I Contribute?

### Reporting Bugs

This section provides a guideline for submitting a bug report. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.

At the moment of creating a bug report, please include as many details as possible.

#### Before Submitting A Bug Report

* Check if you can find the cause of the problem and fix things yourself. Next, generate a pull request with the solution.
* Check if you can reproduce the problem.

#### How Do I Submit A Bug Report?

Bugs are tracked as [pEEGy issues](https://gitlab.com/jundurraga/peegy/-/issues). Create an issue and provide the following information.

Explain the problem and include additional details to help maintainers reproduce the problem:

* **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. 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.**

### Suggesting Enhancements

When providing an enhancement suggestion for pEEGy (new features or minor improvements to existing functionality), please include as many details as possible.
This will help maintainers and the community understand your suggestion and find related suggestions.


### Pull Requests

1. Please create your own branch and develop your contributions there.
2. Once you have performed your modifications (a new feature or a fix), ensure to include a test script using your contribution.
This will allow to validate and ensure the quality of the code.
3. Describe the parameters of your modifications/contributions in a meaningful way so others can understand what it is, what it does, what it is needed, and how to use it.

### Git Commit Messages

* Use the present tense ("Add feature" not "Added feature")
* Use the imperative mood ("Plot waveform ..." not "Plots waveform...")
* Consider starting the commit message with an applicable text:
    * feat: when adding a new feature
    * fix: when fixing a bug
    * doc: When changing documentation
