 So modules, which is called also environment modules for disambiguation. So first of all, my name is Xavier de la Ruelle. I work at CIEA, which is a large research institute in France. I was hired there as HPC system administrator 10 years ago and recently I moved to a new position, an operations manager position. And regarding the environment modules project, I am project leader since July of last year. So first of all, I would like to know among the audience who is familiar with the module concept. Okay, quite a lot of people. For those who are not familiar with it, quickly modules, it's a shell command. It gives you the ability to control the configuration of your shell by using a script written in t-call, which helps to define parts of your environment. And the trick is that this module command is able to change the currently running shell. So a short example, one of the use case for modules is to activate some software you install to activate them in your environment. So here, GCC, if you do not have GCC by default in your environment, you can load a GCC module file and then you get the GCC command in your path. So what's the matching behind it in the module file? Here we just say to add to the path environment variable the directory where the GCC command is located. And of course, its module is able to load and unload these module files so you are able to deactivate this software if you do not need it anymore in some situation. Regarding this project, it's a 27-year-old project, quite old. Modules were supported to Linux in 1999. At that time, it was version 3.0, written in C. In 2002, a new implementation came out in the project, which was written in a pure ticker script. But it was in a beta stage for many years. And in 2012, it was the last public release of the C version of modules, the last free version of modules. After that, the project became a bit dormant. So with my new responsibility, my first goal was to release something new quickly and it was done in October last year with the release of modules version 4. With a big change in it, the pure ticker version, no acts as the real module command you get but use any more the C-compiled version. So I was a journey to the publication of modules version 4. Quite nice, actually. We have closed the most known issue from version 3. And it was done quite easily with the change of implementation. And this change also helps us to move forward a lot quicker as it is much more convenient to add new features in ticker scripts than to do that in a C-development. Especially, I'm not proficient at all in C. A big focus has been done on non-regression. So when I started on this project, there were among 200 non-regression tests and now we are above the 5,000 non-regression tests. And on top of that, we have added some continuous integration by leveraging the Travis services to ensure that everything is going well constantly at each commit. We also monitor the code coverage and I am happy to see here that we are above the 95% of code covered by the test. So on top of these bug fixes, there are numerous new features in version 4 of modules. Unfortunately, I do not have the time to go in details on that. So I'll let you see the link. The slides are online. It's available on the module website. And although two weeks ago, a new feature release was published, version 4.1 with, again, a lot of new additions. And here I would like to be a bit more in detail on one of the cool new features, which are the virtual modules. Virtual modules, it enables to associate a module name to a script file. And by that, we leverage the limit to need to have a file in your file system to represent a module file available to your users. So that's quite nice because it can able to dynamically define your environment and especially to adapt it depending on the situation, depending on the users who call module, the group it owns, and so on. How does it work? In fact, there is a new keyword, module virtual, you use in some modular script file. In fact, you define all the version that points to a common ticker script to define how you load your application or your library. And within this generic script file, with the module file introspection commands, you are able to distinguish for what name you have been called. When you want to look at available module files, virtual modules, they are not distinguishable from regular module files. So that's quite convenient. And when you load them, they appear through the name they have been called for. And of course, the variable that has been set, it is the correct name which is used. A bit of fraud map now. We are going on four months release schedule. Each four months, a new feature release. And if there is a need to, there will be bug fixes releases in between. So next feature release is for month of May and after that September and then January last year. Some expectation for 4.2 in this version. The focus will be to put a new dependency management model to handle better dependency between module files. And 4.3 will be a, it will put in place a new cache mechanism when you have to manage a larger number of module files. And sometimes when you list all these module files available, it's quite a bit slow. So this cache will answer this issue. Regarding automatic dependency management, it will lift a limitation that exists since a long time in modules. When modules declare some pre-requirements, currently this pre-requirements is not loaded. It's simply ask you, please load it. But from a Sysadmin background, when you see all this package management tool, module should be able to do that automatically. So this is, that's why, that's what we will do in 4.2 by automatically loading pre-requirements declared in module files. And on top of that, for convenience, we will add some enhanced behavior to handle these dependencies. For instance, where a dependency needs to be reloaded to change a version, it will reload automatically all the dependent module files. When you will unload a module that has loaded automatically dependencies, these automatically loaded dependencies will disappear also, except if some of them have been loaded manually. So that's all for the technical focus. As a conclusion, I would like to say that the environment modules project is active again. There is tons of ID in stock, so there will be a lot of new features in the next month. So stay tuned. Thanks for your attention. I think we have time for one question, so make it good. All right, no questions. Thank you again. Thank you.