# Changelog of Pmodules ## Version 1.1.12 * **modulecmd** * *User visible changes* * experimental support for Lmod * support for use flags has been removed. (A postfix like '_slurm' can still be used) ## Version 1.1.11 * **modulecmd** * *User visible changes* * Improved error handling and messages * Python support added * *Internal changes and fixes* * Bugfixes * **build-system** * *User visible changes* * building with legacy variants files fixed. * building with YAML config files is still experimental and not recommended for now ## Version 1.1.10 * **modulecmd** * *User visible changes* * New options for `module search`. * With the option `--group` the search can be restricted to a group. * With the option `--newest` only the newest versions are displayed. * `find` as alias for the sub-command `search` added. * Bugfix: the sub-commands `whatis` and `keyword|apropos` were broken by design. * Bugfix: after loading a `Pmodules` module, it was not shown with `module list`. * Bugfix in scanning the depth of groups. * Bugfix: after `module purge` the environment variable `PMODULES_HOME` was not defined an more. * Bugfix: source the shell init file only if a `Pmodules` module is loaded. * Bugfix: unsetting aliases in modulefiles was not handled properly in `module purge` * *Internal changes and fixes* * initialisation error for bash and zsh fixed * **build-system** * *User visible changes* * `modbuild` is now defined as function like `module`. Therefor no `Pmodules` module must be loaded to build a module with `modbuild` * The system can now be defined in the module (YAML) configuration file. * Build dependencies can (and should) now be specified with `build_requires` in the YAML configuration file. * Bugfix: cleanup of modulefiles in overlays fixed. A module can be in more than one overlay. These overlays must be specified in the module configuration file. * Bugfix: querying dependencies from YAML configuration file fixed. Under some conditions the string 'null' was in the list of dependencies. * Bugfix: create group directory if it doesn't exist. * Bugfix: create the module `$PREFIX` before processing the install targets not before all targets. If `$PREFIX` is created before processing any target and the build fails, `modbuild` assumes that the module have been already built successfully. * *Internal changes and fixes* * code review/re-factoring * `modbuild` is now using the Bash installed in `Pmodules` itself. * test code with `set -o nounset`, several issues with this setting fixed (not necessarily bugs). * **other changes** * The build script to bootstrap Pmodules itself doesn't use modbuild any more to compile required software packages. With this change we can remove some special cases from modbuild. * The bootstrap script requires Bash 5.0 or newer now. * Bugfix: in the `Pmodules` modulefile force the sourcing of the shell init script while in mode `load` only. ## Version 1.1.9 * **modulecmd** * *User visible changes* * Overlay info added to output of sub-command `search`. * Output of `module search --verbose` revised for better readability. * *Internal changes and fixes* * The shell`s init file is sourced, when Pmodules is loaded as module. This is required if there are changes in the module function or too define new shell functions. * A bug in `libmodules.tcl:module-addgroup()` which crashed `module load ...` has been fixed. * In versions before 1.1.9 a colon at the beginning or end of `MODULEPATH` crashed the module function. This has been fixed. * **build-system** * *User visible changes* * The command `modbuild` is now defined as shell function analog to the `module` command. The main reason to introduce this function is due to the fact that Bash version 5 or newer is now required by `modbuild`. The function `modbuild` load Bash 5.x as module before calling the modbuild-script. If you want to use the script directly, a Bash binary with version 5.x must be in PATH. * If a build-script is in the current working directory, `modbuild` can now be called without specifying the build-script. * In case of an error in a build-step the build process did not abort as it should. This has been fixed. * The option `--overlay` can now be used - to define an overlay if legacy variants files are used - to override the overlay in a YAML variants file. * The new keyword `with` has been introduced in YAML variants file to specified hierarchical dependencies. * The function `pbuild::supported_os` has been removed. `pbuild::supported_systems` provides the same functionality for legacy configuration files. In YAML module configuration files `systems` have to be used. * **Internal changes and fixes** * bugfix in setting `PATH` * requires bash 5 or later ## Version 1.1.8 * **modulecmd** * *User visible changes* * configuration in YAML files * modulefiles and software must not have a common root directory * the installation root must be specified, it doesn`t default to the base 'overlay' any more. * zsh initialisation fixed. * *Internal changes and fixes* * std::upvar() replaced with reference variables in part of the code. * environment variable `PMODULES_ROOT` removed. * unsetting aliases fixed. * update to bash 5.1.16 * update to findutils 4.9 (macOS only) * minor fixes * **build-system** * *User visible changes* * YAML format for variants files * *Internal changes and fixes* * use lib `libpmodules.bash` * bugfixes * **modmanage** * *User visible changes* * none, support for overlays still missing * *Internal changes and fixes* * none ## Version 1.1.7 * **modulecmd** * list of available overlays in subcommand `use` is now better readable * **buid-system** * overlay definition must now be in YAML format * support for YAML formatted variant files (the legacy format is still supported) * build-system in 1.1.6 was still work in progress and broken ## Version 1.1.6 * **modulecmd** * bugfix in searching/loading modules in a hierarchical group ## Version 1.1.5 * first public version with the overlay feature ## Version 1.0.0rc11 * **modulecmd** * *User visible changes* * handling of set-alias in modulefile fixed * *Internal changes and fixes* * none * **build-system** * *User visible changes* * none * *Internal changes and fixes* * none ## Version 1.0.0rc10 * **modulecmd** * *User visible changes* * The term "releases" has been replaced with "release stages". The visible changes are the change of the option `--all-releases` to `--all-release-stages`, adapted help text and configuration files. * New configuration file `Pmodules.conf` to configure the default visible group, the default visible release stages and the defined releases stages. These information has been stripped from the profiles `profiles.{bash,csh,zsh}`. * module are now sorted numerically in output of `module avail`. * option `-?` added as alias for `--help`. * new option `--glob` for `module search`. This enables shell glob-pattern searches. * *Internal changes and fixes* * bugfix in removing temp-file in exit function. * terse output of `module avail` fixed. * broken help for sub-commands fixed. * missing group in output of `module avail` fixed. * broken output of `module search --print-modulefiles` fixed. * argument handling fixed after `--`. * cleanup option/argument handling. * **build-system** * *User visible changes* * none * *Internal changes and fixes* * bugfixes in the functions `pbuild::version_{le,gt} * bugfix in recognising newer CentOS versions * **modmanage** * *User visible changes* * complete re-implementation of (broken) modmanage ## Version 1.0.0rc9 * **modulecmd** * *User visible changes* * a Pmodules module must be the first module loaded * new option `--group|-g GROUP` to list available modules in `GROUP` * align columns in output of `module avail` * remove path to Pmodules bin directory while unloading a Pmodules module * exclude a Pmodules module from being purged * follow sym-links in `ROOT/GROUP/modulefiles` * *Internal changes and fixes* * use default field separator by unsetting `IFS` * use read-only variables for all used commands with full path * better tmp-file creation/deletion * more bugfixes * **build-system** * *User visible changes* * group hierarchy can now be defined in a config file * *Internal changes and fixes* * more bugfixes ## Version 1.0.0rc8 * **modulecmd** * *User visible changes* * Pmodules can now be loaded as module * Since `${PMODULES_HOME}/bin` has been removed from `PATH` in `1.0.0rc7` a Pmodules module must be loaded to make the build system available. * *Internal changes and fixes* * use system binaries in `/bin:/usr/bin` if possible ## Version 1.0.0rc7 * **modulecmd** * *User visible changes* * add options to `module search` to show dependencies * *Internal changes and fixes* * hardcoded path in `profile.csh`fixed * bugfixes * Update to BASH 5.1 * Update to Tcl 8.6.10 * **build-system** * *User visible changes* * building deprecated modules must be forced * support for versioned modulefiles in build-blocks: if a modulefile `modulefile-X[.Y[.Z]]` exists in the build-block it will be taken in favour of `modulefile`- * bootstrap/build script reviewed, `--config` option removed, help for all sub-commands added * *Internal changes and fixes* * installation of fallback shared libraries fixed. * bugfixes * **modmanage** * *User visible changes* * Support of run-time dependencies which are required but must not be loaded ## Version 1.0.0rc6 **Added features:** - Support for shell `sh` added (#86, #90). - Support added for a wildcard (`.*`) version as argument to `modbuild` (#78) **Fixed bugs:** - Handle empty list of be installed shared libraries fixed (#89). - Broken 'module load' with (T)CSH fixed (#88). - prepend instead of append Pmodules bin directory to `PATH` (#87). - Bugs in bootstrapping Pmodules fixed (#82) ## Version 1.0.0rc5 (since 1.0.0rc2) **Added features:** - log `module load` commands to system logger (#80) **Changed:** - The argument passed with the `--system` is not any more a synonym for kernel of the system a build process is running on. It now defines a target operating system like RHEL6, macOS1014 etc (#72). **Deprecated:** - calling `pbuild::make_all` in a build-script is now deprecate **Fixed bugs:** - Bugs fixed in printing load hints (#48, #49) - Several bugs in build-systen and `modulecmd` fixed. - `--with` option of sub-command search now accepts a comma separated list of strings - `PMODULES_ENV` is exported only on content changes ## 1.0.0rc4 - never tagged ## 1.0.0rc3 - never tagged