-
-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
Add HDF5 #192
Add HDF5 #192
Conversation
hdf5 1.8.16 supports VS2015
--with-pthread=yes --enable-cxx --with-default-plugindir=$PREFIX/lib/hdf5/plugin | ||
|
||
make | ||
make install |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If there a make check
?
Thanks for putting this together @groutr. |
features: | ||
- vc9 # [win and py27] | ||
- vc10 # [win and py34] | ||
- vc14 # [win and py35] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we need both this and python
in build though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You do. These are the actual features. Python in build only makes the selectors here work (I think).
Importantly, hdf5 should NOT be a python library - it is a lower-level library. This is why python is only a build-time dependency. If it were a runtime dependency, it would be tied to that particular version of Python. Here's a strange use case that would be possible with the former, but not the latter: build Python 2.7 with VS 2015. We did a very bad job coupling python with visual studio version too strongly. It is a strong convention, sure, but not a hard requirement. I hope I have time to correct the way that features are done soon - I will do something more explicit, like what @ukoethe has done in ilastik.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, ok, thanks for setting me straight.
I had a nice chat with @ukoethe and @stuarteberg earlier. There are some proposals that @ukoethe has for how we may help address these sort of things in conda build
and more generally ABI and API compatibility. Also, I think it would be great if we can we work with @ukoethe to incorporate his work on building Python with a looser VS constraint as a proposal at conda-forge.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am having a deja-vu here. It is time to compile that info in a wiki! I will start something tomorrow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jakirkham I'm excited to have so many brilliant people thinking about these issues. I'll do what I can to help get @ukoethe's work with the looser constraints into conda-build.
Conda forge is a different story than conda-build, obviously. For conda-forge, the question I think is "do you want to leverage conda-forge to support non-standard Python distributions?" My sentiment is "probably," but at what cost in terms of taxing the build services? If that cost is acceptable, this would be really exciting. You could put together alternative non-standard distributions, like the one that @jjhelmus posted last week (ACPD?)
url: http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-{{version}}.tar.gz | ||
md5: b8ed9a36ae142317f88b0c7ef4b9c618 | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Micro nit, only one blank line here.
Restarting the Mac CI as it appears to have stalled out. |
One very minor nit. Otherwise I think I am 👍 on this with the nit fix and CI passing. Anyone else have any thoughts? |
After restarting the Mac build it died again, the error, at least IMHO, is a bit annoying. Travis CI doesn't like it if something doesn't produce output for 10 mins. While this can be the sign of a hang, there are perfectly reasonable scenarios where it isn't a hang, but a silent long running command. Unfortunately, there is no simple way to change the time limit (unless this has changed recently 🙏). One way to workaround this is to use Any other thoughts on this problem? Other potential solutions? |
Opened this related issue ( #195 ) for the silent long running Travis CI builds. |
@jakirkham I started something here: https://github.com/conda-forge/staged-recipes/wiki/VC-features |
@groutr and @jakirkham I believe we won't be able to run the tests using Travis-CI's free service . I remember I tried that before and failed. HDF5 testing is pretty intensive and it does takes a lot of time to finish 😒 I have a question for this package and some others in this line up ( I am saying this because I believe we should try to use the default channel as much as possible. We should diverge from the default only one it does not satisfies the needs of the community. (Ideally, if our way is better, the default channel would eventually incorporate our changes.) Here is the story behind |
The story here is the same. This is a newer version of HDF5 than in |
nmake | ||
if errorlevel 1 exit 1 | ||
|
||
REM Install step |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should probably also test here. So, ctest
?
To clarify, the issue we are seeing is not running out of time (it ran ~18mins the upper limit is ~50mins). The issue is that the program is too quiet and so it is terminated. Why it is quiet, I don't know. Though it is worth noting that we are running the same test suite on Circle CI and the whole build takes ~12mins. Are there some options to make the testing phase nosier? Alternatively, can we run the test suit in pieces? Some solution like this will work around this quiet issue from Travis CI. Worst case maybe we hack |
You are correct. Maybe we can "hack-patch" the tests to make them noisy. |
@ocefpaf, I think I was wrong about the cause of the hang and you were correct. Namely, some HDF5 tests may be to resource intensive for running on CI. It turns out the The following PR ( #199 ) includes this one and the tweaks necessary to get the tests to run. Feel free to take a look. Personally, I think we are ready to merge (once CI passes). However, if you have more thoughts, feel free to share. |
Thanks @groutr for all your hard work. This has been merged. |
Thanks @groutr and @jakirkham! Nice to have HDF5 in conda-forge! |
@ngoldbaum @andrewcollette @ilanschnell @ddale @stuarteberg @FRidh, we are adding |
Just out of curiosity - why include packages in conda-forge that are in the default channel? |
First, the |
That is an important question! The reason
It is important to note that continuum devs are looking closely to conda-forge. That means conda-forge is a fast track to get changes back into the default channel. (See conda-forge/proj.4-feedstock#2 for an example.) Edit: Instead of sending an e-mail to continuum to ask for changes in a recipe (or a new package) you can just send a PR here. That makes the whole process more transparent and testable because the community will see the recipe changes, how the binaries are build, and will be able to install them before it makes its way to the default channel.. |
Additionally, as I recall, some default packages do not contain headers and are unsuited to doing development with. Having a separate package is the only way to deal with this. I believe this exact problem came up with HDF5 and Cyclus. |
I guess another point is a change merged to a feedstock (repo) here immediately goes to work generating the package. Thus, you could be up and running with your changes quickly after a change is merged. It can also do the build for you on systems that you may not have development infrastructure for (e.g. Windows). |
Though @jakirkham - it doesn't seem like the hdf5 windows package has made it to anaconda.org yet |
Yes, it was initially working, but it seems to now have some issues that seem related to how feature tracking of VC occurs. Trying to fix in a PR, but the queue is a bit sluggish today. |
My bad. I re-started a bunch of failed builds that did not made its way into the channel. |
Honestly, I think there is just quite a bit of stuff being added in general so it just adds a bit of load. We can continue tweaking the skip controls. |
Though honestly that is preferable to nothing being added and no load. 😄 |
OK, this is interesting. Thanks for the detail! I didn't realize conda-forge packages would eventually make their way into the default channel. For now I'm going to continue to PR yt releases to conda-recipes, but I will also look into getting conda-forge setup for yt. |
Sure, hope that helps. Ask more questions if you want to know more.
Definitely, feel free to ping me when you do. Happy to help you get started. To get a rough idea of how that will go there are a couple simple steps. |
If there is a (very out-of-date) recipe for a package currently in conda-recipes do you want me to leave a note there when I add it to conda-forge? |
Also pinging @jreadey; you may want to let your colleagues at the HDF Group know about this in case they want to contribute in future. |
Split from #108