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
    
    
    
    
    
    

Reply via email to