Skip to main content
Introducing packages.sweber.dev
All posts
Release2 min read

Derivative 0.9.0: the release candidate for 1.0

The public API is frozen, the reference is complete, and a written stability promise says what you can rely on. A new release-candidate test installs the packed packages into clean projects and builds the examples from them.

By Seya Weber

Derivative 0.9.0 is on npm, and it is the release candidate for 1.0. There are no new features in it on purpose: this is the version in which the API stops moving, so that 1.0 can be a promise and not just a number.

The API is frozen

Every export of the core package, the Node entry point, the widget and the React and Vue bindings is now listed in the API reference, including helpers that were missing there, such as the GitLab ones. A test reads the entry points with the TypeScript compiler and fails when an export is added, removed or renamed without a deliberate update, so an accidental change cannot slip into a release. The three Pro packages have the same test.

The few gaps we found while listing everything are closed. React and Vue get the headingLevel prop that the widget has had since 0.6, the React package re-exports the Feed, Release, EntryType and Messages types like Vue does, and Node 20 is declared in engines.

What you can rely on

A new Stability page says in plain words what is covered from 1.0: exports, the CLI and its exit codes, the config keys, the feed format, the widget's attributes, events, custom properties and parts, and for Pro the documented exports, options and the stored event format. It also says what is not covered, such as the inner structure of the shadow DOM and the exact wording of default labels, and how deprecations work: announced in a minor release, kept for at least one more, removed no earlier than the next major.

An Upgrading guide lists every change since 0.x that could be visible in an existing installation, with what to check. It is short, because nearly everything was added without changing existing behaviour.

Tested as it will be shipped

The examples were already built in CI against the published packages. The new pnpm rc goes one step earlier: it packs the three packages exactly as a release does, installs the tarballs into clean projects, imports every documented export from both ESM and CommonJS, runs the CLI on a sample changelog and builds the Vite, Next.js, SvelteKit and Astro examples from them. If the package has a mistake that only shows up after packing, this is where it appears.

What comes next

1.0 is next, and it will contain no new features: the stability promise, the documentation and a post. Derivative Pro keeps its price, and existing licences carry over.

The documentation has the new pages, the live demo runs the 0.9.0 widget, and the full list of changes is in the changelog on GitHub.

Package in this post

Derivative

Self-hosted changelog and "What's new" widget, built from your Changesets, CHANGELOG.md, commits, GitHub or GitLab Releases. No SaaS, no tracking.

pnpm add @sweberdev/derivative
View package

Related posts

Release

Derivative 1.0.0: a changelog widget you can build on

Derivative is at 1.0. From here on the API, the CLI, the feed format and the widget follow semantic versioning, with deprecations announced a release ahead. Nothing changes compared with 0.9.

Derivative
Release

Derivative 0.3.0: one-step setup and JSON Feed

derivative init sets up a project in one command, and the build can now write a JSON Feed. Pro adds Bluesky posts and a database store for read statistics.

Derivative