Developer Setup Guide¶
Complete workstation setup for new contributors to the XO-Data platform.
Prerequisites¶
Python 3.12+¶
Verify your Python version:
If you need Python 3.12+, install via python.org or your system package manager.
uv (Python package manager)¶
All dependency management in this repo uses uv. Never use pip directly.
macOS / Linux:
macOS (Homebrew):
Windows (PowerShell):
Verify: uv --version
GitHub CLI (gh)¶
Required for all project management operations (issues, PRs, labels, project fields).
macOS (Homebrew):
Other platforms: See cli.github.com/manual/installation.
Verify: gh --version
GitHub CLI Authentication¶
1. Authenticate¶
Follow the prompts: select GitHub.com, choose HTTPS, and authenticate via browser.
2. Add GitHub Projects scopes¶
The default login does not include the scopes needed to read and write GitHub Projects (org-level). After logging in, run:
This opens a browser to approve the additional scopes. These are required for any gh project command.
3. Verify¶
Expected output includes github.com with Token scopes: ..., project, read:project.
Repo Setup¶
1. Clone¶
2. Install dependencies¶
This installs all workspace packages and their dependencies.
3. Configure git hooks¶
This installs nbstripout, which strips Jupyter notebook outputs on commit. Pass mac, linux, or win explicitly if auto-detection fails.
Environment Variables¶
Create a .env file at the repo root (never commit this file):
# Snowflake
SNOWFLAKE_ACCOUNT=
SNOWFLAKE_USER=
SNOWFLAKE_PASSWORD=
SNOWFLAKE_WAREHOUSE=
# AWS
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
# Gladly
GLADLY_API_USER=
GLADLY_API_TOKEN=
GLADLY_ORG=
Ask a team member for the values. The .env file is gitignored — never commit credentials.
Verification¶
After setup, confirm everything works:
# Type checking (run per package)
uv run ty check packages/xo-core
uv run ty check packages/xo-foundry
# Linting
uv run ruff check packages/xo-core
uv run ruff check packages/xo-foundry
# GitHub CLI
gh repo view xtendops-developers/xo-data --json name,owner
gh project list --owner xtendops-developers
All three uv run commands should pass with zero errors. The gh commands should return repo and project data without auth errors.
Coming Soon¶
The following sections will be added as the team documents these procedures:
- Snowflake CLI (
snow) — Local query access, connection profile setup → seebootstrap-setup.md - AWS CLI — Local S3 access for pipeline development
- dbt profiles — Local dbt runs against dev databases → see
dbt-development-workflow.md - IDE setup — VS Code extensions, Claude Code configuration
- xo-bosun CLI — Monorepo tooling
Next Steps¶
Once your environment is set up:
- Read GitHub Projects Workflow for the issue and PR workflow
- Read
.claude/CLAUDE.mdfor Claude Code conventions in this repo - Run
uv sync --package xo-foundryif working on Airflow DAGs - Run
uv sync --package analyticsif working on analytics notebooks