ProtoDUNE Conditions Data Service¶
Client, server infrastructure, and perf tests for the ProtoDUNE run-conditions database, served through the Frontier stack and a ConDB2 REST backend.
This site is the canonical home for all project prose. The three distributions install from the project's PEP 503 wheel index on GitHub Pages — see Installation.
Repository map¶
| Path | What it is | Docs |
|---|---|---|
client/pd-cds-api/ |
Python API wrapping fn-fileget (RunConditions/ApiClientState/ApiClientWrapper) |
API reference |
client/pd-cds-api-bin/ |
Native runtime distribution: self-contained fn-fileget + libpacparser.so.1, per-arch wheels |
Installation |
client/pd-cds-cli/ |
pd-cds Typer CLI |
CLI guide |
tests/perf/ |
Locust perf harness for the client | Performance testing |
infra/ |
Server-side stack: ConDB2 REST API, Frontier server, compose/quadlet | Runbook |
scripts/ |
build-frontier-client.sh, stage-frontier-client.sh |
inline --help (source) |
FRONTIER_REF / VERSION |
Pinned upstream commit / release version (lockstep, see below) | Release Procedures |
.github/workflows/ |
frontier-build.yml → client.yml → release.yml → pages.yml (this site + wheel index) |
Release Procedures |
Choose your path¶
I want to run queries → Installation, then the
CLI guide. Python ≥3.14 on Linux x86_64/aarch64
(AlmaLinux/Rocky/RHEL 9+ is the primary target). Live queries need FNAL VPN
and (recommended) a local Squid cache on localhost:3128 — set one up via the
runbook.
I want to contribute — fresh clone → working CLI + perf run:
git clone https://github.com/DUNE/frontier-condb2.git && cd frontier-condb2
make stage # ~5 min: containerized manylinux_2_28 build of FRONTIER_REF
uv sync # creates .venv (Python 3.14 fetched by uv if needed)
uv run pd-cds --help
The native Frontier client binary is never committed — make stage
builds it reproducibly from the pinned revision; verify anytime with
make stage-check (scripts/stage-frontier-client.sh --from-ci <run-id>
downloads a CI-built runtime instead of compiling). Daily driver targets:
make build # wheels + sdists for all three distributions → dist/
make test # unit tests (workspace packages)
make lint # ruff
make smoke # throwaway venv: install dist/ wheels, resolve fn-fileget
make docs # strict docs build (this site) → site/
make docs-serve # live preview at http://localhost:8000
Requires uv (curl -LsSf
https://astral.sh/uv/install.sh | sh) and podman or docker for staging.
Troubleshooting¶
| Symptom | Cause / fix |
|---|---|
Native Frontier runtime is missing... |
Run make stage (needs podman/docker + network) |
FileNotFoundError: Frontier client 'fn-fileget' not found in package... |
Same — runtime not staged in this workspace |
CLI query: Network is unreachable / proxy connect errors |
VPN down, or no local Squid on :3128 — see runbook |
| Locust errors on every request | Same prerequisites as live CLI queries |
Wheel install: not a supported wheel on this platform |
Wheels are per-arch manylinux_2_28_*; match your platform or make stage && make build locally |
License¶
Frontier client code is © Fermilab under the Fermitools BSD license (see
COPYING / Fermilab-2009.txt in client/pd-cds-api-bin/).