Start SDK 3.0.0 ships the package toolchain with the SDK and targets StartOS 0.4.0.2. Updating a package to it takes a handful of mechanical edits — see Important below.
Highlights
- A package declares the SDK and nothing else. TypeScript, Prettier, ESLint and
@vercel/nccinstall with@start9labs/start-sdk, ands9pk.mkruns each build step itself. - The build gate rejects unformatted
startos/, andmake formatwrites it. The shared config is the four settings every package already declared. @start9labs/start-coreis the only bundled dependency, so a package can clear a security advisory anywhere in the SDK's dependency tree with its ownoverridesentry instead of waiting for an SDK release.effects.getServicePortForwardresolvesnullinstead of throwing when the binding does not exist.
Full changelog for v3.0.0 — every change in this release.
Important
Four changes need edits in an existing package:
z.objectstrips unknown keys — every file-model shape must usez.looseObject, at every nesting level, or the nextmerge()discards whatever the user's config file holds that the shape doesn't declare. A.loose()or.passthrough()already on a shape is now redundant.- Drop the toolchain from
package.json— removetypescript,@types/node,@vercel/nccandprettierfromdevDependencies, remove thebuild,checkandprettierscripts and theprettierconfig block, and add a.prettierrccontaining"@start9labs/start-sdk/prettier.config.json". mountDependencyno longer acceptstype— a dependency mount has been a directory since StartOS 0.4.0-alpha.16, so passing it is now a compile error. To reach a single file, mount the directory holding it.addSsl.alpnis the list of protocols itself —['h2'], ornullfor no filter.{ specified: [...] }and'reflect'are gone; bindings already stored on a server are converted on update.
Packages built with this SDK write osVersion: 0.4.0.2, so they require StartOS 0.4.0.2 or newer.