Skip to content

chore: v0.1.0 bump, worker bootstrap, smoke stack, docs refresh#8

Merged
Mathews-Tom merged 4 commits into
mainfrom
chore/docs-and-bootstrap-0.1.0
Apr 17, 2026
Merged

chore: v0.1.0 bump, worker bootstrap, smoke stack, docs refresh#8
Mathews-Tom merged 4 commits into
mainfrom
chore/docs-and-bootstrap-0.1.0

Conversation

@Mathews-Tom

Copy link
Copy Markdown
Owner

Summary

  • Bump every workspace package (augur-signals, augur-labels, augur-format) and the workspace root to 0.1.0.
  • Land augur_signals.workers.bootstrap — the shared config/observability/bus startup helpers used by every worker __main__ module. Add augur_signals.workers.__main__ catalog so python -m augur_signals.workers lists the supported entrypoints.
  • Land ops/docker/compose.yaml bringing up NATS JetStream + Redis + TimescaleDB + Prometheus + optional OTel collector, plus ops/docker/config/ TOMLs pointing at the compose services.
  • Refresh README.md for v0.1.0 with the optional-dependency groups, every runnable surface (labeling CLI, worker catalog, migration scripts, smoke compose, container build), and a per-phase status table.
  • Add docs/operations/manual-testing.md as the single end-to-end guide for local exercise — quality gates, labeling CLI, smoke stack, migration scripts, containers, Kubernetes dry-run, known gaps.
  • Register the new operations/ group in docs/README.md; update docs/architecture/system-design.md repository-structure block to match the phase 5 layout.

Honest scoping

Per-kind __main__ modules for feature / detector / manipulation / calibration / dedup / context_format / augur_format.workers.llm are not in this PR. They require a design decision on the per-subject BusMessage payload schema and bus-friendly adapters over the stateful Phase 1-4 transforms. Placeholder __main__ modules would violate the No-Bullshit-Code discipline, so they wait for the follow-up. docs/operations/manual-testing.md §3 enumerates what's deferred.

PyPI name check

  • augur — taken (2018 placeholder, no releases since). Workspace root keeps tool.uv.package = false so no conflict.
  • augur-signals, augur-labels, augur-format — all available.

Test plan

  • uv run pytest — 351 passed (15 new bootstrap tests).
  • uv run ruff check . + uv run ruff format --check . + uv run mypy --strict src/ scripts/ clean.
  • uv run python -m augur_signals.workers prints the catalog.
  • docker compose -f ops/docker/compose.yaml config parses the compose file.
  • kubectl apply -k ops/deploy/ --dry-run=client unchanged from phase 5.

Stamp the three workspace packages and the workspace root at 0.1.0.
The root pyproject keeps tool.uv.package = false so only the three
workspace distributions — augur-signals, augur-labels, augur-format
— ship to PyPI; the 'augur' name on PyPI is held by a 2018
placeholder upload and is not needed for publication.
augur_signals.workers.bootstrap centralizes the startup plumbing:
load_runtime_configs() reads bus.toml / storage.toml /
observability.toml from $AUGUR_CONFIG_DIR, activate_observability
configures the Prometheus + OTel backends and starts the metrics
listener, build_event_bus dispatches the NATS or Redis factory and
rejects the 'memory' backend with a clear pointer to the monolith,
resolve_replica_id reads AUGUR_REPLICA_ID / POD_NAME, parse_shard_arg
parses 'index/count' shard args with bounds checking.

augur_signals.workers.__main__ is a tiny catalog that
python -m augur_signals.workers prints so operators can enumerate
the worker kinds and their Kubernetes CMD strings.

Per-kind __main__ modules for feature / detector / manipulation /
calibration / dedup / context_format / augur_format.workers.llm are
deferred; they require a design decision on the per-subject
BusMessage payload schema plus bus-friendly adapters over the
Phase 1-4 stateful transforms. See docs/operations/manual-testing.md
§3 for the gap list.
…rometheus

docker compose -f ops/docker/compose.yaml up -d brings up every
external dependency the distributed runtime needs, with pre-baked
bus/storage/observability TOML configs under ops/docker/config that
point at the compose services. Workers run as host processes so
each one is launchable separately for piecewise testing.

The OTel collector is optional (traces.kind = 'disabled' in the
smoke config). Prometheus scrapes localhost:9091..9097 via
host.docker.internal so workers on the host are visible from the
compose-internal Prometheus instance.
…lock

README: document the v0.1.0 release, the optional-dependency groups
(llm-local, llm-cloud, bus-nats, bus-redis, storage-timescale,
observability, distributed), every runnable surface (labeling CLI,
worker catalog, migration scripts, smoke compose, container build),
and a per-phase status table.

docs/operations/manual-testing.md: end-to-end guide covering quality
gates, labeling CLI, distributed-runtime smoke stack (compose
bring-up, TimescaleDB init, worker catalog invocation, known gaps),
migration scripts, container build, Kubernetes dry-run, and
observability endpoints.

docs/README.md group index: add the operations/ group so readers
find the runbook and the manual-testing guide. Extend the
implementer reading order with both.

docs/architecture/system-design.md: rewrite the repository-structure
block so workers/, ops/docker/, ops/deploy/, the three new TOML
configs, and the migration + sidecar scripts are discoverable from
the canonical architecture doc.
@Mathews-Tom Mathews-Tom merged commit 2a1e9fd into main Apr 17, 2026
2 checks passed
@Mathews-Tom Mathews-Tom deleted the chore/docs-and-bootstrap-0.1.0 branch April 17, 2026 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant