Skip to content

Contributing

Thank you for considering contributing to tonie-podcast-sync! This project welcomes contributions from everyone.

How to Contribute

Reporting Bugs

If you find a bug, please open an issue with:

  • A clear description of the problem
  • Steps to reproduce the issue
  • Expected behavior vs. actual behavior
  • Your environment (OS, Python version, etc.)
  • Relevant logs or error messages

Suggesting Features

Feature requests are welcome! Please open an issue describing:

  • The feature you'd like to see
  • Why it would be useful
  • Any implementation ideas you have

Code Contributions

  1. Fork the repository on GitHub
  2. Clone your fork locally

    git clone https://github.com/your-username/tonie-podcast-sync.git
    cd tonie-podcast-sync
    

  3. Create a feature branch

    git checkout -b feature/my-new-feature
    

  4. Install development dependencies

    pip install -e ".[dev]"
    

  5. Make your changes

  6. Write clear, documented code
  7. Follow the existing code style (Ruff is used for linting)
  8. Add tests for new functionality

  9. Run tests and linting

    pytest
    ruff check .
    

  10. Commit your changes

    git add .
    git commit -m "Add feature: description of feature"
    

  11. Push to your fork

    git push origin feature/my-new-feature
    

  12. Open a Pull Request on GitHub

Development Setup

Prerequisites

  • Python >= 3.10.11
  • ffmpeg (for testing volume adjustment features)

Install Development Environment

# Clone the repository
git clone https://github.com/alexhartm/tonie-podcast-sync.git
cd tonie-podcast-sync

# Install with development dependencies
pip install -e ".[dev]"

# Install pre-commit hooks (optional but recommended)
pre-commit install

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=tonie_podcast_sync

# Run specific test file
pytest tests/test_specific.py

Code Style

This project uses Ruff for linting and formatting:

# Check code style
ruff check .

# Auto-fix issues
ruff check --fix .

# Format code
ruff format .

Code Review Process

All contributions go through code review:

  1. A maintainer will review your pull request
  2. They may request changes or ask questions
  3. Once approved, your changes will be merged
  4. You'll be added to the contributors list!

Recognition

Contributors are recognized using the all-contributors specification.

After your first contribution, comment on your PR with:

@all-contributors please add @your-username for code

Replace code with your contribution type (code, docs, bug reports, ideas, etc.).

Current Contributors

Alexander Hartmann
Alexander Hartmann

๐Ÿ’ป ๐Ÿค” ๐Ÿšง
Wilhelmsson177
Wilhelmsson177

๐Ÿ’ป ๐Ÿค” ๐Ÿšง โš ๏ธ
Malte Bรคr
Malte Bรคr

๐Ÿ›
Valentin v. Seggern
Valentin v. Seggern

๐Ÿ’ป
stefan14808
stefan14808

๐Ÿ’ป ๐Ÿค”
GoldBrickLemon
GoldBrickLemon

๐Ÿ› ๐Ÿ’ป

Acknowledgments

This project builds upon:

Questions?

Feel free to ask questions by opening an issue or starting a discussion.