Contributing¶
Thank you for your interest in contributing to IOValence! Here's how you can help.
Getting Started¶
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/yourusername/iovalence.git - Create a new branch:
git checkout -b feature-name - 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¶
- Update documentation
- Add tests for new features
- Ensure all tests pass
- Submit PR with clear description
- 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?¶
- Check the FAQ
- Review Issues
- Start a Discussion
Thank you for contributing to IOValence!