Contributing
August 10, 2026 · View on GitHub
Thanks for your interest in @emaarco/dmn-js-simulation! Contributions of all
kinds are welcome — bug reports, feature ideas, docs, and code.
Getting started
git clone https://github.com/emaarco/dmn-js-simulation.git
cd dmn-js-simulation
npm install
npm test
The repository is an npm-workspaces monorepo:
packages/dmn-js-simulation— the published librarypackages/example— an example dmn-js modeler
Scripts
npm test # unit tests (Vitest)
npm run typecheck # tsc --noEmit
npm run lint # ESLint
npm run lint:deps # dependency-cruiser architecture check
npm run build # build the library (Rollup → ESM + CJS + d.ts + CSS)
npm run dev # run the example modeler (Vite)
npm run test:e2e # Playwright E2E against the example app
Ground rules
- Conventional Commits. Commit messages and PR titles follow
Conventional Commits (
feat:,fix:,docs:,refactor:,test:,chore:). Releases and the changelog are generated from them via release-please. - Keep the layering intact. The library is split into
domain/(pure evaluation, no dmn-js/DOM),adapter/,simulation/,ui/andintegration/. Imports only ever point "down";npm run lint:deps(dependency-cruiser) enforces this in CI. - Add tests. Evaluation logic and hit policies are covered by Vitest unit tests; please extend them for any behavior change.
Before opening a PR
npm run typecheck
npm run lint
npm run lint:deps
npm test
npm run build
All of these run in CI on Node 22 and 24 (Node 22 also runs the Playwright E2E suite).
Reporting bugs / requesting features
Use the GitHub issue templates. For decision-logic bugs, attaching the .dmn
file and the inputs you simulated is the fastest path to a fix.