You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The tool is hard-coded to only work with the Modelica Buildings Library, preventing use with other libraries.
This contrasts with the original requirements:
The template package of the Modelica Buildings Library is preloaded. The tool provides the option to load additional template packages from third-party libraries.
Library version management: If a loaded class contains the Modelica annotation uses (e.g., uses(Buildings(version="6.0.0")) the software checks the version number of the stored library. If the version number does not match, the tool simply alerts the user of version incompatibility.
Objective
This ticket is to provide support for multiple libraries, and multiple library versions.
A configuration file should enable specifying the libraries to be loaded and also support customized installations:
installation:
name: "LBL-ctrl-flow"version: "1.0.0"maintainer: "LBL"description: "LBL maintained installation of ctrl-flow"libraries:
- name: "Buildings"# Only entry point libraries - other library dependencies will be detected through 'uses' annotationsgit_url: "https://github.com/lbl-srg/modelica-buildings.git"# Valid URL for git clonegit_ref: "v11.0.0"# Optional branch, commit or tag to check out, otherwise the repo HEAD branch e.g. master is usedexclude_packages:
- "Buildings.Templates.Plants"# Modelica fully qualified package name to be excluded from install
The technical debt on isModelicaPath in client/src/interpreter/interpreter.ts can also be removed by relying on the library names specified in the configuration file.
To Do
The following needs to be refactored (non exhaustive list).
A configuration file should be created to specify the library names and tag or commit number to be loaded.
The library dependencies (here Modelica Standard Library) should be identified based on the Modelica uses annotation from the libraries to be loaded, see Fetch MSL version from uses annotation #412.
[EDIT on 5/12/25] Further specification is needed regarding how to resolve a uses annotation such as uses(Modelica(version="4.0.0")) into a git URL.
Context
The tool is hard-coded to only work with the Modelica Buildings Library, preventing use with other libraries.
This contrasts with the original requirements:
Objective
This ticket is to provide support for multiple libraries, and multiple library versions.
A configuration file should enable specifying the libraries to be loaded and also support customized installations:
The technical debt on
isModelicaPathin client/src/interpreter/interpreter.ts can also be removed by relying on the library names specified in the configuration file.To Do
The following needs to be refactored (non exhaustive list).
In https://github.com/lbl-srg/ctrl-flow-dev/blob/main/server/bin/install-modelica-dependencies.sh:
A configuration file should be created to specify the library names and tag or commit number to be loaded.
The library dependencies (here Modelica Standard Library) should be identified based on the Modelica
usesannotation from the libraries to be loaded, see Fetch MSL version from uses annotation #412.uses(Modelica(version="4.0.0"))into a git URL.In https://github.com/lbl-srg/ctrl-flow-dev/blob/main/server/Dockerfile:
MODELICAPATHshould be assigned a value based on the libraries specified in the configuration file and their dependencies.__ctrlFlow(routing="root"), see Modify __ctrlFlow annotations for enhanced routing logic in the Templates package modelica-buildings#4090.In https://github.com/lbl-srg/ctrl-flow-dev/blob/main/server/scripts/parse-template-package.ts:
In https://github.com/lbl-srg/ctrl-flow-dev/tree/main/server/scripts/sequence-doc/src:
DEFAULT_DOC_VERSIONvariable should depend on {library, version}.In the React frontend: