Thank you for your interest in contributing to RunAgent! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to abide by our Code of Conduct.
- Check if the bug has already been reported in the Issues
- Use the bug report template when creating a new issue
- Include detailed steps to reproduce the bug
- Include system information and environment details
- Include any relevant logs or error messages
- Check if the enhancement has already been suggested
- Use the feature request template when creating a new issue
- Provide a clear description of the enhancement
- Explain why this enhancement would be useful
- Include any relevant examples or use cases
- Fork the repository
- Create a new branch for your feature/fix
- Make your changes
- Run tests and ensure they pass
- Update documentation if needed
- Submit a pull request
- Python 3.9+ (project requires Python 3.9 or higher)
- Git
- pip
- virtualenv (recommended)
runagent/
├── runagent/ # Main package directory
├── tests/ # Test files
├── docs/ # Documentation
├── pyproject.toml # Project configuration and dependencies
├── README.md # Project overview
└── CONTRIBUTING.md # This file
- Fork and clone the repository:
git clone https://github.com/runagent-dev/runagent.git
cd runagent- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# or
.venv\Scripts\activate # Windows- Install development dependencies:
# Using pip
pip install -e ".[dev]"
# Or using Hatch (recommended)
hatch env create
hatch shell- Create a new branch for your feature/fix:
git checkout -b feature/your-feature-name- Make your changes and run the development tools:
# Format code
black runagent tests
# Sort imports
isort runagent tests
# Run linter (Ruff)
ruff check runagent tests
# Run type checker
mypy runagent tests
# Run tests
pytest- Install pre-commit hooks to automatically run checks:
pre-commit install# Run all tests
pytest
# Run with coverage
pytest --cov=runagent
# Run specific test file
pytest tests/test_specific.py
# Run tests in parallel
pytest -n auto
# Run specific test categories
pytest -m unit # Run unit tests
pytest -m integration # Run integration tests
pytest -m e2e # Run end-to-end testsWe use several tools to maintain code quality:
- Black for code formatting:
black runagent tests- isort for import sorting:
isort runagent tests- Ruff for linting (replaces flake8):
ruff check runagent tests
ruff format runagent tests # Format code- mypy for type checking:
mypy runagent testsHatch is our build backend and can be used for various development tasks:
# Create a new development environment
hatch env create
# Activate the environment
hatch shell
# Run tests
hatch run test
# Build the package
hatch build
# Clean build artifacts
hatch cleancd docs
make html- Use clear and concise language
- Include code examples where appropriate
- Keep documentation up to date with code changes
- Follow the existing documentation style
- Update the README.md with details of changes if needed
- Update the documentation if needed
- Ensure all tests pass
- Ensure code meets style guidelines
- Update the CHANGELOG.md with your changes
- The PR will be merged once you have the sign-off of at least one maintainer
- Update version in
__version__.py - Update CHANGELOG.md
- Create a new release on GitHub
- Build and publish to PyPI
Feel free to:
- Open an issue
- Join our Discord community
- Email us at support@runagent.live
Thank you for contributing to RunAgent! 🚀