deka 0.53.1
Human validation checklist
Run these on a clean machine with only the released binaries. Should take under 10 minutes. Anything that fails becomes an issue before the next release train.
Setup
deka --version # expect: deka [version 0.53.1]
dsc --version # expect: dsc [version 0.53.1]
1. deka --help tells you how to start (#977, #978)
deka --help
Expect a [getting started] block FIRST, before the alphabetical categories, listing init, serve, dev, add, build, run. Previously the list opened with auth/database/debug.
deka init --help
Expect help specific to init — its own usage line and examples. Previously this printed the global help verbatim.
Also check --yes appears once, not three times, and that flags shown under a command belong to that command.
2. A typo gets a useful answer (#993, #995)
deka --instal
deka self bogus ; echo "exit=$?"
Expect did you mean 'install', 'pkg install'? — two distinct real commands, not the same word twice. Expect the second to print unknown subcommand 'bogus' for 'self' and exit=2. Previously it printed nothing and exited 0.
3. A new project scaffolds and serves (#974, #972, #970)
mkdir hello && cd hello
deka init
deka dev
Expect an app/ tree (layout.dsx, page.dsx, not-found.dsx), src/ui/Counter.dsx, index.html, public/style.css, a .gitignore, plus the deka banner and http://localhost:8530.
Open it. Expect "Deka App" and "Hello, World." rendered, and the counter button showing 0 in the HTML source before any JavaScript runs (view-source, not devtools) — that is the island prerender fix. Click it; it should increment.
4. Permissions are declared, not mysterious (#973)
Open deka.json. Expect a permissions block with a dev section listing what was granted and an explicitly empty prod — production stays default-deny.
5. Task exit codes propagate (#975)
deka task dev # in a project whose task fails
echo "exit=$?"
A failing task must return its command's exit code, not 1.
6. Installing packages keeps the lockfile intact (#971)
deka install json
deka install crypto
cat deka.lock
Expect BOTH packages in deka.lock. Previously each install rewrote the lock to contain only the last package, while ds_modules/ still had the rest.
What changed
Fixes the first-run experience end to end (tracker #969). Four of the five milestones were broken on 0.53.0: help output, the scaffold, the dev server, and permissions legibility.
- #980 — the dev server was feature-gated out of every release binary, so
deka devtold users to rebuild from source. It ships now. - #984 —
deka initscaffolds a real RFD 24 app-router project instead of a static HTML page with no DekaScript in it. - #981 —
client:loadislands prerender their initial state instead of arriving empty until hydration. - #987 — the scaffold declares phase-aware dev/prod permissions; implicit dev grants announce themselves instead of happening silently.
- #996 — per-command help with real usage lines and examples, a Getting Started block, and flags resolved against their owning command.
- #1009 — explicit
deka installno longer truncatesdeka.lockto the last package installed. - #1008 — unrecognized subcommands error and exit non-zero instead of exiting 0 in silence (affected
self,pkg,db,auth,deploy). - #1003 — did-you-mean suggestions deduplicate and disambiguate (
installvspkg install). - #990 — self-update is deferred behind a non-default feature rather than advertising a command that did not work.
- #975 —
deka taskpropagates child exit codes.
Compiler side, shipped in dsc 0.53.1: the checker no longer infers through a bare unsafe {} block (dsc#225), and JSX text whitespace follows the Babel convention (dsc#226). Adopting that checker change required fixes in four repos — deka's codegen, deka's fixtures, the tour, and the conformance corpus.
Prefer ticking boxes? The same checklist is issue dekaruntime/staff#13.