Skip to content

Generating a new MSL release

Thomas Beutlich edited this page May 4, 2020 · 13 revisions

When creating a new release then these are the normal steps one should take. The guidelines below take v4.0.0 as an example version.

Manual work flow

  1. Checkout the master branch and make sure it is in sync with the official upstream repository https://github.com/modelica/ModelicaStandardLibrary

     $ git checkout master
     $ git pull upstream
  2. Tag the release and also annotate the tag at the same time with some meaningful message. Do not push the tag yet.

    $ git tag -a -m "Final release 4.0.0 of the Modelica Standard Library" v4.0.0
  3. Generate a zip archive of the tagged version. Thanks to the settings in the .gitattributes file this will

    • fill in place holders like revisionId automatically
    $ git archive --format=zip -o /tmp/ModelicaStandardLibrary_v4.0.0.zip v4.0.0
  4. Double check the created zip file and if satisfied push the tag to upstream

    $ git push origin v4.0.0
  5. The directories inside the zip archive need to be renamed:

    • ModelicaModelica 4.0.0
    • ModelicaServicesModelicaServices 4.0.0
    • ModelicaReferenceModelicaReference 4.0.0
  6. Some test-only libraries should not be shipped with the release and need to be removed from the zip file:

    • ModelicaTest
    • ModelicaTestConversion4.mo
    • ModelicaTestOverdetermined.mo
  7. For final releases also the HTML help needs to be created and added. For now we used OpenModelica for this and placed it under Modelica 4.0.0/Resources/helpOM/.

  8. In order that the README.md works also in the zipped up version links to file paths need to be updated. E.g.,

- ![ModelicaLibraries](Modelica/Resources/Images/UsersGuide/ModelicaLibraries.png)
+ ![ModelicaLibraries](Modelica 4.0.0/Resources/Images/UsersGuide/ModelicaLibraries.png)
  1. Go to the Releases page and edit the pushed tag and add the created zip file as an asset.

Automated generation

All the steps above can be automated using scripts provided in https://github.com/modelica-tools/msl-release.