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:[email protected])>  
> 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