Skip to content

Derive the MEOS catalog instead of committing it - #16

Merged
estebanzimanyi merged 1 commit into
MobilityDB:mainfrom
estebanzimanyi:chore/derive-catalog
Aug 31, 2026
Merged

Derive the MEOS catalog instead of committing it#16
estebanzimanyi merged 1 commit into
MobilityDB:mainfrom
estebanzimanyi:chore/derive-catalog

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

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.

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
estebanzimanyi merged commit 4039125 into MobilityDB:main Aug 31, 2026
2 checks passed
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