Mirrored from GitHub github.com/roostorg/osprey
0

Configure Feed

Select the types of activity you want to include in your feed.

osprey / docs / development / tools.md
1.9 kB

Development Tools#

Familiarize yourself with these development tools to better understand how to work on and debug Osprey.

Ruff#

Linting and formatting. Replaces Black, isort, Flake8, and other tools. Configuration lives in pyproject.toml under [tool.ruff]; the enabled rules are pycodestyle errors (E), pyflakes (F), import sorting (I), and flake8-bugbear's mutable-default-arguments check (B006).

Commands:

# Check for issues
uv run ruff check

# Fix auto-fixable issues
uv run ruff check --fix

# Format code
uv run ruff format

# Check specific files
uv run ruff check path/to/file.py

MyPy#

Static type checking for Python. Configuration in pyproject.toml under [tool.mypy] loads the Pydantic and SQLAlchemy plugins, relaxes strict mode to match the older parts of the codebase, and skips generated protobuf files.

Commands:

# Type check entire project
uv run mypy .

# Type check specific files
uv run mypy path/to/file.py

# Type check entire module
uv run mypy osprey_worker/

# Check with verbose output
uv run mypy --show-traceback path/to/file.py

Pre-commit#

Git hooks for automated quality checks before committing code. Configuration in .pre-commit-config.yaml.

Commands:

# Run all hooks on staged files
uv run pre-commit run

# Run all hooks on all files
uv run pre-commit run --all-files

# Run specific hook
uv run pre-commit run ruff

# Update hook versions
uv run pre-commit autoupdate

# Bypass hooks (emergency only)
git commit --no-verify

UV#

Python package and environment management. Key commands:

# Install dependencies
uv sync

# Add new dependency
uv add package-name

# Add development dependency
uv add --group dev package-name

# Remove dependency
uv remove package-name

# Run command in environment
uv run command-name

# Update dependencies
uv lock --upgrade