Support Lua modulefiles (REVIEW)#1060
Support Lua modulefiles (REVIEW)#1060boegel merged 81 commits intoeasybuilders:developfrom pforai:support_lua_modfiles
Conversation
|
hallelujah! ;-) Now we can build on top of this to get Lua module file support fully fleshed out. Thanks @pforai! |
|
Test FAILed. |
Conflicts: easybuild/framework/easyblock.py easybuild/tools/module_generator.py
sync Lua mod files PR with current develop
|
Refer to this link for build results (access rights to CI server needed): |
add --module-syntax configure option, make it work for --module-syntax=Lua, properly handle module header line
correctly handle .lua filename suffix and comments
|
Refer to this link for build results (access rights to CI server needed): |
|
Refer to this link for build results (access rights to CI server needed): |
make sure Lmod is used as modules tool when generating module files in Lua syntax
|
Refer to this link for build results (access rights to CI server needed): |
|
Refer to this link for build results (access rights to CI server needed): |
|
Refer to this link for build results (access rights to CI server needed): |
sync with develop, fix conflicts
|
Refer to this link for build results (access rights to CI server needed): |
replace log.error with raise EasyBuildError
|
Refer to this link for build results (access rights to CI server needed): |
…module footer in Lua syntax, fix msg_on_load for Lua
fix tests that are broken with Lua syntax enabled + broken stuff (use, msg_on_load, lua module footer)
|
Refer to this link for build results (access rights to CI server needed): |
fix msg_on_load for Lua, fix test that checks for 'use' statements in Lua
|
Refer to this link for build results (access rights to CI server needed): |
style changes, add use of 'conflict' statement in Lua module files
|
Refer to this link for build results (access rights to CI server needed): |
pkg.root => root, use it for $EBROOT, $EBDEVEL too
|
Example Lua module files with this:
help = [[GNU Compiler Collection (GCC) based compiler toolchain, including
OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK. - Homepage: (none)]]
whatis([[Name: goolf]])
whatis([[Version: 1.5.14]])
whatis([[Description: GNU Compiler Collection (GCC) based compiler toolchain, including
OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK. - Homepage: (none)]])
whatis([[Homepage: (none)]])
local root = "/Users/kehoste/.local/easybuild/software/goolf/1.5.14-no-OFED"
conflict("goolf")
if not isloaded("GCC/4.8.2") then
load("GCC/4.8.2")
end
if not isloaded("OpenMPI/1.6.5-GCC-4.8.2-no-OFED") then
load("OpenMPI/1.6.5-GCC-4.8.2-no-OFED")
end
if not isloaded("OpenBLAS/0.2.8-gompi-1.5.14-no-OFED-LAPACK-3.5.0") then
load("OpenBLAS/0.2.8-gompi-1.5.14-no-OFED-LAPACK-3.5.0")
end
if not isloaded("FFTW/3.3.4-gompi-1.5.14-no-OFED") then
load("FFTW/3.3.4-gompi-1.5.14-no-OFED")
end
if not isloaded("ScaLAPACK/2.0.2-gompi-1.5.14-no-OFED-OpenBLAS-0.2.8-LAPACK-3.5.0") then
load("ScaLAPACK/2.0.2-gompi-1.5.14-no-OFED-OpenBLAS-0.2.8-LAPACK-3.5.0")
end
setenv("EBROOTGOOLF", root)
setenv("EBVERSIONGOOLF", "1.5.14")
setenv("EBDEVELGOOLF", pathJoin(root, "easybuild/goolf-1.5.14-no-OFED-easybuild-devel"))
-- Built with EasyBuild version 2.1.0dev-r91ae79170204d22ad3a5adae9365450b5549e8ef
help = [[gzip (GNU zip) is a popular data compression program as a replacement for compress - Homepage: http://www.gnu.org/software/gzip/]]
whatis([[Name: gzip]])
whatis([[Version: 1.6]])
whatis([[Description: gzip (GNU zip) is a popular data compression program as a replacement for compress - Homepage: http://www.gnu.org/software/gzip/]])
whatis([[Homepage: http://www.gnu.org/software/gzip/]])
local root = "/Users/kehoste/.local/easybuild/software/gzip/1.6-goolf-1.5.14-no-OFED"
conflict("gzip")
if not isloaded("goolf/1.5.14-no-OFED") then
load("goolf/1.5.14-no-OFED")
end
prepend_path("MANPATH", pathJoin(root, "share/man"))
prepend_path("PATH", pathJoin(root, "bin"))
setenv("EBROOTGZIP", root)
setenv("EBVERSIONGZIP", "1.6")
setenv("EBDEVELGZIP", pathJoin(root, "easybuild/gzip-1.6-goolf-1.5.14-no-OFED-easybuild-devel"))
-- Built with EasyBuild version 2.1.0dev-r91ae79170204d22ad3a5adae9365450b5549e8ef |
|
I have looked at this and it looks good to me. |
|
Refer to this link for build results (access rights to CI server needed): |
|
Would you consider generating "family" directives too? |
|
Yeah, totally. I have this on the road map for 2.2. Note that we will support that with Tcl and Lua module files. Same goes for properties! |
|
Merging this beast. Thanks @pforai for all the hard work on this. This is going to be one of the major features for the upcoming EasyBuild v2.1. We can follow-up on this with support for the Lmod families and properties features in upcoming PRs. |
Support Lua modulefiles (REVIEW)
|
Excellent, thx! |
This branch ONLY supports lua module files at the moment and is very early. More to come in the following days.