Opened 5 years ago
Last modified 3 years ago
#5726 closed enhancement
Categorize open-source libraries in OpenModelica for different uses — at Version 9
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 )
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:
- Production-grade libraries, full or nearly full OMC support
- Production-grade libraries, partial OMC support, commitment to get to full support ASAP
- Libraries under development or lacking proper maintenance (a.k.a. "experimental")
- 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 people 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.
For some libraries, it seems that the authors have continued the development for a while without having a proper release. If the master version is clearly better than the latest released version, we are provisionally including that as the reference one; in the meantime, we are contacting all authors to make sure that the latest improvements are included in an official release.
I am tentatively scheduling this task for 1.15.0.
1. Production-grade libraries, full OMC support
Library | Version | URL |
---|---|---|
PNLib | 2.2. | https://github.com/AMIT-FHBielefeld/PNlib/releases/tag/v2.2 |
FastBuildings | latest | https://github.com/open-ideas/FastBuildings/releases/tag/master |
HanserModelica | 1.1.0 | https://github.com/christiankral/HanserModelica/releases/tag/v1.1.0 |
KeyWordIO | 0.9.0 | https://github.com/christiankral/KeyWordIO |
MessagePack | latest | https://github.com/modelica-3rdparty/msgpack-modelica |
ModelicaByExample | 0.6.0 | https://github.com/mtiller/ModelicaBook/tree/master/ModelicaByExample |
Modelica | 3.2.2 | https://github.com/modelica/ModelicaStandardLibrary/releases/tag/v3.2.2 |
Modelica | 3.2.3 | https://github.com/modelica/ModelicaStandardLibrary/releases/tag/v3.2.3%2Bbuild.3 |
2. Production-grade libraries, partial OMC support
3. Development, experimental, no longer maintained libraries
Library | Version | URL |
---|---|---|
Buildings | latest | https://github.com/lbl-srg/modelica-buildings |
ExternData | latest | https://github.com/modelica-3rdparty/ExternData |
FCSys | TBD | TBD |
IBPSA | latest | https://github.com/ibpsa/modelica-ibpsa |
ModelicaTest | latest | https://github.com/modelica/ModelicaStandardLibrary/tree/master/ModelicaTest |
Modelica_DeviceDrivers | latest | https://github.com/modelica-3rdparty/Modelica_DeviceDrivers |
4. Obsolete or discontinued
Library | Version | URL | Reason =" |
---|---|---|---|
ConPNLib | master | https://github.com/lochel/ConPNlib/commits/master | Superseded by PNLib |
ElectricalEnergyStorage | latest | https://github.com/modelica-3rdparty/ElectricalEnergyStorage | Discontinued by the authors |
IdealizedContact | N/A | https://github.com/tbeu/IdealizedContact | No longer maintained |
ModelicaTest | 3.2.1 | https://github.com/modelica/ModelicaStandardLibrary/tree/maint/3.2.1/ModelicaTest | Superseded by MSL 3.2.2, no longer maintained |
Change History (9)
comment:1 by , 5 years ago
Description: | modified (diff) |
---|
comment:2 by , 5 years ago
Description: | modified (diff) |
---|
comment:3 by , 5 years ago
Description: | modified (diff) |
---|
comment:4 by , 5 years ago
Description: | modified (diff) |
---|
follow-up: 6 comment:5 by , 5 years ago
comment:6 by , 5 years ago
Replying to dietmarw:
MSL 3.2.2 is also no longer maintained.
That is true, but there are still many libraries out there that have a annotation(uses(Modelica(version="3.2.2")));
annotation, so if we want to support them we need to include 3.2.2 in the "good libraries" list for a while. I think keeping the last and one but last version active is a reasonable compromise (we were asked to do so with Buildings, for example).
I am contacting library owners to make sure they update the uses annotation, but that would take some time.
How would you suggest to proceed?
comment:7 by , 5 years ago
Description: | modified (diff) |
---|
comment:8 by , 5 years ago
Since MSL 3.2.3 is backward compatible the user libraries could be loaded with 3.2.3 silently (just warning about it) without having to update the uses annotation. Good luck with getting the upstream to update the libs ;-)
comment:9 by , 5 years ago
Description: | modified (diff) |
---|
MSL 3.2.2 is also no longer maintained.