Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finalize version 3.3.2 #62

Closed
6 tasks done
casella opened this issue Jun 4, 2022 · 10 comments
Closed
6 tasks done

Finalize version 3.3.2 #62

casella opened this issue Jun 4, 2022 · 10 comments
Assignees

Comments

@casella
Copy link
Collaborator

casella commented Jun 4, 2022

We are almost done with a new version of ExternalMedia that uses a dynamically linked library for the external functions and works on Dymola and OpenModelica both under Windows and Linux, see the dynamiclib branch

There are a few remaining things to be done:

Once the 3.3.2 library has been tested, release it, then convert it to MSL 4.0.0 and release 3.4.0 (or 4.0.0, on-going discussion on the modelica-design mailing list on what is the best choice for the new version name).

@jowr
Copy link
Collaborator

jowr commented Jun 19, 2022

I have opened a couple of issues and I may need some assistance. It looks like we are close to the finish line!

@casella
Copy link
Collaborator Author

casella commented Jun 22, 2022

Thanks @jowr, I will look into it ASAP, going through a few busy days now.

In the meantime we've found a solution for the issue with #55, see OpenModelica/OpenModelica#8591. @mahge should open a PR soon to fix that, then ExternalMedia should really work fine in the latest nightly build of OpenModelica as well.

At that point I would suggest we meet online to celebrate, sharing a (real) beer or something 😄

@casella
Copy link
Collaborator Author

casella commented Jul 14, 2022

Good news: we now merged to the master branch a development version of 3.3.2 that works out of the box under Linux and Windows, Dymola and OpenModelica. Credits to @fedetftpolimi for helping me sorting out all issues with OpenModelica, while keeping compatibility with Dymola, under two different operating systems. I wouldn't have managed myself.

Less good news: the fix for #55 in OpenModelica that was proposed a couple of weeks ago created a lot of other problems, because it changed the integer type across the whole compiler, causing countless glitches; hence, we had to roll it back, and we'll need to figure out something else to fix the problem; see OpenModelica/OpenModelica#8591 for the latest developments. In the meantime, models working in the one-phase region will work fine in OpenModelica, while models working in the two-phase region may have issues because of that.

You can test the current development version by going to the Actions tab, selecting the last successful build, downloading the Binaries artifact, and then extracting the library to your file system from the zip file. The library should work out of the box, just open the package.mo file.

Beta testers are encouraged to try it out and post tickets on this issue tracker if they find some problems.

@jowr
Copy link
Collaborator

jowr commented Aug 11, 2022

Only project collaborators have access to the binaries produced by the GitHub actions. Here is a public link for beta testers who would like to try the libraries compiled for commit 97fb739: ExternalMedia_97fb739.zip

@bilderbuchi
Copy link
Collaborator

bilderbuchi commented Aug 19, 2022

In the meantime, models working in the one-phase region will work fine in OpenModelica, while models working in the two-phase region may have issues because of that.

You can test the current development version by going to the Actions tab, selecting the last successful build, downloading the Binaries artifact, and then extracting the library to your file system from the zip file. The library should work out of the box, just open the package.mo file.

I was able to download the binary for 97fb739 from the CI run, that is quite neat/useful! (I have commits in the repo, do you mean that with "collaborator"?)
@casella do you think it's time soon to add ExternalMedia master to the OM library test suite (with Dymola reference results?), to get better visibility which tests work now and which don't work yet?
In some spot checks, I found that

  • the tests in Test.TestMedium that don't have State in the name seem to mostly run to completion, although many print a lot of assertion failures
  • the Test.MSL_Models tests don't seem to simulate successfully (one reports a lot of root finding errors).
  • Some tests in Test.CoolProp, e.g. Test.CoolProp.Misc.WaterComparison, crashed OM 1.19.2 (without crash report dialog) when run for the first time (but not thereafter).

@casella
Copy link
Collaborator Author

casella commented Aug 19, 2022

@casella do you think it's time soon to add ExternalMedia master to the OM library test suite (with Dymola reference results?), to get better visibility which tests work now and which don't work yet?

In principle, yes, and I'd like to test both the released versions (to look for omc regressions) and the development version (to look for library regressions). The only problem is that the CI needs to have access to a built version including the libraries. @jowr, is it possible to set up a link that always points to the latest build made using the master branch?

@bilderbuchi
Copy link
Collaborator

The only problem is that the CI needs to have access to a built version including the libraries.

At least for the released library versions, this should be possible by using the artifacts from the "Releases" tab. The links follow a human-readable scheme (so not hashes involved), e.g. https://github.com/modelica-3rdparty/ExternalMedia/releases/download/v3.3.1/ExternalMedia_v3.3.1.zip

For branch-based access (e.g. the master version), this will be more complicated; you'll probably need to use the Github API to get the run ID of the latest CI run, and get at the zip file artifact available there.

@bilderbuchi
Copy link
Collaborator

bilderbuchi commented Dec 13, 2022

For branch-based access (e.g. the master version), this will be more complicated; you'll probably need to use the Github API to get the run ID of the latest CI run, and get at the zip file artifact available there.

It seems this is not possible out-of-the-box (bad), but some kind soul made a service that creates links for exactly what we need:
https://nightly.link

https://nightly.link/modelica-3rdparty/ExternalMedia/workflows/ci/master/binaries.zip points to the binaries artifact of the latest successful run on master. I tried this link in a private browser session, so it seems to work without Github login.
This should serve nicely as a URL for the OM CI. (I'm not sure if the OM CI is caching those downloads, but it might be a good idea to do that)

Note: the author writes on the above website

If you'll be publishing a link to your own repository's artifacts, please install the GitHub App anyway, so that downloads for your repositories don't share the global API rate limit. The throttling will likely become very bad over time.

so one of the EM maintainers might consider doing that.

@casella
Copy link
Collaborator Author

casella commented Dec 13, 2022

Good for testing. For the final release, we are actually now using our servers as backups, because the bandwidth for releases out of GitHub was quite disappointing, recently, and we got lots of timeout issues.

@casella
Copy link
Collaborator Author

casella commented Apr 12, 2023

All is ready for the 3.3.2 release, you can get a pre-release from the binaries here. We are fixing a few last issues and then officially release 3.3.2 and 4.0.0.

@casella casella closed this as completed Apr 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants