Skip to content

Contributing

Thank you for your interest in contributing to IOValence! Here's how you can help.

Getting Started

  1. Fork the repository on GitHub
  2. Clone your fork: git clone https://github.com/yourusername/iovalence.git
  3. Create a new branch: git checkout -b feature-name
  4. Install development dependencies: pip install iovalence[dev]

Development Setup

# Clone repository
git clone https://github.com/iovalence/iovalence.git
cd iovalence

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

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

# Run tests
pytest tests/

# Run linting
flake8 iovalence/
black iovalence/

Code Style

  • Follow PEP 8
  • Use type hints
  • Write docstrings for all functions
  • Keep lines under 88 characters

Testing

Write tests for new features:

import pytest
from iovalence import Agent

def test_agent_creation():
    agent = Agent("test", "transformer", 512, 256)
    assert agent.name == "test"
    assert agent.input_size == 512

Run tests:

pytest tests/ -v

Documentation

  • Update relevant markdown files
  • Add examples for new features
  • Keep API documentation current
  • Include docstrings in code

Commit Messages

Use clear, descriptive commit messages:

feat: add gradient accumulation support
fix: resolve data loading bug
docs: update training guide
test: add tests for custom agents

Pull Request Process

  1. Update documentation
  2. Add tests for new features
  3. Ensure all tests pass
  4. Submit PR with clear description
  5. Address review feedback

Reporting Issues

When reporting issues, include:

  • Description of the problem
  • Steps to reproduce
  • Expected vs. actual behavior
  • System information (OS, Python version, GPU)
  • Error traceback (if applicable)

Feature Requests

Describe: - The problem it solves - Use cases - Expected API/interface - Possible implementation approaches

Code of Conduct

Be respectful and inclusive. We follow the Contributor Covenant Code of Conduct.

Questions?


Thank you for contributing to IOValence!