Fork and release policy
Two forks that never modify upstream, four npm packages published by hand, and the apps consumed from GitHub.
#The two forks
human-synthesis/norns-coreis a fork ofsveltejs/svelte.packages/svelte/is an untouched mirror of upstream;packages/norns-core/is ours.human-synthesis/nornsis a fork ofsveltejs/kit.packages/kit/and the upstreampackages/adapter-*/are untouched;packages/norns/is ours.
They are separate forks because their upstreams are separate repositories with independent release cycles. The forks exist to track upstream (git fetch upstream && git merge upstream/main) and to develop the Norns packages alongside the upstream packages in the same monorepo. Nothing in the upstream packages is modified beyond minimal package-manager script tweaks; every change there would be a future merge conflict.
We do not publish svelte or @sveltejs/kit. Users get those from the official packages through peer dependencies, and they never know the forks exist.
#What is published
| Published to npm | Not published |
|---|---|
@human-synthesis/norns-core, @human-synthesis/norns, @human-synthesis/norns-ui, @human-synthesis/norns-tron |
norns-app (consumed through bun create), norns-demo and norns-docs (cloned) |
Releases are manual: bump the version, verify locally (lint, check, build, the reference apps), commit and push, then publish from the package directory. Nothing is pushed or published without an explicit decision.
#Decisions baked in
- No new component extension.
.nand.care aliases on SvelteKit'sextensionsandmoduleExtensions; forking the Svelte compiler for a.nornsformat would be high cost for no value. - Civet, not CoffeeScript (since May 2026). Civet emits ESM-correct output and supports optional types, which removed two preprocessor passes that existed only to paper over CoffeeScript's emit.
- norns-ui is standalone, not a fork, and iterates faster than the framework; it only requires a compatible range of
nornsandnorns-core. - Starter and demo are split (May 2026) so each can be honest:
norns-appis the smallest complete app,norns-demois the showcase and comparison. - The runtime is opinionated. Feature folders, DI, validated input and the facade boundary are the product, not syntax sugar.