# Contributing to ObjDet Thank you for your interest in contributing to ObjDet! This document provides guidelines and information for contributors. ## Table of Contents - [Code of Conduct](#code-of-conduct) - [Getting Started](#getting-started) - [Development Setup](#development-setup) - [Making Changes](#making-changes) - [Commit Messages](#commit-messages) - [Pull Request Process](#pull-request-process) - [Adding New Models](#adding-new-models) - [Code Style](#code-style) - [Testing](#testing) - [Documentation](#documentation) ## Code of Conduct Please be respectful and constructive in all interactions. We're building something together. ## Getting Started 1. Fork the repository 2. Clone your fork: `git clone https://github.com/harsh-agarwal-93/objdet.git` 3. Add the upstream remote: `git remote add upstream https://github.com/originalowner/objdet.git` ## Development Setup ```bash # Install uv if you haven't curl -LsSf https://astral.sh/uv/install.sh | sh # Install all dependencies including dev tools uv sync --all-extras # Install pre-commit hooks uv run pre-commit install uv run pre-commit install --hook-type commit-msg # Configure git commit template git config commit.template .gitmessage ``` ## Making Changes 1. Create a new branch from `main`: ```bash git checkout -b feat/my-new-feature ``` 2. Make your changes following our [code style](#code-style) 3. Write tests for new functionality 4. Run the test suite: ```bash uv run pytest tests/unit -v ``` 5. Run linting and type checking: ```bash uv run ruff check src tests uv run ruff format src tests uv run pyrefly check src ``` ## Commit Messages We use [Conventional Commits](https://www.conventionalcommits.org/) for all commit messages. This enables automatic changelog generation. ### Format ``` ():