-
Notifications
You must be signed in to change notification settings - Fork 32
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
unnecessary breakage with "HDF5" v1.12 #67
Comments
@conradsnicta Hi Conrad, being a consumer for both the HDF5 and Armadillo C++ library I only can confirm the importance of your statement (and library). As an independent researcher I have no control of the HDF5 development cycle, and as of now h5cpp doesn't support the 1.12 API yet. -- OTOH h5cpp code base can keep up with the changes, and I put effort into supporting Armadillo C++. In the next few months, I will leverage the difference such that In my understanding HDF6 is less likely to happen, this document suggests that best wishes: steven |
Thanks for the suggestion. Let's see how the HDF group responds. |
Hi Steven, is the 1.12 support going to land in foreseeable time? I don't know how much work it entails for you, and not being that familiar with HDF5, I am just the BFU who says: it won't compile with 1.12. Thanks! |
Thank you for the interest, there is a next generation of code base on my laptop waiting to be released, which takes C++ persistence to another level. In the past few weeks I am sleeplessly working on the matching H5CLUSTER, a rental supercomputing service, which happens to be a small but functional building block of the HDFGroup HUG-2020 event. In this event series I also will do a short presentation on the upcoming code base, and how H5CPP is making progress towards providing scalable persistence for C++ arbitrary objects. best wishes: steven |
@eudoxos I had a talk with the FNAL last week, and provided a fix for v.1.12.0 by conditionally disabling the custom pipeline, which depends on custom DAPL; a feature that may be faulty in libhdf5 1.12.0 see: 8c3b5b0 in any event I checked H5CPP against the spack version of 1.12.0 with the following flags: |
@steven-varga Hi Steve, if you have the HDF group's ear (maybe @gheber?), perhaps you could kindly inform them that HDF5 v1.12 should probably be better called HDF6 at this stage?
The breaking API changes between HDF5 releases are rather disconcerting, even taking into the various brittle pre-processor tricks used as "workarounds". Stuff like
H5_USE_110_API
is in the end just a hack, papering over the unwarranted breakage.The point of HDF is to be a boring storage abstraction, where by "boring" I mean stable. HDF5 is definitely not boring, which decreases its value and utility.
The use of semantic versioning to label HDF releases would help in this regard immensely. Minor releases such as v1.12 should not be introducing any kind of API breaks. Such breaks are better communicated by bumping the major version number, for example HDF6, HDF7, etc.
The current approach of API breakage between minor releases is causing all sorts of issues. Examples:
TLDR: I would suggest that the HDF5 developers be made explicitly aware that public API breaks are not exactly conducive to productivity. It would be useful to properly communicate such changes via an increase in the major version number, for example HDF6.
The text was updated successfully, but these errors were encountered: