Skip to content

Getting Started

A package containing core common operations

Overview

common-infra is a uv workspace monorepo: every package lives under libs/ as an independently versioned, independently released member. The workspace root owns the shared tooling (lint, types, tests, docs, CI); each member owns its own pyproject.toml, source, and tests.

Prerequisites

  • uv — manages Python, the venv, and all dependencies: curl -LsSf https://astral.sh/uv/install.sh | sh

If this repo consumes private packages, configure your registry read token first — see CONTRIBUTING.md in the repo root for the one-time setup.

Set up a clone

Terminal window
git clone https://github.com/null-capital/common-infra.git
cd common-infra
doppler run --project global --config prd -- ./run sync

./run sync creates the venv, installs all dependencies (uv sync --all-extras), and installs the git hooks. For private packages, the standard doppler run command routes GEMFURY_READ_TOKEN to uv without persisting it.

Install a package

Released versions publish to Gemfury; consumers install with the private index configured:

Terminal window
uv add common-<package> # e.g. common-core

Verify

Terminal window
./run check

./run check runs exactly what CI runs (lint + format + types + test), so green locally means green in CI.

Add a package

Terminal window
./run package add <name> # scaffolds libs/<name> wired into the workspace
./run package remove <name> # exact inverse

New members join CI, the release train, and the docs reference automatically — all three enumerate libs/ at run time.

Next steps