19 KiB
Changelog of Pmodules
Version 1.1.23
modulecmd
- bugfix in read the Pmodules config: overlay names may contain dots. The overlay name must be quoted in the query. (#387)
- bugfix in std::append_path() and std::prepend_path() (#386)
- bugfix in std::remove_path(), the function didn't work for more then one directory.
- support for Lmods created by Spack (#383, #385, #388, #393, #396, #400)
- bugfix: switching between Pmodules version now works without unsetting PMODULES_ENV. (#381)
- The init are now relocatable and do not depend on the directory set in $PMODULES_HOME (#376)
build-system
- order of checks changes whether a module variant must be built on this system. Order is now: kernel, cpu, system/os/hostname. (#391)
- checkk add that a build dependency has been successfully loaded. (#390)
- bugfix in setting up the environment before building a module. (#389)
- bugfix in reading group dependencies from the YAML config file. (#382)
both
- Tcl, Lua, Lmod, yq and BASH updated to current versions. (#392, #394, #395)
- code review/refactoring (#377, #378, #379, #380, #397, #398, #399, #401)
Version 1.1.22
modulecmd
- excludes in overlays are now supporting regex notation {#353}
- the dependencies of a module are now defined in the modulefiles directory. This way it is possbile to define different dependencies per overlay. (#338)
- fixes in loading/unloading Lua modules (#331)
- Create overlay directories if the do not already exist. Print error message if the directories cannot be created (#326)
- An overlay can now add additional directories to
MODULEPATH(#321) - Review/optimze code to find modulefiles (#318, #319, #328)
- Ignore relative directories in
MODULEPATH(#316) - Add alias
spidertosearchsub-command (#313) - Print help text if
modulecmdis called without argument (#312) - fixes/improvements in module search command. Handling of directories outside Pmodules hierarchy fixed. (#301, #311)
- Improved support for Lmod (#302, #325, #327)
- code review, cleanup and bugfixes (#299, #300, #314, #315, #317, #332, #333, #334, #337, #339, #346, #352, #360, #363, #364)
build-system
- YAML anchors can now be used in the module config file. (#374)
- The modulefile to be installed can now be configured (#371)
- The function used to build a module can now be defined in the YAML config file. (#359)
- Legacy build function removed (#355)
- Cleanup/review reading YAML config files (#348)
- Use regex instead of glob to match systems (#343)
- Type checks of YAML nodes added (#342)
- Configure required overlays in YAML config and load them before starting to build a module. (#341)
pbuild::add_configure_args()isn't deprecated any more. Sometimes it is useful in the build-script (#322).noneadded as unpacker. (#307)- Don't override existing RPATH. This is an important fix for packages like conda. (#304)
- Force rebuild if build script is called with
--clean-install. (#305) - code review, cleanup and bugfixes . (#299, #300, #303, #306, #310, #320, #323, #324, #335, #336, #345, #349, #350, #351, #354, #362, #362, #365, #368, #369, #370, #372)
both
- The default Pmodules system config can now be overwritten with the
environment variables
PMODULES_CONFIG_FILE. (#373) - support for aarch64 added
- sles15 added to list of recognized Linux distributions (#309)
- bugfixes (#308, #367)
Version 1.1.21
modulecmd
- update bash to 5.2.21 and Tcl to 8.6.14 (#274)
- option '--debug' enables shell xtrace, option '--verbose' informational messages (#275)
- for modules not in the Pmodules hierarchy: display module name only, not full qualified name of the modulefile. (#285)
- perform module search in all directories in `MODULEPATH outside the Pmodules hierarchy. Till know a module search was limited to the Pmodules hierarchy (#286).
- bugfix: loading multiple modules with the same load command is working again (#281)
- more bugfixes (#282)
build-system
- The tool '7z' can know be used to unpack an archive. The tool
to unpack an archive can be configured in the YAML config file.
For now
tarand7zare supported. (#273, #278, #289) - set
RPATHin executables and shared libraries to${PMODULES_ROOT}/lib. The set RPATH is relative using$ORIGIN. (#279, #280, #290) - expand
${PREFIX}while parsing the YAML configuration file (#287) - the download directory can now be configured in the YAML configuration file (#293)
- support for different target CPU and OS kernels added (#294)
- more bugfixes (#277, #295)
- cleanup (#292)
Version 1.1.20
modulecmd
- Bugfix in sub-command 'unuse' with directory as argument. Due to a missing return statement, the sub-command exited with an error. (issue #262)
- Bugfixes in the sub-commands to save/list/restore collections. (issue #263)
build-system
- Support for sub-packages added. (issuesg #264, #266)
- Code cleanup. (issues #265, #269)
- Option '--overlay' is only allowed with legacy configuration files. Check added. (issue #267)
- Check mode for YAML configuration files added. (issue #268)
Version 1.1.19
modulecmd
- BUGFIX: parsing the version number and setting the variables V_MAJOR, V_MINOR, V_PATCHLVL was broken in cases where the version number consist of less then three numbers and plus a suffix. (issue #248)
- BUGFIX: never cut output of load hints. This could happen in VScode/VScodium. Don't cut output of 'module search' if not running in a terminal. (issues #250,#255)
build-system
- Option '--clean-install' added. If this option is set, the module is removed before building, if the module already exist. (issue #247)
- Arguments to CMake/autotools and required patches can now be defined in the YAML configuration file. (issues #249, #253, #256)
- Check of consinstency of group dependencies added. (issue #251)
- The number of directory components to be removed while un-taring can now be configured in the YAML configuration file. If not specified, 1 is used as default. (issue #252)
- Arguments to CMake/autotools can now be append to the default arguments with the 'configure_args+' key in the YAML configuration file. Patch-files can be appended with the 'patch_file+' key and doc-files with 'docfiles+'. (issue #257)
Version 1.1.18
modulecmd
- BUGFIX: output of load hints fixed (issue #241)
build-system
- BUGFIX: parsing arguments fixed (issue #238)
- BUGFIX: group dependencies specified with the option '--with' were ignored (issue #236)
- BUGFIX: writing list of 'systems' to module configuration file fixed (issues #235, #243)
- Files in
$PMODULES_TMPDIR/<module>are now removed before and after building a module (except cleanup has been disbaled). (issues #242, #245) - Set prefix and directory/name of modulefile based on group not on
environment variables like
{COMPILER,MPI,HDF5}_VERSION(issue #244)
Toolchain
- update to Tcl 8.6.14 (issue #239)
General
- link to documentation added to usage/help text (issue #237)
Version 1.1.17
build-system
Fixes
- usage output reviewed
- compiling in source tree fixed if YAML config file is used
Version 1.1.16
modulecmd
User visible changes
-
YAML module configuration file. Configured in this file are
- the release stage
- the list of systems the module is available
- the list of systems the module shadowed
Wherby the items in list of systems are either
- hostnames or glob style patterns of hostnames (e.g. merlin-*)
- OS names like rhel7
The filename is
.config-<version>and is located in the same directory as the modulefile. For now the.release-<version>files are still used if no YAML configuration file exist.
build-system
User visible changes
- YAML build configuration files. For now
variantsfiles are still supported.
Version 1.1.15
modulecmd
User visible changes
- prevent loading of a module on dedicated systems via blocklist
build-system
User visible changes
- the function to compare versions can now be called with a single argument. In this case the given version is compared to version of currently build module.
Internal changes and fixes*
- bugfix: due to a bug in compiling the list of (legacy) config files, each module was build twice.
Version 1.1.14
build-system
Internal changes and fixes
- lookup of default legacy config files fixed
Version 1.1.13
modulecmd
User visible changes
- collections
- shadowing modules with an overlay
- Lmod support
- argument/option handling fixed
- using groups/extending MODULEPATH fixed (module use ...)
Internal changes and fixes
- use Lua and Lmod from Pmodules
- std::upvar() replaced
- Bugfixes
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
--groupthe search can be restricted to a group. - With the option
--newestonly the newest versions are displayed.
- With the option
findas alias for the sub-commandsearchadded.- Bugfix: the sub-commands
whatisandkeyword|aproposwere broken by design. - Bugfix: after loading a
Pmodulesmodule, it was not shown withmodule list. - Bugfix in scanning the depth of groups.
- Bugfix: after
module purgethe environment variablePMODULES_HOMEwas not defined an more. - Bugfix: source the shell init file only if a
Pmodulesmodule 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
modbuildis now defined as function likemodule. Therefor noPmodulesmodule must be loaded to build a module withmodbuild- The system can now be defined in the module (YAML) configuration file.
- Build dependencies can (and should) now be specified with
build_requiresin 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
$PREFIXbefore processing the install targets not before all targets. If$PREFIXis created before processing any target and the build fails,modbuildassumes that the module have been already built successfully.
Internal changes and fixes
- code review/re-factoring
modbuildis now using the Bash installed inPmodulesitself.- 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
Pmodulesmodulefile force the sourcing of the shell init script while in modeloadonly.
Version 1.1.9
modulecmd
User visible changes
- Overlay info added to output of sub-command
search. - Output of
module search --verboserevised 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 crashedmodule load ...has been fixed. - In versions before 1.1.9 a colon at the beginning or end of
MODULEPATHcrashed the module function. This has been fixed.
build-system
User visible changes
- The command
modbuildis now defined as shell function analog to themodulecommand. The main reason to introduce this function is due to the fact that Bash version 5 or newer is now required bymodbuild. The functionmodbuildload 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,
modbuildcan 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
--overlaycan 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
withhas been introduced in YAML variants file to specified hierarchical dependencies. - The function
pbuild::supported_oshas been removed.pbuild::supported_systemsprovides the same functionality for legacy configuration files. In YAML module configuration filessystemshave 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_ROOTremoved. - 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
useis 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
modulecmd
- first public version with the overlay feature
Version 1.0.0rc11
modulecmd
User visible changes
- handling of set-alias in modulefile fixed
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-releasesto--all-release-stages, adapted help text and configuration files. - New configuration file
Pmodules.confto configure the default visible group, the default visible release stages and the defined releases stages. These information has been stripped from the profilesprofiles.{bash,csh,zsh}. - module are now sorted numerically in output of
module avail. - option
-?added as alias for--help. - new option
--globformodule search. This enables shell glob-pattern searches. Internal changes and fixes - bugfix in removing temp-file in exit function.
- terse output of
module availfixed. - broken help for sub-commands fixed.
- missing group in output of
module availfixed. - broken output of
module search --print-modulefilesfixed. - 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 GROUPto list available modules inGROUP - 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}/binhas been removed fromPATHin1.0.0rc7a Pmodules module must be loaded to make the build system available.
Internal changes and fixes
- use system binaries in
/bin:/usr/binif possible
Version 1.0.0rc7
modulecmd
User visible changes
- add options to
module searchto show dependencies
Internal changes and fixes
- hardcoded path in
profile.cshfixed - 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 ofmodulefile- - bootstrap/build script reviewed,
--configoption 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
modulecmd
- Support for shell
shadded (#86, #90). - Broken 'module load' with (T)CSH fixed (#88).
- prepend instead of append Pmodules bin directory to
PATH(#87).
build-system
- Support added for a wildcard (
.*) version as argument tomodbuild(#78) - Handle empty list of be installed shared libraries fixed (#89).
Building and installing Pmodules
- Bugs in bootstrapping Pmodules fixed (#82)
Version 1.0.0rc5 (since 1.0.0rc2)
modulecmd
- log
module loadcommands to system logger (#80) - Bugs fixed in printing load hints (#48, #49)
--withoption of sub-command search now accepts a comma separated list of stringsPMODULES_ENVis exported only on content changes- more bugfixes
build-system
- The argument passed with the option
--systemis not any more a synonym for the kernel of the system (like Linux, Darwin). It now defines a target operating system like RHEL6, macOS1014 etc (#72). - calling
pbuild::make_allin a build-script is now deprecate - bugfixes
1.0.0rc4
- never tagged
1.0.0rc3
- never tagged