Contributing

We welcome contributions to bhopengraph! This document provides guidelines and information for contributors.

Getting Started

  1. Fork the repository on GitHub

  2. Clone your fork locally

  3. Create a feature branch for your changes

  4. Make your changes following the coding standards

  5. Test your changes thoroughly

  6. Submit a pull request

Development Setup

# Clone your fork
git clone https://github.com/YOUR_USERNAME/bhopengraph.git
cd bhopengraph

# Install in development mode
pip install -e ".[dev]"

# Run tests
python -m pytest tests/

# Run linting
flake8 bhopengraph/
black bhopengraph/

Coding Standards

Python Code Style * Follow PEP 8 style guidelines * Use type hints where appropriate * Write docstrings for all public functions and classes * Keep functions focused and concise

Documentation * Update relevant documentation when adding new features * Follow the existing documentation style * Include examples for new functionality * Update the changelog for significant changes

Testing * Write tests for new functionality * Ensure all tests pass before submitting * Aim for good test coverage * Include both unit tests and integration tests

Git Commit Messages * Use clear, descriptive commit messages * Start with a verb (Add, Fix, Update, etc.) * Reference issues when applicable * Keep commits focused and atomic

Pull Request Guidelines

  1. Title: Clear, descriptive title

  2. Description: Explain what the PR does and why

  3. Tests: Ensure all tests pass

  4. Documentation: Update docs if needed

  5. Changelog: Update CHANGELOG.md if applicable

Issue Reporting

When reporting issues, please include:

  • Description: Clear description of the problem

  • Steps to reproduce: Detailed steps to reproduce the issue

  • Expected behavior: What you expected to happen

  • Actual behavior: What actually happened

  • Environment: OS, Python version, bhopengraph version

  • Code example: Minimal code that reproduces the issue

Code of Conduct

  • Be respectful and inclusive

  • Focus on the code and technical aspects

  • Help others learn and grow

  • Report any inappropriate behavior

Getting Help

  • GitHub Issues: For bug reports and feature requests

  • GitHub Discussions: For questions and general discussion

  • Pull Requests: For code contributions

Thank you for contributing to bhopengraph!