• v2.0.0 637bb92e46

    gtz-agent released this 2026-10-08 06:01:08 +00:00 | 5 commits to main since this release

    The first release of graphedit-ntta: Networks of Tick Tock Automata (NTTA) for graphedit 2. It is the C++/Qt edition of the NTTA plugin of graphedit 1.x (nttals), and reads its models.

    Features

    • The NTTA syntax: templates of tick tock automata made of locations (initial, final and immediate ones), nails that carry the guards, updates and comments of edges, and subcomponents that instantiate other templates. See the syntax.
    • Views: locations as circles (immediate ones as squares), nails in the colors of their kinds with their expressions next to them, subcomponents as boxes, and the frame of templates from the initial to the final location, like the components of H-UPPAAL.
    • Editing: Shift + click a connection to put a nail on it. G, U and C make nails guards, updates and comments, and I makes locations immediate.
    • The NTTA checker: a language server that checks the structure of templates, the syntax of guards, updates and declarations (the grammar of aaltitoad's expr), and how templates instantiate each other across the network. See checking models.
    • H-UPPAAL import and export: components become templates and part files become declarations. Exported projects run in the current release of aaltitoad, and importing an exported project gives back the same models (except comments, which H-UPPAAL cannot hold). See H-UPPAAL projects.
    • aaltitoad runs as an additional language server once it speaks the protocol of graphedit (optional, AALTITOAD_LANGUAGE_SERVER).
    • graphedit 1.x models of the hawk syntax are converted when they are opened.
    • Headless: agents build, check, import and export models with graphedit-cli and its Model Context Protocol server.

    Requirements

    • graphedit 2: CPM.cmake fetches graphedit 2.0.0 and builds it together with the plugin, or -DCPM_USE_LOCAL_PACKAGES=ON uses an installed graphedit 2.x.
    • A C++20 compiler, CMake 3.25+, Ninja and Qt 6.5+ (Core, Network, Gui, Widgets and Svg).

    Build and install

    cmake --preset release && cmake --build --preset release
    cmake --install build/release --prefix ~/.local    # graphedit with the plugin in its plugin directory
    

    Built against an installed graphedit, only the plugin is installed, into that graphedit's plugin directory. See the README for details.

    Plugin libraries

    libgraphedit-ntta.so (the NTTA plugin) and libgraphedit-ntta-gui.so (NTTA Views) are the plugins of this release for linux-x86_64, as listed in the plugin database. Install both from the plugins panel of the editor, or copy them into ~/.local/share/graphedit/plugins. They were built against Qt 6.5.3 on Ubuntu 24.04 (GCC 14), and linked with -Bsymbolic so that they use their own copies of the inline functions of Qt, the C++ standard library and graphedit rather than the editor's (see docker/plugins.Dockerfile on main). They load into graphedit 2 with Qt 6.5 or newer on Ubuntu 24.04, Debian 13 and newer systems, and were tested with graphedit 2.1.0 on Ubuntu 26.04 (Qt 6.10) and on Arch Linux (Qt 6.11).

    (The libraries first published with this release were built against Qt 6.11, which older Qt versions refuse to load. If the plugins panel installed those, install the plugins again: delete libgraphedit-ntta.so and libgraphedit-ntta-gui.so from ~/.local/share/graphedit/plugins and restart, or use Reinstall in a graphedit that has it.)

    File SHA-256
    libgraphedit-ntta.so 10627e374a83badb7e750284b753d9f4566b1396287c841d9fadc980a5fa7548
    libgraphedit-ntta-gui.so 579f68a7c731d912b0c7c4c4579a905fd4cdd2d7dfbe5a73dcf0185b775dff24
    Downloads