vos pull --check and --since reach the take path; a directory is a take or a program by its document - #132
Merged
Merged
Conversation
…ke or a program by its document Two gaps between the help text and the binary. `vos pull <take> --check` and `--since <versionId>` were listed in the plugin help but the take path parsed neither: --check demanded a value and --since was ignored. pullTake now walks the changelog from the tracked base or the one named, and under --check returns the report (versions behind, the changes, the protected nodes) without writing doc.json, pulling media or repointing vos.json. A take linked with --vos and no base still reports the head and says what --since is for. Every engine verb sniffed a take by the presence of doc.json, so a program directory that carried a program document (doc.json without `source`, config.json as its config) was routed to the take renderer and died on a missing meta.json. One sniff now lives in loadConfig (`directoryKind`): a take is a doc.json carrying `source`, a program directory is a config.json. render, still, info and check all take a program directory, composed with the program document beside it through lowerProgramDoc with the tween overlay baked, so the render is what the studio and vos.so play. A take handed to still, info or check is refused in words that name the take pipeline; a directory holding neither is refused instead of reading as EISDIR. The plugin's isTakeDir reads the same sniff. Tests: directoryKind and the directory loads (program, program + document, take, empty); pullTake --check/--since against a local server (report without writes, the named base, head-as-base, no-base, and the plain sync).
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 two gaps left open by #130, closed.
vos pull <take> --checkand--sinceThe plugin help listed both, but the take path parsed neither:
--checkdemanded a value and--sincewas ignored.pullTakenow takes both.--since <versionId>walks the changelog from the base you name instead of the tracked one;--checkprints the changelog and returns the report (versions behind, the changes, the protected nodes) without writingdoc.json, pulling media or repointingvos.json. A take linked with--vosand no base still reports the head and says what--sinceis for. The done line readsN versions behind — run without --check to sync, orup to date.A directory is a take or a program by its document
Every engine verb sniffed a take by the presence of
doc.json, so a program directory carrying a program document (doc.jsonwithoutsource,config.jsonas its config) was routed to the take renderer and died on a missingmeta.json. One sniff now lives inloadConfig.ts(directoryKind): adoc.jsoncarryingsourceis a take, aconfig.jsonis a program directory.render,still,infoandcheckall accept a program directory, composed with the program document beside it throughlowerProgramDocwith the tween overlay baked, so the render is what the studio and vos.so play. A take handed tostill,infoorcheckis refused in words that name the take pipeline; a directory holding neither is refused in words instead of a bareEISDIR. The plugin'sisTakeDirreads the same sniff, so push, pull and validate agree with render.Note:
vos checkon a composed program directory reports the studio entry's own determinism warnings (itsonFramenames timers and network for fonts and media). They are warnings, not errors, and they describe the entry the platform ships, not the user's program.Tests
loadConfig.test.ts:directoryKindover take, program, program + document, an unparsabledoc.json, an empty directory, a file, a missing path; loading a program directory, composing one with its document (thevosso.studiostack entry carries the overlay), refusing a take and an empty directory in words.pullTake.test.ts: against a local HTTP server,--checkreports one version behind and leavesdoc.jsonandvos.jsonuntouched;--sincewalks from the named base;--sincenaming the head is up to date without a changelog call;--checkwith no base reports the head and no count; a plain pull still syncs and repoints.Smoked the built binary:
vos render <program dir with doc>produced a webm with the overlay,vos inforeports the composition, andcheck/still/infoon a take or an empty directory answer in words.pnpm build,typecheck,lint,test(202),checkgreen.