Skip to content

docs: spec — BYO engine-adapter packages & deterministic python-node containers - #49

Closed
carolsimone wants to merge 1 commit into
mainfrom
docs/byo-engine-adapters-spec
Closed

docs: spec — BYO engine-adapter packages & deterministic python-node containers#49
carolsimone wants to merge 1 commit into
mainfrom
docs/byo-engine-adapters-spec

Conversation

@carolsimone

Copy link
Copy Markdown
Owner

What

Design doc (for review) for publishing the engine adapters and enabling deterministic, bring-your-own python-node containers.

The gap

A python node can be containerized only one way today: FROM a Continuo engine image (deterministic, but forces our base). Teams needing their own base — or wanting to reuse the WarehouseAdapter methods elsewhere — have no deterministic path: the adapters aren't installable from a package index, and the images build them from source (repo head), which is neither available to users nor reproducible.

What the spec commits to

  • Publish every engine adapter to PyPI, renamed continuo-<engine>-adapter (dist + continuo_<engine>_adapter module, together — no pip≠import trap), on the existing v* tag via a workspace-driven matrix + skip-existing: true. Generic across future engines (Snowflake, BigQuery) — publish-by-addition.
  • The engine images install the versioned published libraries, never source (--require-hashes from PyPI at release; a locally-built wheelhouse for CI/PR). Image ≡ what's on PyPI.
  • Ordering (one tag, not two PRs): the tag-time image build needs the wheel publish + a wait-until-installable retry. One PR bumps version + lock together. The only two-step risk is the --require-hashes hash, resolved by reproducible wheel builds (fallback: publish-then-pin).
  • Image name stays frozen (cross-repo contract); image ≠ pip name by design.
  • Add a Shape-2 domain template (own base + pip, hash-locked). Retire the old yanked 0.1.0 projects (they predate the validation→runtime merge).

Resolved open questions (spec §9)

  • Adapters keep 0.2.0 under the new name · discover_adapter() fails loudly on >1 adapter · commit the lock · confirm reproducible wheels (fallback documented).

Docs-only. Implementation follows as a separate bite-sized plan.

🤖 Generated with Claude Code

Design doc (for review): publish the engine adapters to PyPI as
continuo-<engine>-adapter, switch the engine images to install the
versioned published libraries instead of building from source, and add a
deterministic own-base domain template. Ordered as one v* tag (publish
wheels, then build the image), generic across future engines.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Simone Carolini <simonecarolini.sc@gmail.com>
@carolsimone
carolsimone deleted the docs/byo-engine-adapters-spec branch August 25, 2026 10:38
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