Skip to content

Repository of the diploma theses of Philipp-Lorenz Glaser and Jan Mueller

Notifications You must be signed in to change notification settings

borkdominik/CM2ML

Repository files navigation

cm2ml

Visualizer: https://cm2ml.vercel.app

CM2ML is a framework for encoding the structure and semantics of conceptual models. It decouples concrete modeling languages from encoder implementations through an intermediate representation.

Installation

Library

The entire CM2ML framework is available via the @cm2ml/cm2ml package. This includes all modules, as well as the CLI and REST adapters.

npm install @cm2ml/cm2ml

Library (Browser)

The @cm2ml/builtin package may be used in the browser, as it does not include the CLI and REST server. Parser and encoder authors may also install @cm2ml/plugin, @cm2ml/ir. Authors of adapters may install @cm2ml/plugin-adapter.

npm install @cm2ml/builtin @cm2ml/plugin @cm2ml/plugin-adapter @cm2ml/ir

CLI

npm install -g @cm2ml/cli

cm2ml -h

REST Server

npm install -g @cm2ml/server

cm2ml-server

Packages

Encoders

Framework

Languages

Pattern Mining

Other

Development

Enable corepack with corepack enable to automate the installation and selection of the correct package manager. Dependencies may be installed via pnpm install. This monorepo uses Turborepo to orchestrate task execution. The build, test, lint, and typecheck tasks are available in all packages. The turbo package script may be used to execute tasks as required.

The ci and ci:full package scripts execute all tasks, with the latter including E2E tests.

Testing

The locally built CLI and REST server may be started via the cm2ml and server package scripts.

Releasing

To create a release, run the changeset package script. This will guide you through the process of creating a changeset. Next, commit the changeset and push to the main branch. The CI will create a pull request for the release that must be merged to publish the packages.