82 lines
1.9 KiB
Markdown
82 lines
1.9 KiB
Markdown
# Contributing to Suthing
|
|
|
|
We welcome contributions to Suthing! This document provides guidelines and instructions for contributing to the project.
|
|
|
|
## Getting Started
|
|
|
|
1. Fork the repository on GitHub
|
|
2. Clone your fork locally
|
|
3. Install the development dependencies:
|
|
```bash
|
|
uv sync --all-groups --extra doc-processing
|
|
```
|
|
4. Install pre-commit hooks:
|
|
```bash
|
|
pre-commit install
|
|
```
|
|
|
|
## Development Workflow
|
|
|
|
1. Create a new branch for your feature or bugfix:
|
|
```bash
|
|
git checkout -b feature/your-feature-name
|
|
```
|
|
|
|
2. Make your changes and ensure tests pass:
|
|
```bash
|
|
pytest test
|
|
```
|
|
|
|
3. Commit your changes with a descriptive message:
|
|
```bash
|
|
git commit -m "Add feature: your feature description"
|
|
```
|
|
|
|
4. Push your branch to your fork:
|
|
```bash
|
|
git push origin feature/your-feature-name
|
|
```
|
|
|
|
5. Create a Pull Request on GitHub
|
|
|
|
## Code Style
|
|
|
|
- Follow [PEP 8](https://www.python.org/dev/peps/pep-0008/) style guidelines
|
|
- Use type hints for all function parameters and return values
|
|
- Write docstrings following the Google style
|
|
- Keep functions focused and small
|
|
- Add tests for new features
|
|
|
|
## Documentation
|
|
|
|
- Update relevant documentation when adding new features
|
|
- Add docstrings to all new functions and classes
|
|
- Include examples in docstrings where appropriate
|
|
- Update the changelog for significant changes
|
|
|
|
## Testing
|
|
|
|
- Write tests for all new features
|
|
- Ensure all tests pass before submitting a PR
|
|
- Add tests for bug fixes
|
|
- Maintain or improve test coverage
|
|
|
|
## Pull Request Process
|
|
|
|
1. Ensure your PR description clearly describes the problem and solution
|
|
2. Include relevant tests
|
|
3. Update documentation as needed
|
|
4. Ensure all CI checks pass
|
|
5. Request review from maintainers
|
|
|
|
## Reporting Issues
|
|
|
|
When reporting issues, please include:
|
|
|
|
- Python version
|
|
- Suthing version
|
|
- Steps to reproduce
|
|
- Expected behavior
|
|
- Actual behavior
|
|
- Any relevant error messages
|