easybuilders / easybuild-framework

EasyBuild is a software installation framework in Python that allows you to install software in a structured and robust way.
https://easybuild.io
GNU General Public License v2.0
150 stars 202 forks source link

Escape special characters in modulefiles variables, similarly to EB_ easyblocks namespace #850

Open fgeorgatos opened 10 years ago

fgeorgatos commented 10 years ago

Hi,

let's escape wherever special chars, such as ., -, +, &, ...

this trend comes straight from the 1st hackathon, whereby we escaped (somewhat) issues that can pop up due to unusual application names, so that easyblocks namespace is liberal: https://github.com/hpcugent/easybuild-framework/blob/master/easybuild/tools/filetools.py#L71 # ref. STRING_ENCODING_CHARMAP (ie. avoid apps namespace to be coupled with other software limits/constraints)

We see a problem of the same nature appearing as regards env. variables, and my concern is that, alternative module implementations may give even more surprises and incompatibilities with special characters: https://github.com/hpcugent/easybuild-easyconfigs/pull/675

Following the liberal-input-conservative-output principle http://en.wikipedia.org/wiki/Robustness_principle I'd propose to do the same within defined environment variables, and for the same reason!

Your stance?

fgeorgatos commented 10 years ago

btw. this will have the (IMHO, positive) effect of renaming EBROOTXORGMINMACROS -> EBROOTXORG_MINUS_MACROS The 2nd is far more readable, we could even consider format: EBROOT__XORG_MINUS_MACROS...