Skip to content

Breaking ModelicaServices cyclic dependency on Modelica #3909

@sjoelund

Description

@sjoelund

Currently, ModelicaServices is backwards compatible with older versions of itself and has noneFromVersion conversion annotations. However, it has a uses-annotation on Modelica which in turn has a uses-annotation on ModelicaServices. This means that it is not possible to have for example Modelica 3.2.2 loaded with ModelicaServices 3.2.3 or 4.0.0.
There are some interfaces in MSL that are used as well as some icons, but I believe these would work just as well if they were put into ModelicaServices and if the uses-annotation was removed, it would instantly be possible to load a more recent ModelicaServices if needed.
The disadvantage would be that some form of sanity check from MSL's point of view would be lost and it would need to rely on ModelicaServices version/conversion annotations being correct.

This might for example make it possible for a Modelica tool vendor to ship only 1 version of ModelicaServices that is compatible with all previous MSL versions using ModelicaServices. It would also make package management easier.

I should note that I have not tested such changes, but would like a discussion to see if this would be something we are interested in changing (and would perform tests on any pull request I create for this).

Metadata

Metadata

Labels

L: ModelicaServicesIssue addresses ModelicaServicesdiscussionDiscussion issue that it not necessarily related to a concrete bug or feature

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions