Skip to content

Add the MobilityNebula pin manifest and per-binding generator policy#175

Open
estebanzimanyi wants to merge 3 commits into
MobilityDB:mainfrom
estebanzimanyi:tooling/canonical-generator-policy
Open

Add the MobilityNebula pin manifest and per-binding generator policy#175
estebanzimanyi wants to merge 3 commits into
MobilityDB:mainfrom
estebanzimanyi:tooling/canonical-generator-policy

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

What

Brings MobilityNebula onto the ecosystem-wide per-binding generator policy (completing the rollout: JMEOS #29, GoMEOS #6, MEOS.NET #6, meos-rs #4, PyMEOS #96/#21, MobilityDuck #206, MobilitySpark #29, MobilityFlink #32, MobilityKafka #17):

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

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 (the last green-CI version is the equivalence probe).

…aho-mqtt-cpp

The Nix environment provides paho-mqtt-cpp as a shared-only library and does
not include libmeos.  Four changes make the build pass:

- flake.nix: add stock paho-mqtt-c + paho-mqtt-cpp to baseThirdPartyDeps;
  pass -DNES_ENABLE_MEOS=OFF in both defaultPackage and devShell cmakeFlags.

- nes-plugins/CMakeLists.txt: introduce NES_ENABLE_MQTT and NES_ENABLE_MEOS
  options that gate the respective plugin subdirectories via
  activate_optional_plugin().

- nes-plugins/Sources/MQTTSource, nes-plugins/Sinks/MQTTSink: select
  PahoMqttCpp::paho-mqttpp3-static when available, fall back to the shared
  PahoMqttCpp::paho-mqttpp3 target (Nix only ships the shared variant).

- nes-physical-operators: gate all MEOS-specific add_plugin calls and the
  nes-meos link behind if(NES_ENABLE_MEOS) in three CMakeLists files
  (top-level, Functions/Meos, Aggregation/Function/Meos).

- CMakeLists.txt (root): declare option(NES_ENABLE_MEOS) and
  add_compile_definitions(NES_ENABLE_MEOS) before the nes-* subdirectory
  loop so the preprocessor symbol is visible to all sibling components.

- nes-query-optimizer/LowerToPhysicalWindowedAggregation.cpp: guard the
  TemporalSequenceAggregationPhysicalFunction include and instantiation
  with #ifdef NES_ENABLE_MEOS so the translation unit compiles and links
  when MEOS is disabled.
@estebanzimanyi estebanzimanyi force-pushed the tooling/canonical-generator-policy branch from cd89958 to ddcec83 Compare June 25, 2026 21:42
@estebanzimanyi

Copy link
Copy Markdown
Member Author

Superseded by the master-derivation deliverable. The pin artifacts here (tools/pin/compose-order.txt, tools/regen-from-pin.sh) are obsolete: pins are no longer used — the surface derives directly from MobilityDB master via the MEOS-API catalog. The generation policy (family-organized, catalog-derived, zero hand-written surface) is realized and documented by the committed generator (#185: tools/codegen + README) and enforced by the drift-guard CI (#186). Closing; reopen if a top-level GENERATION.md is wanted, which would then reference master rather than a pin.

Add tools/pin/compose-order.txt (the canonical fold manifest of the ~50 open
codegen-wave PRs from the live DAG: generator infra MobilityDB#170 first, then the
per-family NES operator waves W105-W149, then the -22a verify/regenerate PRs)
and GENERATION.md (the per-binding generator policy: MobilityNebula generates
the NES MEOS-operator surface via tools/codegen/codegen_nebula.py from the
catalog, family-organized, zero hand special-cases).
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