Skip to content

v0.2.0 — pipeline city

Choose a tag to compare

@db-tycoon-stephen db-tycoon-stephen released this 28 Aug 10:28
· 41 commits to main since this release
669b0f2

v0.2.0

Released: 2026-08-28

Headline: pipeline city. The catalog becomes a place — tycoon city
serves your warehouse as an interactive 3D city, with schemas as
districts, tables as buildings, and lineage as roads. The renderer ships
inside the wheel, so there is nothing extra to install, and it costs
nothing until you run the command.

This is the first release on the 0.2 line. The CLI surface from 0.1.11
is unchanged — city is additive, and nothing else moved.

Landed

  • tycoon city — the catalog as an interactive 3D city (PR #205).
    Schemas become districts, tables become buildings, lineage becomes
    roads. With no arguments the command walks up to the project root and
    serves it on http://127.0.0.1:8000; --path also accepts a DuckDB
    file or an md: catalog, and --port, --host, --theme, --dist,
    and --pricing are forwarded to the renderer. Binding stays on
    localhost by default — the city names real schemas, tables, and
    columns, so publishing it is opt-in.
  • The renderer costs nothing until you run it (PR #205).
    tycoon_city is imported inside the command body, never at module
    scope, so registering city does not pull duckdb and sqlglot into
    every other command's startup.
  • The pipeline-city repo is absorbed and sunset (PR #205). Its
    renderer, contract fixtures, and test suite now live here; the spike
    scripts are archived in-repo, and tycoon-city / tycoon-city-export
    remain invocable as standalone entry points for renderer development
    without a project.

Upgrading from 0.1.11

  • Nothing breaks. No command or flag was removed, and tycoon.yml's
    schema_version stays at 2 — there is no migration to run.
  • The wheel now bundles the city renderer. The pre-built web bundle
    rides along so tycoon city works offline out of the box. The
    renderer is imported only when you run the command, so nothing else
    gets slower.
  • sqlglot becomes a declared dependency (>=30.15.0). It already
    arrived transitively via dbt-core and dlt, so this pins the version
    the renderer needs rather than adding an install.

Known limitations

  • The city is a static plan, not a simulation. Vehicles, guests, and
    the radial layout that places marts downtown and sources on the
    periphery are still in review and land in a follow-up release.
  • Coverage milestones are not surfaced yet. The exporter emits an
    achievements block, but the renderer does not read it — the panel
    will report a milestone as unknown rather than as measured. Tracked
    for the next release.
  • The renderer's own test suite is not CI-gated yet. The vendored
    tests/tycoon_city suite and the web/ front end are excluded from
    the pipeline that gates the CLI. Wiring them up is the first item of
    the next cycle.

What's next

Closing the renderer's CI gap, then the city simulation engine — radial
layout, planner consolidation, street thinning — and the layer-aware
data CLI (fire, repair, firehouse, data layers, data health),
both already open in review. The ingestion rewrite's M3 (#84) continues
alongside.