Skip to content

Commit

Permalink
revise landing page with overview of changes in EasyBuild v5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
boegel committed Jan 8, 2025
1 parent 23f0737 commit d9c9706
Show file tree
Hide file tree
Showing 17 changed files with 178 additions and 130 deletions.
57 changes: 0 additions & 57 deletions docs/easybuild-v5/backwards-incompatible-changes.md

This file was deleted.

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

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

Various changes in default configuration included in EasyBuild v5.0, including:
The default value for several EasyBuild configuration settings has been changed in EasyBuild v5.0:

* [Enable RPATH linking by default][rpath]
* [Enable `--trace` by default][trace]
- [RPATH linking is enabled by default (`--rpath`)](rpath)
- [Trace output is enabled by default (`--trace`)](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)).
[RPATH linking][rpath_support] is enabled by default in EasyBuild v5.0.

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

Expand All @@ -20,31 +20,34 @@ 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]).

The RPATH part of the EasyBuild sanity check has been relaxed (by default,
to allow for installing software that uses RPATH linking on top of existing software installations that do not use RPATH.
The RPATH sanity check can be made strict again via the `strict-rpath-sanity-check` EasyBuild configuration setting.

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):
- 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)).
The [`--trace` option](../tracing-progress.md) is enabled by default.

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):
- 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]
Expand Down
11 changes: 5 additions & 6 deletions docs/easybuild-v5/deprecated-functionality.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
# Deprecated functionality in EasyBuild v5.0

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

Some functionality is being deprecated in EasyBuild v5.0, and will no longer be supported in EasyBuild v6.0:

* [`run_cmd` and `run_cmd_qa` functions][run_cmd]
* [`easybuild.tools.py2vs3` module][py2vs3]
- [`run_cmd` and `run_cmd_qa` functions][run_cmd]
- [`easybuild.tools.py2vs3` module][py2vs3]

If you trigger any deprecated functionality when using EasyBuild v5.0, a warning message will be printed.

---

## `run_cmd` and `run_cmd_qa` functions {: #run_cmd }

The `run_cmd` and `run_cmd_qa` functions will be deprecated.
The `run_cmd` and `run_cmd_qa` functions have been deprecated,
and are scheduled to be removed in EasyBuild v6.0.

You should migrate to the new [`run_shell_cmd`](run_shell_cmd.md) function instead.

Expand All @@ -22,8 +23,6 @@ You should migrate to the new [`run_shell_cmd`](run_shell_cmd.md) function inste

## `easybuild.tools.py2vs3` module {: #py2vs3 }

[easybuild-framework PR #4229](https://github.com/easybuilders/easybuild-framework/pull/4229)

The following table lists the changes required to replace imports from the the `py2vs3` module.

| `from easybuild.tools.py2vs3 import ...` | Replacement |
Expand Down
10 changes: 6 additions & 4 deletions docs/easybuild-v5/enhancements.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
# Enhancements in EasyBuild v5.0

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

Various significant enhancements are included in EasyBuild v5.0, including:

* [`run_shell_cmd` function][run_shell_cmd]
* [Granular exit codes][granular_exit_codes]
* [Reproducible tarballs][reproducible_tarballs]
- [`run_shell_cmd` function][run_shell_cmd]
- [Granular exit codes][granular_exit_codes]
- [Reproducible tarballs][reproducible_tarballs]

---

## `run_shell_cmd` function { : #run_shell_cmd }

See dedicated page on the new [`run_shell_cmd` function](run_shell_cmd.md).


## Granular exit codes { : #granular_exit_codes }

EasyBuild v5 now uses a range of ~50 exit codes instead of just 0 for normal
Expand All @@ -27,6 +28,7 @@ EasyBuild will always return its own exit codes on termination. Other exit
codes from external processes executed through `run_shell_cmd` or HTTP response
status codes are reported in the corresponding logs.


## Reproducible tarballs { : #reproducible_tarballs}

EasyBuild can now generate reproducible tarballs of sources cloned from Git
Expand Down
94 changes: 86 additions & 8 deletions docs/easybuild-v5/index.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,91 @@
# EasyBuild v5.0

A high-level overview of changes in EasyBuild version 5.0 is listed below.

Click on a particular item for more information.

!!! warning "EasyBuild version 5.0.0 is not released yet"

EasyBuild v5.0.0 is still under active development via the `5.0.x` branches in the EasyBuild GitHub repositories.

Shortly before the release of EasyBuild v5.0.0, the `5.0.x` branches will be collapsed in the corresponding
`develop` branches, and the `5.0.x` branches will then only be used as a staging area for additional EasyBuild
v5.0.x releases.

The overview below is known to be incomplete, and will be gradually completed as we approach
the release of EasyBuild v5.0.0.

---

## Breaking changes {: #breaking-changes }

EasyBuild v5.0 includes a number of backwards-incompatible changes:

- [Python 3.6+ is required to run EasyBuild v5.0.0](python36-required.md)

See also the [overview of removed functionality](#removed-functionality) below.

Check failure on line 26 in docs/easybuild-v5/index.md

View workflow job for this annotation

GitHub Actions / build

Link fragments should be valid

docs/easybuild-v5/index.md:26:14 MD051/link-fragments Link fragments should be valid [Context: "[overview of removed functionality](#removed-functionality)"] https://github.com/DavidAnson/markdownlint/blob/v0.28.2/doc/md051.md


---

## Changes in default configuration

The default value for several EasyBuild configuration settings has been changed in EasyBuild v5.0:

- [RPATH linking is enabled by default (`--rpath`)](changes-in-default-configuration.md#rpath)
- [Trace output is enabled by default (`--trace`)](changes-in-default-configuration.md#trace)


---

## Enhancements

Various significant enhancements are included in EasyBuild v5.0, including:

- [`run_shell_cmd` function](run_shell_cmd.md)
- [Granular exit codes](enhancements.md#granular_exit_codes)
- [Reproducible tarballs](enhancements.md#reproducible_tarballs)


---

## Removed functionality {: #removed-functionality }

Functionality that was deprecated a while ago has been removed:

- [EasyBuild bootstrap script is removed](removed-functionality.md#bootstrap_script)
- [Experimental support for `.yeb` easyconfig format is removed](removed-functionality.md#yeb)


---

## Deprecated functionality {: #deprecated-functionality }

Some functionality is being deprecated in EasyBuild v5.0, and will no longer be supported in EasyBuild v6.0:

- [`run_cmd` and `run_cmd_qa` functions](deprecated-functionality.md#run_cmd)
- [`easybuild.tools.py2vs3` module](deprecated-functionality.md#py2vs3)


---

## Other changes

*(coming soon)*


---

## FAQ

*(coming soon)*


---

## Other links

- [Beta releases and release candidates](release-candidates.md)
- [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)
- [Policies](policies.md)
- [GitHub Project board](https://github.com/orgs/easybuilders/projects/18)
- [GitHub Project board for EasyBuild v5.0](https://github.com/orgs/easybuilders/projects/18)
- [Talk on EasyBuild 5.0 at EasyBuild User Meeting 2023](https://easybuild.io/eum23/#easybuild5)
- [Talk on EasyBuild 5.0 at EasyBuild User Meeting 2024](https://easybuild.io/eum24/#eb5)
29 changes: 0 additions & 29 deletions docs/easybuild-v5/overview-of-changes.md

This file was deleted.

5 changes: 0 additions & 5 deletions docs/easybuild-v5/policies.md

This file was deleted.

28 changes: 28 additions & 0 deletions docs/easybuild-v5/python36-required.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Python 3.6+ is required to run EasyBuild v5.0.0

EasyBuild 5.0 requires Python >= 3.6 to run.

Running EasyBuild with Python 2.7 or a Python 3 version older than Python 3.6 is no longer supported.

Trying to run EasyBuild with a Python version that is too old will result in an error:

```log
ERROR: No compatible 'python' command found via $PATH (EasyBuild requires Python 3.6+)
```

Python 2.7 has been [end-of-life since 1 Jan 2020](https://www.python.org/doc/sunset-python-2),
and dropping compatibility with Python 2.7 and Python 3.5 enabled some significant code cleanup
(see [easybuild-framework PR #4229](https://github.com/easybuilders/easybuild-framework/pull/4229)).

The [results of the 6th EasyBuild User Survey (2022)](https://easybuild.io/user_survey) show that the impact of
this breaking change on the EasyBuild community should be very limited, since:

- Only ~13% of survey participants were still running EasyBuild on top of Python 2.7;
- No survey participants reported using Python 3.5;
- Over 85% of survey participants reported using Python 3.6, or a more recent version of Python 3;
- Only 3 out of 118 survey participants (~2.5%) reported that dropping support for running EasyBuild
on top of Python 2 would be *problematic* for them;

Along with actively removing code that was only required to retain compatibility with Python 2.7 or 3.5,
the `easybuild.tools.py2vs3` module that was introduced to facilitate supporting both Python 2.7 and Python 3
has been deprecated (see also [here](deprecated-functionality.md#py2vs3)).
25 changes: 25 additions & 0 deletions docs/easybuild-v5/removed-functionality.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Removed functionality in EasyBuild v5.0

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

Functionality that was deprecated a while ago has been removed:

- [EasyBuild bootstrap script is removed][bootstrap_script]
- [Experimental support for `.yeb` easyconfig format is removed][yeb]

---

## Deprecated EasyBuild bootstrap script is removed {: #bootstrap_script }

The EasyBuild bootstrap script has been removed (see [easybuild-framework PR #4233](https://github.com/easybuilders/easybuild-framework/pull/4233)).

Please see the [installation page](../installation.md) for the suggested methods for installing EasyBuild.

---

## Experimental support for `.yeb` easyconfig format is removed {: #yeb }

Support for the experimental `.yeb` easyconfig format has been removed (see [easybuild-framework PR #4237](https://github.com/easybuilders/easybuild-framework/pull/4237)).

This format allowed easyconfigs to be specified in YAML. However, there has been no recent development of this
format and little suggestion that anyone was using it at all.
2 changes: 1 addition & 1 deletion docs/easybuild-v5/run_shell_cmd.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# `run_shell_cmd` function

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

In EasyBuild v5.0, a new function named `run_shell_cmd` is introduced to run shell commands.

Expand Down
Loading

0 comments on commit d9c9706

Please sign in to comment.