Skip to content

FNNDSC/tui-dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tui-dev

Development workspace for the ChELL stack — four independently-published npm packages that layer into one interactive ChRIS shell:

chell   (@fnndsc/chell)   REPL / CLI            ← top
  └ chili (@fnndsc/chili)  controller / commands
      └ salsa (@fnndsc/salsa)  logic / intents
          └ cumin (@fnndsc/cumin)  state / infra
              └ @fnndsc/chrisapi   REST client   ← from npm

This repo contains no stack source — only the npm-workspace glue and helper scripts. It exists so you can develop across all four layers at once with a single install, while each layer still publishes and installs standalone.

End users don't need this

To just use the shell:

npm install -g @fnndsc/chell
chell

tui-dev is only for developing the stack.

Cross-stack development (this repo)

git clone https://github.com/FNNDSC/tui-dev
cd tui-dev
./bootstrap.sh        # clones cumin/salsa/chili/chell + npm install

bootstrap.sh clones the four repos as siblings and runs one npm install. Because each layer depends on the others via ^semver, npm satisfies those ranges with the local checkouts (symlinked into node_modules/@fnndsc/*) instead of downloading them. @fnndsc/chrisapi comes from npm.

Dev loop

Edit a layer, rebuild that layer, run chell:

# e.g. after editing cumin/src/...
npm run build -w @fnndsc/cumin
node chell/dist/index.js

Layers above load the changed layer from its dist/ through the symlink — no publishing, no file: edits.

Everything at once

npm run build     # build all, in dependency order
npm test          # test all
npm run pull      # git pull --ff-only across all four

Layout after bootstrap

tui-dev/
├── package.json  bootstrap.sh  build.sh  test.sh  pull.sh   (tracked here)
├── cumin/  salsa/  chili/  chell/      (independent repos — gitignored here)
└── node_modules/@fnndsc/{cumin,salsa,chili,chell} → symlinks to the clones

Requirements

  • Node ≥ 20.12 (22.x recommended — lint-staged/husky needs node:util.styleText)
  • git, npm

Branches

The four repos have differing default branches (cumin/chilimain, salsa/chellmaster); git clone checks out each repo's default automatically.

Releasing

Each layer publishes independently, bottom-up, from its own repo:

cumin → salsa → chili → chell      # npm publish --access public

Deps stay ^semver (never file:), so published packages resolve from the registry for end users while these workspaces shadow them for local dev.

About

Development workspace for the ChELL stack (cumin/salsa/chili/chell) — single-install local linking of the four repos.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages