Skip to content

Commit

Permalink
Merge branch 'develop' into download
Browse files Browse the repository at this point in the history
  • Loading branch information
branfosj authored Mar 13, 2024
2 parents cc075d6 + 118ddcc commit 7edd896
Show file tree
Hide file tree
Showing 10 changed files with 82 additions and 74 deletions.
4 changes: 3 additions & 1 deletion docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,9 @@ output of `type -f module` (in a `bash` shell), or `alias module` (in a `tcsh` s

The actual module command (i.e., `modulecmd`, `modulecmd.tcl`,
`lmod`, ...) must be available via `$PATH` (which is not standard), except when using Lmod
(in that case the `lmod` binary can also be located via `$LMOD_CMD`).
(in that case the `lmod` binary can also be located via `$LMOD_CMD`) or when using
Environment Modules (in that case the `modulecmd.tcl` binary can also be located via
`$MODULES_CMD`).

For example, to indicate that EasyBuild should be using `Lmod` as modules tool:

Expand Down
52 changes: 52 additions & 0 deletions docs/easybuild-v5/changes-in-default-configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Changes in default configuration in EasyBuild v5.0

*(for a full overview of changes in EasyBuild v5.0, see [here](overview-of-changes.md))*

Various changes in default configuration included in EasyBuild v5.0, including:

* [Enable RPATH linking by default][rpath]
* [Enable `--trace` by default][trace]

---

## Enable RPATH linking by default {: #rpath }

[RPATH linking][rpath_support] is enabled by default in EasyBuild v5.0 (see [easybuild-framework PR #4448](https://github.com/easybuilders/easybuild-framework/pull/4448)).

The benefits for enabling RPATH are explained in [Why RPATH?][rpath_support_why].

This enhancement **does not** add any filtering of environment variables. This means `$LD_LIBRARY_PATH`
will continue to be appended by the environment module files EasyBuild generates,
unless it is configured to filter these variables (via `--filter-env-vars`,
see also [Relation to `$LD_LIBRARY_PATH`][rpath_support_LD_LIBRARY_PATH]).

To disable RPATH linking, either:

* Use the `--disable-rpath` command line option;
* Set the `$EASYBUILD_DISABLE_RPATH` environment variable;
* Disable RPATH linking in an EasyBuild [configuration file](../configuration.md#configuration_file):

``` ini
[override]
rpath=0
```


---

## Enable `--trace` by default {: #trace }

The [`--trace` option](../tracing-progress.md) is enabled by default (see [easybuild-framework PR #4250](https://github.com/easybuilders/easybuild-framework/pull/4250)).

This makes the output produced by the `eb` command more informative, by providing more information about what's going on in the background.
To disable trace output, either:
* Use the `--disable-trace` command line option;
* Set the `$EASYBUILD_DISABLE_TRACE` environment variable;
* Disable trace mode in a [configuration file](../configuration.md#configuration_file):
``` ini
[override]
trace=0
```
46 changes: 0 additions & 46 deletions docs/easybuild-v5/enhancements.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
Various significant enhancements are included in EasyBuild v5.0, including:

* [`run_shell_cmd` function][run_shell_cmd]
* [Enable RPATH linking by default][rpath]
* [Enable `--trace` by default][trace]
* [Require `download_instructions` to be specified][require_download_instructions]

---
Expand All @@ -17,50 +15,6 @@ See dedicated page on the new [`run_shell_cmd` function](run_shell_cmd.md).

---

## Enable RPATH linking by default {: #rpath }

[RPATH linking][rpath_support] is enabled by default in EasyBuild v5.0 (see [easybuild-framework PR #4448](https://github.com/easybuilders/easybuild-framework/pull/4448)).

The benefits for enabling RPATH are explained in [Why RPATH?][rpath_support_why].

This enhancement **does not** add any filtering of environment variables. This means `$LD_LIBRARY_PATH`
will continue to be appended by the environment module files EasyBuild generates,
unless it is configured to filter these variables (via `--filter-env-vars`,
see also [Relation to `$LD_LIBRARY_PATH`][rpath_support_LD_LIBRARY_PATH]).

To disable RPATH linking, either:

* Use the `--disable-rpath` command line option;
* Set the `$EASYBUILD_DISABLE_RPATH` environment variable;
* Disable RPATH linking in an EasyBuild [configuration file](../configuration.md#configuration_file):

``` ini
[override]
rpath=0
```


---

## Enable `--trace` by default {: #trace }

The [`--trace` option](../tracing-progress.md) is enabled by default (see [easybuild-framework PR #4250](https://github.com/easybuilders/easybuild-framework/pull/4250)).

This makes the output produced by the `eb` command more informative, by providing more information about what's going on in the background.
To disable trace output, either:
* Use the `--disable-trace` command line option;
* Set the `$EASYBUILD_DISABLE_TRACE` environment variable;
* Disable trace mode in a [configuration file](../configuration.md#configuration_file):
``` ini
[override]
trace=0
```
---
## Require `download_instructions` to be specified {: require_download_instructions }

[`download_instructions`][download_instructions] is used in easyconfigs to specify instructions, or information, on
Expand Down
1 change: 1 addition & 0 deletions docs/easybuild-v5/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

- [Overview of changes](overview-of-changes.md)
- [Backwards-incompatible changes](backwards-incompatible-changes.md)
- [Changes in default configuration](changes-in-default-configuration.md)
- [Enhancements](enhancements.md)
- [`run_shell_cmd` function](run_shell_cmd.md)
- [Deprecated functionality](deprecated-functionality.md)
Expand Down
5 changes: 2 additions & 3 deletions docs/easybuild-v5/overview-of-changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@
!!! warning
EasyBuild 5.0 is currently still under development, via the `5.0.x` branches in the EasyBuild GitHub repositories.

We intend to update this section of the documentation regularly as the planned changes are being implemented,
and when there are [proposed changes](proposed-changes.md) where we are requesting community feedback.
We intend to update this section of the documentation regularly as the planned changes are being implemented.

This page provides a concise overview of the most prominent changes in EasyBuild version 5.0,
which can be categorized as:

* [Enhancements](enhancements.md)
* [Changes in default configuration](changes-in-default-configuration.md)
* [Backward-incompatible changes](backwards-incompatible-changes.md)
* [Deprecated functionality](deprecated-functionality.md)
* [Proposed changes](proposed-changes.md)
* [Policies](policies.md)

For in-depth details on a particular change, see the pull requests that are linked
Expand Down
9 changes: 0 additions & 9 deletions docs/easybuild-v5/proposed-changes.md

This file was deleted.

16 changes: 10 additions & 6 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,11 @@ This is EasyBuild 4.8.0 (framework: 4.8.0, easyblocks: 4.8.0) on host example.lo
```

!!! tip
The Tcl-based or Lmod implementations of environment modules do their default sorting differently.
The former will normally sort in the lexicographic order, while Lmod follows
an approach that is closer to Python's construct `LooseVersion` way of ordering. Such aspects
may make a big difference, if you have installed both versions 1.9.0 and 1.15.2,
with respect to what is the version being loaded by default.
The Tcl/C Environment Modules (version <= 3.2.10) does its default sorting differently than
newer versions of Environment Modules and Lmod. The former will normally sort in the
lexicographic order, while the latters follow an approach that is closer to Python's construct
`LooseVersion` way of ordering. Such aspects may make a big difference, if you have installed
both versions 1.9.0 and 1.15.2, with respect to what is the version being loaded by default.

You can also run `eb --show-system-info` to see system information relevant to EasyBuild,
or run`eb --show-config` to see the default EasyBuild configuration (see also [Configuring EasyBuild][configuring_easybuild]).
Expand Down Expand Up @@ -356,12 +356,16 @@ Supported module tools:
the `module` function; for example, using `type module` or `type -f module`.

!!! note
For Lmod specifically, EasyBuild will try to fall back to finding the `lmod` binary via the `$LMOD_CMD`
For Lmod, EasyBuild will try to fall back to finding the `lmod` binary via the `$LMOD_CMD`
environment variable, in case `lmod` is not available in `$PATH`.

In EasyBuild versions *prior* to 2.1.1, the path specified by `$LMOD_CMD` was (erroneously) preferred over the
(first) `lmod` binary available via `$PATH`.

For modern Tcl-only environment modules (version >= 4.0.0), EasyBuild will try to fall back to finding the
`modulecmd.tcl` binary via the `$MODULES_CMD` environment variable, in case `modulecmd.tcl` is not available
in `$PATH`.


Additional notes:

Expand Down
4 changes: 2 additions & 2 deletions docs/manipulating-dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ $ eb HDF5-1.8.13-intel-2015a.eb --hide-deps=zlib,Szip -D
```

!!! note
Using Lmod (version >= 5.7.5), hidden modules can be made visible in the output of '`module avail`' using the
`--show-hidden` option.
Using Lmod (version >= 5.7.5) or Environment Modules (version >= 4.6.0), hidden modules can be made
visible in the output of '`module avail`' using respectively the `--show-hidden` or `--all` option.

For example:

Expand Down
15 changes: 9 additions & 6 deletions docs/unit-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,18 +126,19 @@ instead. Thus, to set a particular configuration option `--foo`, you should defi
#### Modules tool to use for running tests {: #unit_tests_modules_tool }

One particular configuration option worth mentioning explicitly is the modules tool that is to be used by the EasyBuild
framework, which is by default the traditional Tcl/C environment modules, referred to as `EnvironmentModulesC` in
EasyBuild configuration terms (see `eb --help` and `eb --avail-modules-tools`).
framework, which is by default Lmod, referred to as `Lmod` in EasyBuild configuration terms (see `eb --help` and
`eb --avail-modules-tools`).

To run the EasyBuild framework unit tests with a particular modules tool, simply define the
`$TEST_EASYBUILD_MODULES_TOOL` environment variable with the corresponding value. For example::

``` shell
export TEST_EASYBUILD_MODULES_TOOL=Lmod
export TEST_EASYBUILD_MODULES_TOOL=EnvironmentModules
```

Just like for EasyBuild itself, the EasyBuild framework unit test suite expects that the modules tool binary/script
(`modulecmd`, `modulecmd.tcl` or `lmod`) is available via `$PATH`, see [Required modules tool][required_modules_tool].
(`modulecmd`, `modulecmd.tcl` or `lmod`) is available via `$PATH` or referenced via a module tool-specific environment
variable, see [Required modules tool][required_modules_tool].


#### Installing a GitHub token for the unit tests {: #unit_tests_github_token }
Expand Down Expand Up @@ -173,10 +174,12 @@ other than `suite`, to focus on testing a particular aspect. See
<https://github.com/easybuilders/easybuild-framework/tree/main/test/framework> for an overview of the available Python
modules corresponding to subgroups of tests (note: `__init__.py` and `utilities.py` are *not* such modules).

For example, to run the full EasyBuild framework unit test suite using Lmod as a modules tool::
For example, to run the full EasyBuild framework unit test suite using Environment Modules as a modules tool and Tcl as
module file syntax::

``` shell
export TEST_EASYBUILD_MODULES_TOOL=Lmod
export TEST_EASYBUILD_MODULES_TOOL=EnvironmentModules
export TEST_EASYBUILD_MODULE_SYNTAX=Tcl
python -m test.framework.suite
```

Expand Down
4 changes: 3 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,9 +196,11 @@ plugins:
- index.md
# necessary for search to work
- search
# redirects for original EasyBuild documentation to avoid broken URLs
- redirects:
redirect_maps:
# redirect removed pages to sensible alternative
easybuild-v5/proposed-changes/: easybuild-v5/index.md
# redirects for original EasyBuild documentation to avoid broken URLs
en/latest/Archived-easyconfigs.html: archived-easyconfigs.md
en/latest/Backup_modules.html: backup-modules.md
en/latest/Changelog.html: changelog-docs.md
Expand Down

0 comments on commit 7edd896

Please sign in to comment.