Skip to main content
Thank you for your interest in contributing to openbench! This guide covers everything you need to know to contribute effectively.

Key Development Tools

uv: Package manager - use uv add “package>=version” for dependencies
ruff: Linting and formatting
mypy: Type checking - required for all new code
pre-commit: Automated code quality checks - must pass before commits
pytest: Testing framework with integration test markers

Getting Started

1. Fork and Clone

2. Set Up Development Environment

3. Create Feature Branch

Make Your Changes

For detailed information on benchmarks are implemented in openbench, see our Architecture page.

Core Principles

  • Focus on one feature, bug fix, or improvement per pull request
  • Makes code review easier and reduces merge conflicts
  • Keep functions small and focused
  • Use clear interfaces between components
  • Avoid tight coupling between modules
  • Use type hints for clarity and validation
  • Write docstrings for all public functions and classes
  • Use descriptive variable and function names
  • Follow PEP 8 with a line length of 88 characters
  • Mirror openbench/InspectAI conventions
  • Use consistent formatting and naming patterns
  • Maintain consistency with existing codebase

Testing

Write unit tests for all new functionality. Aim for high test coverage including edge cases and error conditions.
tests/test_my_feature.py

Code Quality Checks

Submitting Changes

Commits

Follow conventional commits structure:
<type>(<scope>): <subject>

Pull Requests

1. Before Opening PR

2. PR Description Template

3. Review Process

  1. Maintainers will review your PR
  2. Address feedback promptly
  3. Once approved, we’ll squash and merge your PR
  4. Your contribution will be part of the next release!

Thank you for contributing to openbench! We are grateful for your support in making language model evaluation more accessible and reliable. 🫶