Skip to main content
This page covers the developer tooling required for ~/blueaccademy. Use this page together with Install Rancher Desktop.

What this repo expects

The current source of truth in blueaccademy is:
  • pyproject.toml requires Python >=3.11
  • uv.lock is present
  • .pre-commit-config.yaml runs hooks through uv run ...
That means the practical toolchain for contributors is:
  • uv
  • Python 3.11 or newer
  • pre-commit

Official references

Install uv

macOS and Linux

The official standalone installer is:
If you prefer Homebrew on macOS:

Windows

The official standalone installer is:
If you prefer WinGet:

Verify uv

After installation, open a fresh terminal and run:
If this fails, do not continue to repository setup yet. Fix your PATH first.

Install Python through uv

The repo requires Python >=3.11. If your machine does not already have a suitable Python version available, install one with uv:
You can verify the interpreter resolution with:
If you already have a working Python 3.11+ installation, uv can use it.

Clone the main repository

If the repo is not already on disk:
If it is already cloned, just move into it:

Sync project dependencies

For contributor setup, sync the locked dependencies including the development group:
This is the correct bootstrap step for this repository because:
  • the lockfile is present
  • development tools are declared in pyproject.toml
  • the git hooks call those tools through uv run

Install pre-commit

There are two separate things people confuse here:
  1. the pre-commit Python package
  2. the Git hook installation for this repository
In this repo, the package is already handled by uv sync --dev. The next step is to install the Git hooks into the repository:
Verify that pre-commit is available:
Then run the full hook set once:
That first run may take time because hook environments are initialized on first execution.

What the current hooks run

The repo’s .pre-commit-config.yaml currently runs:
  • trailing whitespace checks
  • YAML validation
  • branch protection against direct commits to main
  • uv run ty check
  • uv run ruff check --fix
  • uv run ruff format
  • uv run pytest
This is why documenting pre-commit without documenting uv would be incomplete.