Skip to content

Latest commit

 

History

History
208 lines (148 loc) · 4.18 KB

File metadata and controls

208 lines (148 loc) · 4.18 KB

Contributing to FLAMEHAVEN FileSearch

Thank you for considering contributing to FLAMEHAVEN FileSearch! This project is built and improved by the community.

Ways to Contribute

1. Bug Reports

Found a bug? Please report it on GitHub Issues.

Effective bug report template:

## Bug Description
[Clear and concise description]

## Steps to Reproduce
1. [Step 1]
2. [Step 2]
3. [Expected vs Actual result]

## Environment
- OS: [Windows/Mac/Linux]
- Python: [version]
- flamehaven-filesearch: [version]

## Error Logs
[Output/Stack trace]

## Additional Context
[Screenshots, configuration, etc]

2. Feature Requests

Want to suggest a new feature?

Before submitting:

3. Code Contributions

Good First Issues

Perfect for newcomers - look for issues labeled:

  • good first issue - Recommended for first-time contributors
  • documentation - Documentation improvements
  • bug - Small bugs with clear requirements
  • refactor - Small refactoring tasks

Step-by-Step Guide

  1. Fork the Repository

    git clone https://github.com/YOUR-USERNAME/Flamehaven-Filesearch.git
    cd Flamehaven-Filesearch
  2. Create Feature Branch

    git checkout -b feature/your-feature-name
    git checkout -b fix/your-bug-fix
  3. Set Up Development Environment

    pip install -e ".[dev]"
  4. Implement & Test

    pytest tests/ -v
    black flamehaven_filesearch/
    isort flamehaven_filesearch/
    flake8 flamehaven_filesearch/
  5. Commit Changes

    git commit -m "feat: description"
    git push origin feature/your-feature-name
  6. Create Pull Request

    • Open PR on GitHub
    • Wait for CI/CD tests
    • Address review feedback
    • Merge!

Commit Message Convention

We follow Conventional Commits:

<type>(<scope>): <subject>

<body>

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

Scopes: auth, api, cache, docs, test

Examples:

feat(auth): add API key rotation
fix(cache): fix Redis connection timeout
docs: add Kubernetes deployment guide

Testing Requirements

All new features must include tests:

# tests/test_my_feature.py
import pytest

class TestMyFeature:
    def test_basic_functionality(self):
        result = my_function("input")
        assert result == "expected"

    def test_edge_case(self):
        with pytest.raises(ValueError):
            my_function(None)

Requirements:

  • Minimum 90% code coverage
  • All existing tests must pass
  • New features should aim for 100% coverage

Code Review Criteria

Your PR will be evaluated on:

Code Quality

  • PEP 8 compliant
  • Type hints included
  • Comments for complex logic
  • No dead code
  • DRY principle followed

Testing

  • Tests for new features included
  • All existing tests pass
  • 90%+ code coverage
  • Edge cases tested

Documentation

  • Docstrings for functions/classes
  • README updated (if needed)
  • CHANGELOG updated
  • Major changes explained

Compatibility

  • Python 3.8+ support
  • Works on Windows, Mac, Linux
  • Docker compatible

Development Setup

Quick Start

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

# Create virtual environment
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

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

# Verify with tests
pytest tests/ -v

Getting Help


License

By contributing, you agree your work will be licensed under MIT License.


Thank you for contributing! 🙏