Monorepo / uv workspaces (initialize from scratch)

Use these commands when creating the repository from an empty project (or when adding new package workspaces). They create the repository workspace layout and initialize package workspaces under packages/.

Terminal (pwsh / bash):

# Create a bare uv workspace for the monorepo
uv init --bare --name open-ev-fleet

# Initialize package workspaces (create package layouts and pyproject)
uv init packages/openevfleet --package --name openevfleet
uv init packages/openevfleet_control --package --name openevfleet_control
uv init packages/openevfleet_io --package --name openevfleet_io

# Populate the workspace (create .venv/lockfiles and install tools as configured)
uv sync --all-groups --all-extras

Notes and next steps

  • After uv init and uv sync inspect generated files (e.g. pyproject.toml) and lockfiles. Commit them and open a merge request so CI runs.
  • To add more packages: uv init packages/<name> --package --name <name> then run uv sync.