Home / Blog / BPMN Kit 1.0: twelve packages take the stability promise

BPMN Kit 1.0: twelve packages take the stability promise

On 19 September, twelve BPMN Kit packages reached 1.0.0. This post explains what that promises, what it does not, and what comes next.

1.0 is a promise about breakage

A 1.0.0 is not a quality badge. It is a contract: from now on you can write ^1 in your package.json and no upgrade inside that range should break your code. The Stability and Versioning page spells out the details semver leaves open for a toolkit that also emits XML, writes files and speaks HTTP:

  • What is public API. What a package’s exports entry points export, minus anything marked @internal. Deep imports into dist/ are not covered.
  • When generated BPMN counts as a breaking change. A builder that produces different XML for the same code can break a deployment, so the page says when that is a major.
  • Which runtimes are supported, and how the Node.js floor moves.
  • How long each major is supported, and how deprecations run.

The promise is enforced by checks, not only by prose:

  • The exported surface of every stable package — 1,491 exports today — is snapshotted in api-surface.json, and CI fails if it changes without the snapshot being updated.
  • The list of stable packages lives in one place, scripts/published-packages.mjs. Nothing on it may lack tests or a documentation page, and nothing at 1.0 or above may be missing from it, so a major version cannot arrive by accident.
  • Every tarball is packed, installed into a throwaway project, imported, and type-checked against a strict NodeNext consumer before it is published.

The twelve

PackageWhat it is
@bpmnkit/coreParse, build, lay out, validate and write BPMN, DMN and Camunda Forms
@bpmnkit/canvasZero-dependency SVG viewer
@bpmnkit/editorInteractive BPMN editor
@bpmnkit/plugins34 canvas and editor plugins
@bpmnkit/feelFEEL parser and evaluator
@bpmnkit/engineIn-process simulator for tests and demos
@bpmnkit/apiTyped Camunda 8 REST client
@bpmnkit/connectorsCamunda connector templates, applied deterministically
@bpmnkit/connector-genOpenAPI to connector templates
@bpmnkit/asciiBPMN as Unicode art
@bpmnkit/docspackThese docs, offline, for AI agents
@bpmnkit/clicasen, the command-line interface

The other fifteen published packages stay on 0.x on purpose. Some are not ready to freeze; the rest are examples, scaffolders or generated builds with no API of their own. Under semver, 0.x promises nothing, so pin an exact version of those if one matters to you.

What is measured

We would rather show a number than an adjective, so the new Conformance page collects what is measured:

  • FEEL passes 1,939 of the 2,053 FEEL cases in the DMN TCK (94.4%). The cases that fail are listed with their reasons, and a weekly workflow re-runs the suite against the latest TCK.
  • BPMN model coverage against the vendored BPMN, DI and Zeebe descriptors: 109 types modelled, 34 preserved verbatim, 6 dropped (all data-association internals). A build gate fails if a new type would be dropped silently.
  • Interchange: all 22 OMG BPMN MIWG reference models import, keep their diagrams and round-trip to the same model, checked on every build.
  • Element support for each component — model, renderer, editor and simulator — in one table, including what the simulator does not execute.

What is still missing

1.0 covers the APIs above. It does not mean the toolkit is finished. The gaps we know about:

  • Interchange is measured against the 22 OMG MIWG reference models, which all open, keep their diagrams and round-trip to the same model. The one content loss left is the id and textFormat attributes on <documentation>.
  • There is no Camunda 7 support, and no choreography or conversation diagrams.
  • The simulator does not execute call activities, event sub-processes, event-based gateways, multi-instance or signal, escalation and compensation events. The WebAssembly build of the Reebe engine covers more of this, and is still experimental.
  • Linting uses BPMN Kit’s own rules. It does not read bpmnlint configurations yet.
  • Auto-layout is fast, but on the bpmn-auto-layout fixture set it still routes more edges through shapes than bpmn-auto-layout 2.0 does.

What comes next

  • Installers and extensions. The VS Code extension is now packaged on every release and attached to GitHub Releases, with Visual Studio Marketplace and Open VSX listings to follow. The desktop app gets Windows, macOS and Linux installers the same way.
  • Your coding agent. Each CLI release submits the MCP server (casen proxy mcp) to the official MCP Registry, so Claude Code, Cursor and VS Code can find it.
  • Interoperability. bpmnlint compatibility, and more real-world models in the round-trip corpus.

Everything is MIT-licensed, developed in the open on GitHub, and every package’s CHANGELOG.md says what changed. If something on this page is wrong, or you are using BPMN Kit and want to tell us how, open an issue or write to [email protected].