Skip to content

About

Manage Aspect Models visually — create, validate, create artefacts, persist file based

Resources

Contributing

Security policy

Stars

24 stars

Watchers

5 watching

Forks

Repository files navigation

Aspect Model Editor

Table of Contents

Introduction

This project includes the Aspect Model Editor and its documentation. As a user, download the Installer from https://github.com/eclipse-esmf/esmf-aspect-model-editor/releases .

Getting help

Are you having trouble with Aspect Model Editor? We want to help!

Getting started (for developers)

Artifacts to use

You can clone the repositories to run the aspect model editor. Feel free to contribute. If you want to run the aspect model editor from repositories, please ensure to clone and start the backend first.

Setup

Common prerequisites for all platforms:

  • Node.js 22 (LTS) and pnpm (npm install -g pnpm)
  • Rust & Cargo (stable toolchain, required for the Tauri desktop app)
  • To generate Aspect Model documentation, the installation of GraphViz is required.

Platform-specific prerequisites for the Tauri desktop app (see also the Tauri prerequisites):

Platform Requirements
macOS Xcode Command Line Tools: xcode-select --install
Linux WebKitGTK and build tools, e.g. on Debian/Ubuntu:
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev patchelf
Windows Microsoft C++ Build Tools (workload "Desktop development with C++") and WebView2 (preinstalled on Windows 10/11)

First steps into the code: Code Overview

Install & Run (Web only)

# enter the core directory where package.json is located
cd core

pnpm install
pnpm run start

The editor is then available at http://localhost:4200 and expects a running backend on port 9090.

Backend for the desktop app

The desktop app bundles the backend as a jpackage app image. Release builds take it from the platform-specific folder in the repository root:

Platform Folder Expected content (from the backend release)
macOS backend/macos/ ame-backend-<version>-mac-<arch>.app (extracted from *-mac-arm64.tar.gz on Apple silicon or *-mac-x64.tar.gz on Intel)
Linux backend/linux/ ame-backend-<version>-linux/bin/... (extracted from *-linux.tar.gz)
Windows backend/windows/ app image containing ame-backend*.exe (extracted from *-win.zip)

The folder is only needed for release builds (pnpm run build:tauri), which fail with a hint if it is missing. They add it as bundle resource via core/src-tauri/tauri.bundle-backend.<os>.conf.json (see core/utils/tauri-build.mjs) and start the bundled backend automatically. Use this script instead of tauri build directly, otherwise the backend is missing in the app.

In development mode (pnpm run start:desktop) the folder is not required and the bundled backend is not started; the app expects a backend that you started yourself on port 9090.

Run As Desktop (Tauri)

To run the desktop application in development mode (starts the Angular dev server and the native Tauri window with hot reload). The command is the same on macOS, Linux and Windows:

cd core

pnpm install
pnpm run start:desktop

Make sure the backend is running on port 9090 before working with models (see above).

Build Desktop App

Desktop packages must be built on the target platform (no cross-compilation). The command builds the Angular production bundle and the Tauri app in one step:

cd core

pnpm run build:tauri

On Linux the script sets NO_STRIP=true, because the strip bundled with the AppImage tooling fails on libraries of current distributions.

The bundles for the current platform are written to core/src-tauri/target/release/bundle/:

Platform Output
macOS macos/Aspect Model Editor.app and dmg/Aspect Model Editor_<version>_<arch>.dmg
Linux appimage/*.AppImage and deb/*.deb
Windows nsis/*-setup.exe (per-user NSIS installer)

The backend app image contains its own Java runtime and therefore matches the processor architecture: use the mac-arm64 backend for Apple silicon builds and the mac-x64 backend for Intel builds.

Unsigned macOS builds may be blocked by Gatekeeper. Remove the quarantine flag with xattr -rd com.apple.quarantine "/Applications/Aspect Model Editor.app".

On Linux (AppImage and .deb) the app sets WEBKIT_DISABLE_DMABUF_RENDERER=1 at startup, because the DMA-BUF renderer of WebKitGTK shows a blank window with several GPU drivers (e.g. NVIDIA, virtual machines). An explicitly set value is kept. If the window still stays blank or flickers, start the app with WEBKIT_DISABLE_COMPOSITING_MODE=1 (slower rendering), e.g. WEBKIT_DISABLE_COMPOSITING_MODE=1 ./Aspect-Model-Editor.AppImage.

Release

The workflow .github/workflows/tagged_release.yml (manually started with the release version) creates the release. The backend release with the same version must exist before (repository esmf-aspect-model-editor-backend of the same owner, so a fork uses the backend release of the fork).

  1. prepare sets the documentation version, creates the branch <major>.<minor>.x, the tag v<version> and a draft release. Release candidates (e.g. 2.3.0-rc1) become a pre-release.

  2. build builds the app on every platform with the matching backend and uploads it to the draft release:

    Runner Release assets
    ubuntu-latest aspect-model-editor-v<version>-linux-glibc-v<glibc>.AppImage, aspect-model-editor-v<version>-linux-amd64.deb
    macos-15-intel aspect-model-editor-v<version>-mac-x64.dmg
    macos-latest aspect-model-editor-v<version>-mac-arm64.dmg
    windows-latest aspect-model-editor-v<version>-win.exe (workflow artifact only, signed and uploaded by Jenkins)
  3. publish publishes the release and triggers the Jenkins job which signs the Windows installer. The Jenkins job is only triggered in the repository eclipse-esmf, so the workflow can be tested in a fork.

Running E2E (Playwright) Tests

cd core

# Run all E2E tests headless
pnpm run e2e

# Run with interactive UI
pnpm run e2e:ui

# Run headed
pnpm run e2e:headed

Documentation

The documentation can be found in the root directory under the path documentation.

License

SPDX-License-Identifier: MPL-2.0

This program and the accompanying materials are made available under the terms of the Mozilla Public License, v. 2.0.

The Notice file details contained third party materials.

GraalVm native-image

To build a native image we use GraalVm: GraalVm

About

Manage Aspect Models visually — create, validate, create artefacts, persist file based

Resources

Contributing

Security policy

Stars

24 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages