Hi, Not to start a discussion for the sake of discussion but ... :)
I personally think that it is really good that the sanity is just mandatory. In fact this being mandatory is one of the building blocks upon which I rely when promoting EasyBuild to the Scientists, it is just a sanity check. Not like you have to specify a full program run with input and output and expected output. Please don't make it optional /Martin On Thu, Nov 19, 2015 at 9:04 AM, Stolpe, Oliver <[email protected]> wrote: > Hello Kenneth, > > I found it irritating because before I had not defined a sanity check > (because it took care of that itself) and now I am forced to define a > sanity check to correct a too strict sanity check. I think a sanity check > should be rather opt-in and not (forced) opt-out (if this makes somehow > sense in this context). It took me some time to figure out what went wrong, > and I assume that other will experience that as well. So yes, I think your > suggestion would be a good solution! > > Oliver > > > -- > > Oliver Stolpe > Bioinformatics Core Unit > Berlin Institute of Health > Phone: +49 30 450 543605 > > Luisenstr. 56, 10117 Berlin, Germany > ------------------------------ > *From:* [email protected] [[email protected]] > on behalf of Kenneth Hoste [[email protected]] > *Sent:* Thursday, November 19, 2015 5:32 AM > *To:* [email protected] > *Subject:* Re: [easybuild] Sanity check in python lib installation > > Hi Oliver, > > On 18/11/15 15:46, Stolpe, Oliver wrote: > > Hello list, > > I have some homegrown recipes that are installing python modules. They > used to work with EasyBuild v2.1.0, but since the new releases of EasyBuild > they can't pass the sanity check. > > In one of the releases since EasyBuild v2.1.0, we fixed an issue with the > sanity check not being properly performed, particularly for extensions > (like Python packages). > > They search for a bin directory, but some python libs simply don't have > any. Right now, I am overriding it by setting > > sanity_check_paths = { > 'files': [], > 'dirs': [('lib', 'lib64')] > } > > Is there a more elegant way to do this? > > > I'm not sure what so non-elegant about this... Maybe you feel it's not > specific enough? > > EasyBuild will already perform a sanity check in the sense that it will > check whether "python -c 'import foo'" works (with 'foo' being a module > name provided by that package). > > You're right that we're not enforcing that sanity_check_paths is also > defined for Python packages, which was not the case before (which was > considered a bug, see > https://github.com/hpcugent/easybuild-framework/pull/1366. > > If you find this really annoying, we can define a default > sanity_check_paths in the generic PythonPackage easyblock to only check for > lib or lib64 (not bin). > > That makes sense, and can avoid that easyconfigs for Python packages > include a rather silly sanity_check_paths as the one you mentioned. > > If sanity_check_paths are defined in the easyconfigs, they will still take > the upper hand, so this would be a backwards-compatible change. > > > > regards, > > Kenneth > > > Thanks, > Oliver > > == 2015-11-18 13:09:33,267 runpy.PythonPackage INFO Using default sanity > check paths: {'files': [], 'dirs': ['bin', ('lib', 'lib64')]} > == 2015-11-18 13:09:33,267 runpy.PythonPackage INFO Using specified sanity > check commands: [] > == 2015-11-18 13:09:33,267 runpy.PythonPackage WARNING Sanity check: no > (non-empty) directory of ('bin',) in > /tools/easybuild/software/pysam/0.8.3-foss-2015a-Python-2.7.9 > == 2015-11-18 13:09:33,268 runpy.filetools INFO Creating directory > /tmp/eb-3586qK/tmpkQnTbE/all/pysam (parents: True, set_gid: False, sticky: > False) > == 2015-11-18 13:09:33,269 runpy.PythonPackage INFO Module file > /tmp/eb-3586qK/tmpkQnTbE/all/pysam/0.8.3-foss-2015a-Python-2.7.9 written: > #%Module > > [......] > > == sanity checking... > == FAILED: Installation ended unsuccessfully (build directory: > /tools/easybuild/build/pysam/0.8.3/foss-2015a-Python-2.7.9): build failed > (first 300 chars): Sanity check failed: no (non-empty) directory of > ('bin',) in /tools/easybuild/software/pysam/0.8.3-foss-2015a-Python-2.7.9 > == Results of the build can be found in the log file > /tmp/eb-3586qK/easybuild-pysam-0.8.3-20151118.130659.LjfHr.log > ERROR: Build of > /tools/easybuild.local/easyconfigs/p/pysam/pysam-0.8.3-foss-2015a-Python-2.7.9.eb > failed (err: "build failed (first 300 chars): Sanity check failed: no > (non-empty) directory of ('bin',) in > /tools/easybuild/software/pysam/0.8.3-foss-2015a-Python-2.7.9") > > > -- > > Oliver Stolpe > Bioinformatics Core Unit > Berlin Institute of Health > Phone: +49 30 450 543605 > > Luisenstr. 56, 10117 Berlin, Germany > > > -- http://www.xing.com/profile/Martin_Marcher http://www.linkedin.com/in/martinmarcher Mobil: +43 / 660 / 62 45 103 UID: ATU68801424

