Contributing to Runiq
We welcome contributions! This guide explains how to set up your environment, coding standards, and the PR process.
Environment
- Node: >= 20.19.0 < 21 or >= 22.12.0
- Package manager: pnpm (v8+)
- OS: Windows, macOS, or Linux
bash
pnpm -v
node -vRepository Setup
bash
git clone https://github.com/jgreywolf/runiq.git
cd runiq
pnpm install
pnpm -r build
pnpm -r testPackages overview
- packages/core – Core types, shapes, registries
- packages/parser-dsl – Langium parser
- packages/layout-base – ELK layout engine adapter
- packages/renderer-svg – SVG renderer
- packages/io-json – JSON import/export
- packages/icons-fontawesome – Icon library
- packages/cli – Command-line interface (WIP)
- apps/editor – SvelteKit web editor
Coding standards
- TypeScript strict mode; no
any(preferunknown+ type guards) - ESLint + Prettier enforced
- Meaningful names; comment complex algorithms
Test-Driven Development
- Write tests first where practical
- Use Vitest; minimum coverage targets per package
- Run tests frequently
bash
pnpm -r testRunning the docs
bash
pnpm -C docs dev
pnpm -C docs buildPull Requests
- Create a feature branch from
main - Ensure build, lint, and tests pass
- Update docs if behavior changes
- Open PR with a clear description and screenshots (for visual changes)
Issue triage
- Use labels: bug, enhancement, docs, good first issue
- Provide minimal repros when reporting bugs
Code of Conduct
Be respectful, constructive, and inclusive. We follow the Contributor Covenant.
