Skip to content

Contributing

Christian Blank edited this page Nov 8, 2024 · 1 revision

Contributing to Addarr

Thank you for your interest in contributing to Addarr! This guide will help you get started with contributing to the project.

Code of Conduct

Our Standards

  • Be respectful and inclusive
  • Accept constructive criticism
  • Focus on what's best for the community
  • Show empathy towards others

How to Contribute

Reporting Bugs

  1. Check if the bug has already been reported
  2. Use the bug report template
  3. Include:
    • Detailed description
    • Steps to reproduce
    • Expected vs actual behavior
    • Version information
    • Log files

Suggesting Enhancements

  1. Check existing suggestions
  2. Use the feature request template
  3. Include:
    • Use case
    • Proposed solution
    • Alternative solutions
    • Additional context

Pull Requests

Process

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Write/update tests
  5. Update documentation
  6. Submit PR

Naming Conventions

feature/descriptive-name
bugfix/issue-number
docs/update-section

Development Setup

Environment Setup

# Clone your fork
git clone https://github.com/YOUR-USERNAME/Addarr.git
cd Addarr

# Create virtual environment
python -m venv venv
source venv/bin/activate  # Linux/Mac
# or
.\venv\Scripts\activate  # Windows

# Install dependencies
pip install -r requirements.txt
pip install -r requirements-dev.txt

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=addarr

# Run specific tests
pytest tests/test_specific.py

Code Style

Python Guidelines

  • Follow PEP 8
  • Use type hints
  • Write docstrings
  • Keep functions focused

Example

def search_media(query: str, media_type: str) -> List[Dict]:
    """
    Search for media in Sonarr or Radarr.

    Args:
        query: Search term
        media_type: Either 'movie' or 'tv'

    Returns:
        List of search results
    """
    # Implementation

Documentation

Writing Documentation

  1. Use clear, concise language
  2. Include examples
  3. Explain why, not just how
  4. Keep it up to date

Wiki Updates

  1. Clone wiki repository
  2. Make changes
  3. Test links
  4. Submit changes

Review Process

Before Submitting

  • Run tests
  • Update documentation
  • Format code
  • Add test cases
  • Check for conflicts

During Review

  1. Be responsive to feedback
  2. Make requested changes
  3. Keep discussions focused
  4. Be patient

Release Process

Version Numbers

  • Follow semantic versioning
  • Format: MAJOR.MINOR.PATCH
  • Document changes in CHANGELOG.md

Release Checklist

  • Update version number
  • Update CHANGELOG.md
  • Run full test suite
  • Update documentation
  • Create release tag

Community

Getting Help

  • Check documentation
  • Ask in discussions
  • Join community chat
  • Search existing issues

Communication Channels

  • GitHub Issues
  • Discussions
  • Wiki
  • Community Chat

Best Practices

Commits

  • Write clear commit messages
  • One change per commit
  • Reference issues

Example Commit Message

feat(bot): Add support for custom quality profiles

- Add quality profile selection
- Update configuration handling
- Add tests for new feature

Fixes #123

Testing

  • Write unit tests
  • Add integration tests
  • Test edge cases
  • Maintain test coverage

Documentation

  • Update README
  • Update wiki
  • Add inline comments
  • Update CHANGELOG

Recognition

Contributors

  • All contributors are listed in CONTRIBUTORS.md
  • Significant contributions are highlighted
  • Everyone is valued

Questions?

If you have questions:

  1. Check existing documentation
  2. Search closed issues
  3. Ask in discussions
  4. Create new issue

Thank you for contributing to Addarr!

Clone this wiki locally