Opened 5 years ago

Last modified 3 years ago

#5726 closed enhancement

Categorize open-source libraries in OpenModelica for different uses — at Version 1

Reported by: Francesco Casella Owned by: Francesco Casella
Priority: critical Milestone: 1.19.0
Component: Third-Party Libraries Version:
Keywords: Cc: Dietmar Winkler

Description (last modified by Francesco Casella)

During today's Board meeting, we decided to classify the available open-source Modelica libraries (see e.g. https://github.com/modelica-3rdparty/) into four categories:

  1. Production-grade libraries, full or nearly full OMC support
  2. Production-grade libraries, partial OMC support, commitment to get to full support ASAP
  3. Libraries under development or lacking proper maintenance (a.k.a. "experimental")
  4. Obsolete or otherwise unsupported libraries

The first category includes all production-grade libraries which are actively maintained by their authors, which are responsive to feedback from OSMC in case of issues such as use of illegal Modelica code that hampers the compilation by OMC, and whose coverage with OpenModelica is 100% or near 100%.

The second category is the same, except that the coverage is still not close to 100%, but we have a commitment to eventually get there, and we state it explicitly.

With the goal of promoting OMC, we should publish reports on the web that only include models from those two sets, declaring explicitly that we are working to improve the coverage in the case of set no. 2.

The goal of OSMC regarding these two categories is to get to 100% green lights everywhere.

The third category is interesting for developers, which may find it helpful to get continuous testing of their libraries with OpenModelica, and also interesting for the Consortium to promote and increase the use of OMC among new library developers. For example, it could include master/HEAD revision of libraries whose latest release(s) belong to sets 1 and 2, or libraries under early development such as OpenHPL.

It also provides useful information for peple who may consider picking up the development of open-source libraries whose development has been discontinued by their original authors, e.g. ElectricalEnergyStorage.

However, any failure in this category is not OSMC's responsibility, so we should prepare separate web reports for these libraries, whose purpose is to help their development, not to judge on the quality of implementation of OMC.

The fourth and last category includes libraries that are obsolete, because they have been superseded by more recent ones. For example, the Annex60 library is no longer developed, because it has been ported and merged into the IBPSA library, so it makes no sense to still refer to it, paricularly if there are any broken models. I would also consider very old versions of production-grade libraries in this set (e.g. Buildings prior to 5.1.0), since they most likely contain bugs that may lower the coverage ratio, but will never be fixed because the libraries have been superseded by more recent versions.

It also includes libraries that we may decide not to support because they are not conforming to the Modelica standard and their authors are not responding to pull requests or other kind of request for proper fixes.

This classification will provide the basis for web reports. It also provides the basis for the choice of libraries that we ship with the OMC installer, and that will be managed in the future by the Modelica package manager, which will only belong to sets 1. and 2., since 3. is best managed directly using a GIT tool, and 4. should never been considered in the first place.

We should probably provide some feedback in the installation procedure regarding the level of support, by linking each library of categories 1. and 2. to the corresponding web reports.

I am tentatively scheduling this task for 1.15.0.

1. Production-grade libraries, full OMC support

Library Version URL
ConPNLib TBD TBD
PNLib 2.2. https://github.com/AMIT-FHBielefeld/PNlib/releases/tag/v2.2

2. Production-grade libraries, partial OMC support

Library Version URL
AdvancedNoise 1.0.1-rc.1 https://github.com/DLR-SR/AdvancedNoise/releases/tag/v1.0.1-rc1
BuildSysPro 3.3.0 https://github.com/EDF-TREE/BuildSysPro/releases/tag/v3.3.0
BuildingSystems TBD TBD
Buildings 5.1.0 https://github.com/lbl-srg/modelica-buildings/releases/tag/v5.1.0
Buildings 6.0.0 https://github.com/lbl-srg/modelica-buildings/releases/tag/v6.0.0
Chemical 1.2.0-alpha https://github.com/MarekMatejak/Chemical
ExternData 2.5.0 https://github.com/modelica-3rdparty/ExternData/releases/tag/v2.5.0

3. Development, experimental, no longer maintained libraries

Buildings master https://github.com/lbl-srg/modelica-buildings
ElectricalEnergyStorage master https://github.com/modelica-3rdparty/ElectricalEnergyStorage
ExternData master https://github.com/modelica-3rdparty/ExternData/releases/tag/v2.5.0 https://github.com/modelica-3rdparty/ExternData

Change History (1)

comment:1 by Francesco Casella, 5 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.