xrg-simulation / SMArtIInt

Simple Modelica Artificial Intelligence Interface
BSD 3-Clause "New" or "Revised" License
11 stars 3 forks source link

Library name changes can be problematic if not handled clearly #11

Open casella opened 3 days ago

casella commented 3 days ago

Follow-up of #10

while I agree with @HankeXRG that SMArtInt is a much better brand than SMArtIInt, the rules of the Modelica Language Specification always apply.

MLS Section 18.8 introduces versions and versions handling annotations. All these concepts apply to a top-level class, a package in our case. The problem is, you can have different versions of the same package, and you get a bunch of nice features such as version management, conversion scripts to handle version updates and ways to declare backwards compatible versions, but if you change the name of the package, well, that's a different package, regardless of corporate branding decisions.

Bottom line, according to the MLS, SMArtInt 0.3.0 is a completely different library from SMArtIInt 0.2.2.

The current status, i.e. the same github repository containing releases of two libraries that are supposed to be the same, but actually have a different top package name, is wreaking havoc on OpenModelica's package manager, which assumes that different versions of the same library will have the same name, as implied by the Modelica Language Specification.

To avoid issues, not only with the OpenModelica package manager, but also with other partners in the Modelica eco-system, I would warmly suggest you to:

This would be a clean solution that would allow the OpenModelica package manager to handle the newly branded library properly, while continuing to support ClaRa 1.8.1 and 1.8.2 that have a dependency on SMartIInt 0.2.2.

Thanks!

casella commented 3 days ago

Update: @adrpo managed to get the OpenModelica package manager to handle this. However, for clarity, I would still warmly recommend what I suggested in the previous comment. Thanks!