Skip to content

Contributing to Fast Pluggy

Thank you for your interest in contributing to Fast Pluggy! This document provides guidelines and instructions for contributing to the project.

Code of Conduct

Please read and follow our Code of Conduct to ensure a positive and inclusive environment for everyone.

Getting Started

Setting Up the Development Environment

  1. Fork the repository on GitLab
  2. Clone your fork locally:
    git clone https://gitlab.com/your-username/fast_pluggy.git
    cd fast_pluggy
    
  3. Set up a virtual environment:
    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  4. Install development dependencies:
    pip install -e ".[dev]"
    

Running Tests

We use pytest for testing. To run the tests:

pytest

To run tests with coverage:

pytest --cov=fastpluggy

Development Workflow

  1. Create a new branch for your feature or bugfix:

    git checkout -b feature/your-feature-name
    
    or
    git checkout -b fix/issue-description
    

  2. Make your changes and commit them with clear, descriptive commit messages:

    git commit -m "Add feature: description of the feature"
    

  3. Push your branch to your fork:

    git push origin feature/your-feature-name
    

  4. Create a merge request (MR) from your branch to the main repository's main branch

Coding Standards

Python Code Style

We follow PEP 8 and use Black for code formatting:

black src tests

Type Hints

We use type hints throughout the codebase. Please add appropriate type hints to your code:

def example_function(param1: str, param2: int) -> bool:
    # Function implementation
    return True

Documentation

  • Document all public modules, classes, and functions
  • Use docstrings in Google style format
  • Keep documentation up-to-date with code changes

Example:

def example_function(param1: str, param2: int) -> bool:
    """
    Short description of the function.

    Args:
        param1: Description of param1
        param2: Description of param2

    Returns:
        Description of return value

    Raises:
        ValueError: When param1 is empty
    """
    if not param1:
        raise ValueError("param1 cannot be empty")
    # Function implementation
    return True

Pull Request Process

  1. Ensure your code passes all tests
  2. Update documentation if necessary
  3. Add tests for new features
  4. Make sure your code is properly formatted
  5. Submit the pull request

Creating Plugins

If you're interested in creating plugins for Fast Pluggy, please refer to the Plugin Development Guide.

Reporting Issues

If you find a bug or have a feature request, please create an issue on our GitLab issue tracker.

When reporting bugs, please include:

  • A clear, descriptive title
  • A detailed description of the issue
  • Steps to reproduce the problem
  • Expected behavior
  • Actual behavior
  • Fast Pluggy version
  • Python version
  • Operating system

Community

Join our community channels to get help or discuss the project:

License

By contributing to Fast Pluggy, you agree that your contributions will be licensed under the project's license.

Thank you for contributing to Fast Pluggy!