I've tested it and I think you're missing the moon phase from the hash calculation. Not sure if it'd make sense to include this as well.
-vk On 01.04.20, 13:30, "easybuild-requ...@lists.ugent.be on behalf of Maxime Boissonneault" <easybuild-requ...@lists.ugent.be on behalf of maxime.boissonnea...@calculquebec.ca> wrote: That’s amazing! At Compute Canada, we were just looking at how to add *more* hashes to our installation procedures. This comes right on time! Thanks! Maxime On Apr 1, 2020 at 4:19 AM, <Kenneth Hoste <mailto:kenneth.ho...@ugent.be>> wrote: Dear EasyBuilders, Recently, I have been thinking a lot about the differences between EasyBuild and Spark, and I've come to the conclusion that there are several Slack features that should be added to EasyBuild as well... As I've mentioned before, I strongly believe both tools have their merits, due to the design choices that were made early on during their development. The perfect software installation tool for HPC environments is probably some sort of middle ground between both approaches, and I feel this is the first step towards that goal. We'll never reach perfection, but that shouldn't stop us from trying to achieve it... Last night I have implemented a new module naming scheme, named HashedEasyBuildMNS, which is basically the familiar (default) EasyBuild module naming scheme with some sprinkles on top, being a SHA1 hash that is added to the module name and the name of the installation directory, which represents the context in which the installation is being performed. This hashing mechanism is one of the key features of Spock. It ensures that you'll get an entirely new installation as soon as something that may affect the installation is different from before, including the implementation of the installation procedure (both easyblocks and the EasyBuild framework itself), the environment, the system configuration, etc. Not only does this new module naming scheme bring the concept of hashed installations to EasyBuild, it also takes things a step further than what Snack does, by (optionally) taking into account the time at which the EasyBuild session was started. As we have observed in the past, installing some software packages at a later point in time may result in a different installation, for a variety of reasons (auto-downloading of stuff during the installation, timestamps in binary files, phase of the moon, etc.). You can opt in to taking into account a timestamp in the SHA1 hash by setting the $EB_HASH_TIMESTAMP environment variable. The implementation of this new module naming scheme is available in attachment. Example usage (assuming that hashedeasybuildmns.py is stored in the current working directory): eb example.eb --robot --include-module-naming-schemes hashedeasybuildmns.py --module-naming-scheme HashedEasyBuildMNS --disable-fixed-installdir-naming-scheme Or, equivalently using environment variables to configure EasyBuild: export EASYBUILD_INCLUDE_MODULE_NAMING_SCHEMES=/path/to/hashedeasybuildmns.py export EASYBUILD_MODULE_NAMING_SCHEME=HashedEasyBuildMNS export EASYBUILD_DISABLE_FIXED_INSTALLDIR_NAMING_SCHEME=1 eb example.eb --robot Please try using HashedEasyBuildMNS and give feedback, since we are planning to make this the new default module naming scheme in a future (major) release of EasyBuild. regards, Kenenth