sbmlteam / libsbml

LibSBML is a native library for reading, writing and manipulating files and data streams containing the Systems Biology Markup Language (SBML). It offers language bindings for C, C++, C#, Java, JavaScript, MATLAB, Perl, PHP, Python, R and Ruby.

Home Page:https://sbml.org/software/libsbml

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

What is the current `libsbml` version?

exaexa opened this issue · comments

What is the authoritative source for knowing the latest version of libsbml that we can (for packaging and dependency trakcing purposes) assume as properly released?

I'm asking because:

  • github and the future website report 5.19.0
  • SBML News on the current website reports 5.18.0
  • http://sbml.org/Software/libSBML reports 5.19.0 but docs link to 5.18
  • github source code and VERSION.txt reports 5.19.2, containing some fixes we'd love to use and link to, but these are not tagged or documented at all.
  • PyPi magically has 5.19.2 https://pypi.org/project/python-libsbml/

I'm now taking github tag as the authoritative answer, but since the new versions are already "released" elsewhere and the version reported by tags is way old, it would be cool to either update that or point users/developers to actual latest releases.

Thanks a lot for any clarification

we did an out of band release for pypi / conda, since the 5.19 sources were not compatible with it. But yes, we can and should create a tag for that.

Ah so, thanks for the info! I suppose this means that the github tag version is the authoritative version, right?

(background information: we would really welcome tagging 5.19.2 on github too, because it would really simplify the deployment of the apple M1 build for the julia-wrapped SBML library, mostly because of update policy in Yggdrasil -- see discussion here: LCSB-BioCore/SBML.jl#152 )

Thanks for tagging a new release! However I just noticed 5.19.2 breaks the C API, there are some missing functions compared to 5.19.0, like FbcSpeciesPlugin_isSetChemicalFormula and FbcReactionPlugin_getLowerFluxBound

More specifically, with v5.19.0 I get:

% nm  /home/mose/.julia/artifacts/32c3e6f2d64aec6bf81064556b2345f0b8b24e6e/lib/libsbml.so | c++filt| grep FbcSpeciesPlugin_isSetChemicalFormula
00000000004b4060 T FbcSpeciesPlugin_isSetChemicalFormula

while with v5.19.2:

% nm  /home/mose/.julia/artifacts/672236b8ba3fe39c7098da4f998b9c52a9d3000f/lib/libsbml.so | grep FbcSpeciesPlugin_isSetChemicalFormula       
00000000004cd520 T _Z37FbcSpeciesPlugin_isSetChemicalFormulaP14FbcSBasePlugin
% nm  /home/mose/.julia/artifacts/672236b8ba3fe39c7098da4f998b9c52a9d3000f/lib/libsbml.so | c++filt | grep FbcSpeciesPlugin_isSetChemicalFormula  
00000000004cd520 T FbcSpeciesPlugin_isSetChemicalFormula(FbcSBasePlugin*)

It looks like the symbol got the C++ name mangling, as if it wasn't tagged with extern "C"

I believe I found the issue, I'm preparing a PR, but I'll also need to do tests, so it can take a bit to land.

we might have to look into this. Like i said essentially the 5.19.2 that was released for python was essentially a 5.19 + a fix that made it compile for 5.19. It was not meant as a full release, just a way to honor the requests to make libsbml available for 3.10. We can try and make a new release, as there have been other things that were changed since.

so instead it would be better to base a new PR on development, i think

After talking with Sarah, i recreated the 5.19.2 tag with all the fixes from you. Thank you so much. I hope this resolves this item.

Great, thanks a lot! Since everything seems to be solved I'm closing the issue to keep the list clean. :]

(On a side note, it might be better not to change the tags after release because it may break packaging (see eg here https://github.com/giordano/Yggdrasil/blob/98ee2e11c5ba0623862c9d52df5aa37d7a784999/S/SBML/build_tarballs.jl#L9 checks the tarball hash), and instead just pop out 5.19.3. But IMO it's okay in this case.)