Contributing Guide

How to contribute to GGUF Loader development

Intermediate 10 minutes

Thank you for your interest in contributing to GGUF Loader! This guide will help you get started.

🎯 Ways to Contribute

Code Contributions

  • Bug fixes
  • New features
  • Performance improvements
  • Addon development

Non-Code Contributions

  • Documentation improvements
  • Bug reports
  • Feature suggestions
  • Community support
  • Translations

πŸš€ Getting Started

Prerequisites

  • Python 3.8 or higher
  • Git
  • GitHub account
  • Basic understanding of Qt/PySide6 (for UI work)

Development Setup

  1. Fork the repository
    # Visit https://github.com/gguf-loader/gguf-loader
    # Click "Fork" button
    
  2. Clone your fork
    git clone https://github.com/YOUR_USERNAME/gguf-loader.git
    cd gguf-loader
    
  3. Create virtual environment
    python -m venv venv
    source venv/bin/activate  # Linux/macOS
    venv\Scripts\activate     # Windows
    
  4. Install dependencies
    pip install -e .[dev]
    
  5. Run tests
    pytest
    

πŸ“ Making Changes

Branch Naming

Use descriptive branch names:

  • feature/add-new-addon - New features
  • fix/model-loading-error - Bug fixes
  • docs/update-readme - Documentation
  • refactor/cleanup-ui - Code refactoring

Commit Messages

Follow conventional commits:

type(scope): description

[optional body]

[optional footer]

Types: feat, fix, docs, style, refactor, test, chore

Examples:

feat(addon): add text translation addon
fix(model): resolve memory leak on model unload
docs(readme): update installation instructions

Code Style

  • Follow PEP 8 for Python code
  • Use type hints where possible
  • Write docstrings for public functions
  • Keep functions focused and small

πŸ” Pull Request Process

  1. Create feature branch
    git checkout -b feature/your-feature
    
  2. Make changes and commit
    git add .
    git commit -m "feat: add your feature"
    
  3. Push to your fork
    git push origin feature/your-feature
    
  4. Open Pull Request
    • Go to GitHub
    • Click β€œNew Pull Request”
    • Fill in the template
    • Request review

PR Requirements

  • Tests pass
  • Code follows style guide
  • Documentation updated
  • Changelog updated (if applicable)
  • No merge conflicts

πŸ§ͺ Testing

Running Tests

# Run all tests
pytest

# Run specific test file
pytest tests/test_model_loader.py

# Run with coverage
pytest --cov=gguf_loader

Writing Tests

import pytest
from gguf_loader.model_loader import ModelLoader

class TestModelLoader:
    def test_load_valid_model(self):
        loader = ModelLoader()
        # Test implementation
        
    def test_load_invalid_model(self):
        loader = ModelLoader()
        with pytest.raises(ValueError):
            loader.load("invalid.txt")

πŸ“š Documentation

Updating Docs

Documentation lives in _docs/:

  • Use Markdown format
  • Include front matter
  • Add to navigation if new page
  • Test locally with Jekyll

Doc Style Guide

  • Use clear, concise language
  • Include code examples
  • Add screenshots for UI features
  • Link to related documentation

πŸ› Bug Reports

Before Reporting

  1. Check existing issues
  2. Try latest version
  3. Reproduce the bug
  4. Gather system info

Bug Report Template

**Description**
Clear description of the bug

**Steps to Reproduce**
1. Step one
2. Step two
3. ...

**Expected Behavior**
What should happen

**Actual Behavior**
What actually happens

**System Info**
- OS: 
- Python version:
- GGUF Loader version:
- Model used:

**Screenshots/Logs**
If applicable

πŸ’‘ Feature Requests

Before Requesting

  1. Check existing requests
  2. Consider if it fits the project
  3. Think about implementation

Feature Request Template

**Problem**
What problem does this solve?

**Proposed Solution**
How should it work?

**Alternatives Considered**
Other approaches you've thought of

**Additional Context**
Any other information

πŸ† Recognition

Contributors are recognized in:

  • README.md contributors section
  • Release notes
  • GitHub contributors page

πŸ“œ Code of Conduct

Our Standards

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

Unacceptable Behavior

  • Harassment or discrimination
  • Trolling or insulting comments
  • Personal or political attacks
  • Publishing others’ private information

πŸ“ž Getting Help

  • Questions: Use GitHub Discussions
  • Bugs: Open GitHub Issue
  • Security: Email security@ggufloader.com
  • General: support@ggufloader.com

Thank you for contributing to GGUF Loader! Your help makes this project better for everyone. πŸ™

🎯 What's Next?

You've completed this guide! Here are some suggested next steps to continue your GGUF Loader journey:

🏠

Explore Homepage

Discover more features, download options, and community resources on our homepage.

Visit Homepage β†’
πŸ“š

More Documentation

Continue learning with our comprehensive documentation library.

All Documentation β†’
πŸ’¬

Get Support

Have questions? Our community and support team are here to help.

FAQ & Support β†’

🏠 Back to Homepage