Skip to content

Add the MobilityDuck pin manifest and per-binding generator policy#206

Open
estebanzimanyi wants to merge 1 commit into
MobilityDB:mainfrom
estebanzimanyi:tooling/canonical-generator-policy
Open

Add the MobilityDuck pin manifest and per-binding generator policy#206
estebanzimanyi wants to merge 1 commit into
MobilityDB:mainfrom
estebanzimanyi:tooling/canonical-generator-policy

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

What

Brings MobilityDuck onto the ecosystem-wide per-binding generator policy (same treatment as JMEOS #29, GoMEOS #6, MEOS.NET #6, meos-rs #4, PyMEOS #96, PyMEOS-CFFI #21):

  • tools/pin/compose-order.txt — the canonical, dependency-ordered fold manifest of the 30 open PRs, derived from the live base<-head DAG and organized into dependency waves (pin foundation → extended types → parity → geography → features → multi-version/CI → diagnostics → docs → benchmark). Ends the moving-target backlog.
  • GENERATION.md — the per-binding generator policy + MobilityDuck's canonical target: generate the DuckDB scalar UDFs from meos-idl.json via an in-repo tools/codegen_duck_udfs.py (organized by @ingroup, family-gated, BLOB marshalling), replacing the hand-written UDFs generate-then-retire.

Docs + manifest only — no code, no build impact.

Notes for review

  • MobilityDuck is the binding still hand-written on main (the catalog generator is the planned migration, not yet landed). As generation lands and generated ⊇ hand is proven family-by-family (parity-audit + sqllogictest + BerlinMOD), most of the hand feature PRs in the manifest are mooted.
  • The manifest's deep stacks (extended-types #150→#156, parity #193→#201) fold base-before-head per the live DAG; the pin-bump PRs (#197/#200/#203/#204) are pin mechanics, folded once to the latest ecosystem pin at assembly.

Why

Per the per-binding generator policy: each binding owns its generator + its own pin manifest, the single source of truth is the MEOS-API catalog, and generation converges to a zero-hand-written surface via generate-then-retire.

Add tools/pin/compose-order.txt (the canonical fold manifest of the 30 open
PRs, derived from the live base<-head DAG and organized into dependency waves)
and GENERATION.md (the per-binding generator policy: MobilityDuck's hand-written
UDFs converge on a catalog-driven generator, tools/codegen_duck_udfs.py, via
generate-then-retire; the hand feature PRs dissolve as generation lands).
@estebanzimanyi estebanzimanyi force-pushed the tooling/canonical-generator-policy branch from 3e1d58d to d107b03 Compare June 25, 2026 21:43
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