Skip to main content
Smithers release notes treat consumer-visible contract changes as upgrade notes, even when SemVer would classify the change as additive. This matters for exhaustive TypeScript switches, lookup tables, non-TypeScript clients, and persisted data readers.

What every release must report

The Upgrade notes section of each release changelog lists all known changes to these contracts:
  • run, node, event, error-code, and other string-enum values;
  • public exports, package subpaths, and binary resolution;
  • loaders, hooks, and plugin entry points;
  • CLI flags, exit codes, and machine-readable output;
  • Gateway RPC, event-frame, database, and serialized payload shapes;
  • defaults whose change can alter an existing workflow.
The section says explicitly when there are no consumer-visible changes. An enum member addition is listed because it can break an exhaustive consumer, even though it does not remove an existing value. Corrections discovered after release are added to the affected release’s upgrade notes.

Consumer guidance

Pin the Smithers version used in production and read every changelog between the pinned and target versions. For wire values, keep a visible unknown fallback in addition to handling the documented union. Preserve unknown values in logs and telemetry. In particular, treat an unknown waiting-* run value as suspended and nonterminal rather than coercing it to running or failed. The current run and node contracts are documented in Types and Event Types.

Supported release line

Smithers does not currently publish a long-term-support (LTS) line or backport window. No older minor release is currently promised fixes. A future LTS channel will be announced here with its version range, maintenance window, and backport policy before it is offered as supported.