On Wed, 4 Mar 2015 at 16:06 -0000, Kenneth Hoste wrote: > Unfortunately, there's no easy way to prevent this auto-downloading > and installing dependencies when installing a Python package with > "python setup.py install".
Excuse the following paragraph of ranting, easybuild is still looking like a good and useful tool. I'm an old curmudgeon who does not like some of the trends on the Internet as a whole. I find it disgusting that a lot of modern software will just arbitrarily download things from the Internet. Perl started doing some of this late in it's life and is somewhat controllable. Python seems to have embraced this early in it's life. I believe that software builders really need to know and explicitly state/request all of the libraries their software uses. Not doing this can build large, complex or other long term issues into software without anyone knowing. This issue is part of why I support our systems not having a direct Internet connection. > There are some ways (e.g., doing the build in a jail-like > environment), but they're not trivial. My initial hope was that easybuild supported building software outside of the live environment (mock, chroot, fakeroot). This is not the case and I can live with it for now but I hope this is/becomes part of the future direction. > I'll see what I can do to get six and ecdsa properly included where > needed, as dependencies for dateutil and paramiko, resp., thanks for > bringing this up. thanks. > Just to clarify: the easyconfigs that are part of the EasyBuild > installation are meant to be treated as examples (which does not > mean they should contain inconsistencies like the one you reported). This is also where I find the current easybuild process a little awkward. I generally prefer examples to be out of the main execution path. i.e. If these are really examples, they should not be used automatically. If they are a default configuration, they should work and be maintained (which is a lot of work for 2000+ configurations). I presume this can be addressed by not installing the easyconfig package, but I would still like to have the examples handy for reference. It is a little more unclear how easyblocks are to be treated. So far I have not had to look at or deal with any of the easyblocks. Again, easybuild is very helpful, the current documented quick start process and built in easyconfigs are very helpful to prove the usefulness of easybuild and get started with a couple of applications. This is allowing me to fairly quickly build an initial test installation of a large set of applications. After things settle down I expect to have a consistent collection of easyconfig files in the ebfiles_repo directory. I do notice that these files have an extra buildstats clause in them which causes minor difficulties diffing my original files against the built versions to ensure consistency. > So, feel free to adjust easyconfigs to your liking for your local > installations. This is what I'm doing and I expect to spend considerable time building our first production set of applications. Easybuild does cover a large portion of our user software needs. At this time I have no need/desire to address any application unless it already has an example easyconfig (in the future I do expect to start adding other or unique software). A follow on issue is when to update our private configuration with new versions of software. I hope this or the HPCBIOS project can provide some backend support for this. > > I also see a python-dateutil-2.1-goolf-1.4.10-Python-2.7.3.eb > > configuration file. It looks like this would be redundant with > > the current easybuild files, but could serve as a good example for > > users building python addons for individual use. > > This one mainly serves as an example, yes. > > However, there are other example of similar easyconfigs that do make > sense. > > See numpy-1.7.1-goolf-1.4.10-Python-2.7.3.eb for example. The numpy > that is included in Python-2.7.3-goolf-1.4.10.eb is older (v1.6.1), > so a seperate easyconfig file for numpy allows to install a newer > version of numpy than the one that comes with the Python module. I did see that numpy and scipy and a few others were already included in the Python build. I didn't notice the version numbers differences but it is good to see support for other versions available. Can these modules be loaded on top of a python already containing older versions? What is current thinking on whether things like scipy should be built into the python build or be separate modules? For now I'm planning to build a single consistent set of software (with just the goolf toolchain). Every 6-8 months or so would be an updated release with freshened software. My expectation is that most users should be able to use any fairly recent version of things in our easybuild software set. I don't plan to add new software until it has reasonable maturity. Any user needing a different version would be on their own. It sounds like they could build their own easybuild based add on packages but I don't plan to immediately support. My real hope (but not expectation) is that scientific software developers will improve their processes to better address compatibility between software versions. > > These changes just allow building to complete successfully. I > > have not started testing any applications beyond the build > > process. > > Some builds include tests, like the numpy easyblock that checks the > performance of numpy.dot in an attempt to ensure that numpy was > correctly linked with BLAS (see > https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/n/numpy.py#L197). > And that's beside the unit test suite which is also run. > > Lately, we've been paying more attention to including (simple) tests > in the build procedure as executed by EasyBuild, but we should do > this more, where possible. This is good and I do notice test cases being run in the log files. I'm still getting used to the log files and am finding some issues in their usability, but that is subject for a separate discussing at another time. Other things I plan to do are building documentation, demonstration, example and performance cases for each major software package. In part, this becomes site specific but I also hope for some support from the HPCBIOS and similar efforts. Stuart -- I've never been lost; I was once bewildered for three days, but never lost! -- Daniel Boone

