Contributing to Minion

We welcome contributions to the Minion library! Whether you want to fix bugs, add new features, improve documentation, or contribute in other ways, this guide will help you get started.

How to Contribute

  1. Fork the Repository - Go to the Minion GitLab repository and click Fork. - Clone your fork to your local machine:

    git clone https://gitlab.com/yourname/Minion.git
    cd Minion
    
  2. Set Up Your Environment - Install dependencies:

    pip install pybind11
    
    • Ensure you have a C++ compiler installed.

  3. Create a New Branch - Use a descriptive name for your branch:

    git checkout -b feature-new-algorithm
    
  4. Make Your Changes - Modify the code or documentation as needed. - Follow the existing code style and structure. - Add docstrings to new functions and classes.

  5. Run Tests - Ensure your changes do not break existing functionality. Most importantly, it must be compileable.

  6. Commit Your Changes - Use meaningful commit messages:

    git add .
    git commit -m "Add new optimization algorithm"
    
  7. Push Your Changes and Open a Merge Request - Push your changes to your fork:

    git push origin feature-new-algorithm
    
    • Open a Merge Request (MR) on GitLab.

    • Describe your changes and request a review.

Reporting Issues

If you find a bug or have a feature request, please create an issue on GitLab. Provide a clear description, steps to reproduce (if applicable), and any relevant logs or screenshots.

Code Style Guide

  • Follow PEP 8 for Python code.

  • Use Doxygen-style comments for C++ code.

  • Write meaningful variable and function names.

Documentation Contributions

  • Minion documentation is built with Sphinx and Doxygen.

  • To build the documentation locally: ` cd docs make html `

  • Edit .rst files in docs/source/ for documentation changes.

Thank you for contributing to Minion!