Contributing

This section provides guidelines for contributing to the volnux project.

Getting Started

We welcome contributions! Here’s how you can help improve the volnux library:

  1. Fork the repository

  2. Create a new branch for your changes

  3. Make your changes

  4. Submit a pull request

Development Setup

  1. Clone the repository:

    git clone https://github.com/nshaibu/volnux.git
    cd volnux
    
  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install development dependencies:

    pip install -r requirements-tests.txt
    pip install -r requirements-build.txt
    

Running Tests

Run the test suite:

pytest

For coverage report:

pytest --cov=volnux --cov-report=html

Code Style

We use Black for code formatting:

black volnux

Documentation

To build the documentation:

  1. Install Sphinx:

    pip install sphinx sphinx-rtd-theme
    
  2. Build the docs:

    cd docs
    make html
    

The built documentation will be in docs/build/html.

Making Changes

  1. Create a new branch:

    git checkout -b feature-name
    
  2. Make your changes

  3. Add tests for new functionality

  4. Update documentation as needed

  5. Run the test suite

  6. Commit your changes:

    git add .
    git commit -m "Description of changes"
    
  7. Push to your fork:

    git push origin feature-name
    
  8. Create a Pull Request

Pull Request Guidelines

  • Include tests for new functionality

  • Update documentation for changes

  • Follow the existing code style

  • Add an entry to CHANGELOG.md

  • Keep commits focused and atomic

Reporting Issues

When reporting issues, please include:

  • Detailed description of the issue

  • Steps to reproduce

  • Expected vs actual behavior

  • Version information: - Python version - volnux version - OS version

  • Any relevant logs or error messages

License

By contributing, you agree that your contributions will be licensed under the GNU GPL-3.0 License.