Derive the MEOS catalog instead of committing it - #16
Merged
estebanzimanyi merged 1 commit intoAug 31, 2026
Conversation
The catalog is staged by the provision-meos action and ignored by the tree, the shape every other binding already has: none of GoMEOS, MEOS.NET, PyMEOS-CFFI, MobilityDuck, JMEOS, Spark, Flink or Kafka tracks a meos-idl.json, and refresh-binding.sh stages it precisely "so a consumer's tree holds no copy to go stale". A committed catalog here is worse than a snapshot that merely ages. The Dockerfile clones MobilityDB at master, so the catalog the generator projects and the library the module links against are two different commits by construction, and nothing reports the gap. The tracked copy was derived from 4239d7bbc and still described RTreeSearchOp and temporal_to_tinstant, which master has since retired, so the wrappers projected from it name symbols the headers no longer declare. The projection stays committed. It is what a consumer of the published package compiles, so it is the tree's to carry; the catalog is an input, and inputs are derived. Drift between the committed projection and a freshly derived one is reported rather than refused. MobilityDB master moves independently of this repository, so a difference is ordinary and a contributor cannot act on it; what a stale projection costs is that it stops compiling, which is a separate gate against a provisioned libmeos rather than a diff. The README documents the one command that derives it, tools/refresh-from-master.sh, which runs the same recipe the action does.
estebanzimanyi
force-pushed
the
chore/derive-catalog
branch
from
August 31, 2026 21:48
965b208 to
3409a78
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The catalog is staged by the provision-meos action and ignored by the tree, the
shape every other binding already has: none of GoMEOS, MEOS.NET, PyMEOS-CFFI,
MobilityDuck, JMEOS, Spark, Flink or Kafka tracks a meos-idl.json, and
refresh-binding.sh stages it precisely "so a consumer's tree holds no copy to go
stale".
A committed catalog here is worse than a snapshot that merely ages. The
Dockerfile clones MobilityDB at master, so the catalog the generator projects and
the library the module links against are two different commits by construction,
and nothing reports the gap. The tracked copy was derived from 4239d7bbc and
still described RTreeSearchOp and temporal_to_tinstant, which master has since
retired, so the wrappers projected from it name symbols the headers no longer
declare.
The projection stays committed. It is what a consumer of the published package
compiles, so it is the tree's to carry; the catalog is an input, and inputs are
derived.
Drift between the committed projection and a freshly derived one is reported
rather than refused. MobilityDB master moves independently of this repository, so
a difference is ordinary and a contributor cannot act on it; what a stale
projection costs is that it stops compiling, which is a separate gate against a
provisioned libmeos rather than a diff.
The README documents the one command that derives it, tools/refresh-from-master.sh,
which runs the same recipe the action does.