spike: graduate the data layer to @gemstack/orm (+ adapters + schema) [#64 Phase 0, not for merge]#65
Merged
Merged
Conversation
Phase 0 of #64. Reversible proof that the universal-orm/universal-schema engines graduate to @gemstack/* cleanly. NOT for merge, NOT published (all four packages stay private:true). No dependents repointed, no shims. Copied from vike-data and renamed: @universal-orm/core -> @gemstack/orm @universal-orm/memory -> @gemstack/orm-memory @universal-orm/drizzle -> @gemstack/orm-drizzle @vike-data/universal-schema -> @gemstack/schema Findings: - The ORM runtime is framework-agnostic (zero Vike/ORM imports), as the epic claimed. Confirmed by build + tests in the gemstack workspace. - But @gemstack/orm's own test suite (and orm-memory's) builds fixtures with defineSchema/mergeSchemas from schema. So schema is NOT a "later, lower-priority" graduation as #64 assumed: it must graduate WITH the ORM. Pulled it in here; that is what makes core's tests pass. - The Rudder adapter (@universal-orm/rudder, peer @rudderjs/database) is the one framework-coupled package and is deliberately excluded; it is the "living binding" decision in #64. Tests (node --test, preserved JS-src-direct build model): @gemstack/orm 29 pass @gemstack/orm-memory 10 pass @gemstack/orm-drizzle 12 pass @gemstack/schema 103 pass total 154 pass / 0 fail
This was referenced Jun 27, 2026
suleimansh
added a commit
that referenced
this pull request
Jun 28, 2026
* chore: remove the data-layer packages (orm/schema/adapters) These were a frozen spike copy from PR #65 for the planned graduation to @gemstack/*. That graduation is cancelled (#66): the universal engines stay @universal-orm, outside the GemStack umbrella. vike-data / @universal-orm is the single source of truth, so the gemstack copies only add fork and accidental-publish risk. They are private/unpublished with no dependents, so removal breaks nothing. * chore: prune lockfile after removing data-layer packages
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.
Phase 0 of #64. A reversible spike, NOT for merge. No publish (all four packages are
private: true), no shims, no dependents repointed. The point is to prove the mechanical graduation is clean and to surface what the real move costs, as the concrete artifact for the brand-consolidation decision with the Vike team.What this does
Copies the agnostic engines out of
vike-dataand renames them to@gemstack/*, following the@gemstack/ai-sdkplaybook (copy -> rename -> [stop here for the spike]):vike-data)@universal-orm/core@gemstack/orm@universal-orm/memory@gemstack/orm-memory@universal-orm/drizzle@gemstack/orm-drizzle@vike-data/universal-schema@gemstack/schemaThe JS-src-direct build model (ship
src/*.js,node --test, nodist) is preserved as-is, not rewritten to the TS->distmodel the AI family uses.Result: green in the gemstack workspace
Findings (the reason to run a spike)
@gemstack/orm's own test suite (andorm-memory's) builds fixtures withdefineSchema/mergeSchemasfrom schema. The runtime is schema-free, but the test suite is not, so schema must graduate with the ORM, not after it. Epic: graduate the data layer to @gemstack/orm (+ adapters) #64 should be updated to reflect this.@universal-orm/rudder(peer@rudderjs/database) is deliberately excluded; it is the "living binding" decision in Epic: graduate the data layer to @gemstack/orm (+ adapters) #64, not part of the agnostic core.@vike-data/universal-schemadev/types reference with no runtime import. It resolves once schema graduates alongside.What this spike deliberately does NOT do (Phase 2, after the gate)
0.x/ publish@universal-orm/*namesvike-data,@rudderjs/orm, playgrounds)@universal-orm/rudderdecisionAll of that is gated on the brand-consolidation decision with the Vike team (consolidate / parallel brands / defer) per #64. This branch is the evidence for that conversation, and should be closed unmerged once the decision is made and real Phase 2 PRs open.