Repository navigation
feat(workspace): a yodel project as a chant workspace member, with dbt (#2) - #264
Merged
Merged
Conversation
#2) chant reads a sql member's tables and columns as workspace outputs (chant#3931) and a dbt member's sources as links to them (chant#3932). It folds the whole member directory to read them, and every ops/*.op.ts in a yodel project exported `op`, so the fold stopped on the duplicate name and every link to the project was unresolved. - Each Op the templates and examples declare, and each one yodel prints or writes (the ApplyOp and migrate Op examples, the backfill template), is exported under a name of its own: migrateDev, watchDev, backfillFillCountry. A backfill module may export its Op under any one name; op and the default export still work. - test/workspace.test.ts: each template as a member beside an app link and a dbt project. chant workspace check passes, fails with WSP093 for both consumers once src/ drops the column, and gives the rename for a -- previously: hint. - docs/workspace.md: the workspace, output names, dbt sources, drops and renames, and the Op export names for older projects. Needs a chant release with chant#3931, #3932 and #3941.
… fix; docs follow it
lex00
force-pushed
the
feat/2-workspace-outputs
branch
from
October 13, 2026 01:05
9a412cf to
c109cc0
Compare
lex00
marked this pull request as ready for review
October 13, 2026 01:05
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.
Closes #2
Draft: this waits on chant 0.124.23. That release carries INTENTIUS/chant#3931 (sql tables and columns as workspace outputs), #3932 (the dbt member kind) and #3941 (a member's Ops no longer hide its outputs). Until it's on npm,
test/workspace.test.tsfails against the published 0.124.21. Before merging, this PR moves@intentius/chantand@intentius/chant-lexicon-sqlto 0.124.23 inpackage.json.What changed
kind: "chant"member of a chant workspace, with no other changes. Its tables, views and columns are outputs named assrc/declares them. A dbt member'ssources.ymllinks to them.chant workspace checkfails with WSP093, at the dbt file and line, whensrc/drops a column a consumer reads. With a-- previously:hint it says what the column was renamed to.ops/(migrateDev,watchDev), the ApplyOp and migrate Op examples, and theyodel new --backfilltemplate (backfillFillCountry). A backfill module can export its single Op under any name, andopand the default export still work. Testing against chant main first found that duplicateopexports stopped chant's fold, which left every link unresolved. chant fixed that in #3941, so older projects work as they are. The renames stop new projects from ever exporting the same name twice.docs/workspace.md: the workspace declaration, output names, dbt sources, drops and renames, and the Op export names.Verified
npm ci && npm run build && npm run checkagainst chant main packed at 3064f1896 (0.124.22 on main): 834 tests pass, with typecheck and eslint clean.test/workspace.test.tscopies each template in as a member, next to an app link and a dbt project, and checks four things:op, still passes and still fails on a drop.