95 lines
3.2 KiB
Markdown
95 lines
3.2 KiB
Markdown
# Contributing to PINA
|
||
|
||
First off, thanks for taking the time to contribute to **PINA**! 🎉 Your help makes the project better for everyone. This document outlines the process for contributing, reporting issues, suggesting features, and submitting pull requests.
|
||
|
||
---
|
||
|
||
## Table of Contents
|
||
|
||
1. [How to Contribute](#how-to-contribute)
|
||
2. [Reporting Bugs](#reporting-bugs)
|
||
3. [Suggesting Enhancements](#suggesting-enhancements)
|
||
4. [Pull Request Process](#pull-request-process)
|
||
5. [Code Style & Guidelines](#code-style--guidelines)
|
||
6. [Community Standards](#community-standards)
|
||
|
||
---
|
||
|
||
## How to Contribute
|
||
|
||
You can contribute in several ways:
|
||
- Reporting bugs
|
||
- Suggesting features/enhancements
|
||
- Submitting fixes or improvements via Pull Requests (PRs)
|
||
- Improving documentation
|
||
|
||
We encourage all contributions, big or small!
|
||
|
||
---
|
||
|
||
## Reporting Bugs
|
||
|
||
If you find a bug, please open an [issue](https://github.com/mathLab/PINA/issues) and include:
|
||
- A clear and descriptive title
|
||
- Steps to reproduce the problem
|
||
- What you expected to happen
|
||
- What actually happened
|
||
- Any relevant logs, screenshots, or error messages
|
||
- Environment info (OS, Python version, dependencies, etc.)
|
||
|
||
---
|
||
|
||
## Suggesting Enhancements
|
||
|
||
We welcome new ideas! If you have an idea to improve PINA:
|
||
1. Check the [issue tracker](https://github.com/mathLab/PINA/issues) or the [discussions](https://github.com/mathLab/PINA/discussions) to see if someone has already suggested it.
|
||
2. If not, open a new issue describing:
|
||
- The enhancement you'd like
|
||
- Why it would be useful
|
||
- Any ideas on how to implement it (optional but helpful)
|
||
3. If you are not sure about (something of) the enhancement, we suggest to open a discussion to collaborate on it with the PINA community
|
||
|
||
---
|
||
|
||
## Pull Request Process
|
||
|
||
Before submitting a PR:
|
||
|
||
1. Ensure there’s an open issue related to your contribution (or create one).
|
||
2. [Fork](https://help.github.com/articles/fork-a-repo) the repository and create a new branch from `master`:
|
||
```bash
|
||
git checkout -b feature/my-feature
|
||
```
|
||
3. Make your changes:
|
||
- Write clear, concise, and well-documented code
|
||
- Add or update tests where appropriate
|
||
- Update documentation if necessary
|
||
4. Verify your changes by running tests:
|
||
```bash
|
||
pytest
|
||
```
|
||
5. Properly format your code. If you want save time, simply run:
|
||
```bash
|
||
bash code_formatter.sh
|
||
```
|
||
7. Submit a [pull request](https://help.github.com/articles/creating-a-pull-request) with a clear explanation of your changes and reference the related issue if applicable.
|
||
|
||
### Pull Request Checklist
|
||
- [ ] Code follows the project’s style guidelines
|
||
- [ ] Tests have been added or updated
|
||
- [ ] Documentation has been updated if necessary
|
||
- [ ] Pull request is linked to an open issue (if applicable)
|
||
|
||
---
|
||
|
||
## Code Style & Guidelines
|
||
- Follow PEP8 for Python code.
|
||
- Use descriptive commit messages (e.g. `Fix parser crash on empty input`).
|
||
- Write clear docstrings for public classes, methods, and functions.
|
||
- Keep functions small and focused; do one thing and do it well.
|
||
|
||
---
|
||
|
||
## Community Standards
|
||
By participating in this project, you agree to abide by our Code of Conduct. We are committed to maintaining a welcoming and inclusive community.
|