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.
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
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
npm install -g @cm2ml/cli
cm2ml -h
npm install -g @cm2ml/server
cm2ml-server
- @cm2ml/bag-of-paths-encoder
- @cm2ml/feature-encoder
- @cm2ml/graph-encoder
- @cm2ml/tf-encoder
- @cm2ml/tree-encoder
- @cm2ml/builtin
- @cm2ml/cli
- @cm2ml/cli-adapter
- @cm2ml/cm2ml
- @cm2ml/deduplicate
- @cm2ml/ir
- @cm2ml/ir-post-processor
- @cm2ml/metamodel
- @cm2ml/metamodel-refiner
- @cm2ml/plugin
- @cm2ml/plugin-adapter
- @cm2ml/rest
- @cm2ml/rest-adapter
- @cm2ml/xml-parser
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.
The locally built CLI and REST server may be started via the cm2ml
and server
package scripts.
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.