12‑Week MVP Tasks #101
ElianThorne
started this conversation in
Ideas
Replies: 1 comment
|
Extra tasks:
Also, Consider using nom/pest to refactor the remaining parser pieces, or gradually port features from parser.rs into smaller, tested parser modules. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Build the foundation first: execution core and essential builtins, then make scripts work (globs, expansions, redirections, job control), then polish the interactive experience and add safe extensibility. Do the hard compatibility work early, UX and plugins don’t matter if real scripts don’t run.
Tasks:
Basic command parser + executor
Core builtins: cd, pwd, exit, export, unset, echo, test
REPL integration with line editor (reedline/rustyline) and history
GitHub Actions CI + benchmark harness
Pathname expansion (globset)
Quoting and basic parameter expansion
Microbench: cold/warm startup, script runtime, memory
Command substitution and arithmetic expansion
Here-docs and file-descriptor redirections
Process groups, job control, signal handling; jobs/fg/bg
POSIX sh test harness and curated scripts
Async completion hooks + fuzzy ranking
Syntax highlighting for input
WASM plugin host prototype (wasmtime)
Packaging, quickstart, and migration guide
Release checklist (MVP)
First make scripts run correctly and reliably. Then fix interactive niceties and plugins. Measure everything with CI and benchmarks so changes are verifiable. Assign tasks, open the issues, and stop polishing UI before the compatibility work is done.
Do not reimplement functionality that mature crates already provide. Adopt reedline for the REPL (history, keybindings, vi/emacs modes, async completion hooks), globset for pathname expansion, nix for POSIX process/group control and signal handling, and a WASM runtime (wasmtime/wasmer) for sandboxed plugins. Reusing these components reduces bugs, speeds development, and leads to focus on POSIX compatibility, reliable job control, and performance
All reactions