Skip to content

Commit 7fb3ed5

Browse files
authored
Merge branch 'EESSI:main' into small_fixes
2 parents a79c0ae + a843287 commit 7fb3ed5

12 files changed

Lines changed: 87 additions & 151 deletions

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
uses: codespell-project/actions-codespell@8f01853be192eb0f849a5c7d721450e7a467c579 # v2.2
1717
with:
1818
check_filenames: true
19-
skip: '.git'
19+
skip: .git,*.pdf
2020
ignore_words_list:
2121

2222
- name: install Zensical

docs/advanced-topics.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

docs/ci.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
**Continuous Integration (CI)** is a software development practice where developers frequently merge their code changes
1212
into a shared repository. Each time code is added or updated, automated processes build the application and run tests
13-
to verify that everything still works correctly. This verification workflow is exactly the process we went through in
14-
the last episode:
13+
to verify that everything still works correctly. A basic verification workflow is exactly the process we went
14+
through in the last episode:
1515

1616
* Prepare the environment
1717
* Build the application
@@ -58,7 +58,7 @@ and GitLab to make sure this is the case:
5858

5959
The [EESSI GitLab Component](https://gitlab.com/explore/catalog/eessi/gitlab-eessi) also exists, and this allows
6060
you to follow a very similar approach to that described
61-
here for GitHub. At the end of the episode we will provide the equivalent file needed to enable GitLab CI.
61+
here for GitHub. Near the end of the episode we will provide the equivalent file needed to enable GitLab CI.
6262

6363
The first thing we need to do is to translate our workflow into something that the workflow tool, GitHub Actions in
6464
this case, can understand. GitHub itself has
@@ -199,7 +199,7 @@ To github.com:vlad/cicd-demo.git
199199
* [new branch] add_ci_to_project -> add_ci_to_project
200200
...
201201
```
202-
(where `vlad` is replaced by your own GitHub user handle). Let's go ahead and create the pull request lile the text
202+
(where `vlad` is replaced by your own GitHub user handle). Let's go ahead and create the pull request like the text
203203
suggested by visiting the URL. Once we open the link, we can modify the title/description if we wish, but otherwise
204204
we can just go ahead and click "Create pull request".
205205

@@ -287,8 +287,8 @@ will become a green tick which indicates that our CI for the commit has passed.
287287

288288
### What happens when CI fails?
289289

290-
What does a failure look like in CI? From the previous episode, we know that if we do not load the `buildenv` module
291-
our tests should fail. Let's
290+
What does a real failure look like in CI? From the previous episode, we know that if we do not load the `buildenv`
291+
module our tests should fail. Let's
292292
construct that scenario, by commenting out the line that loads that module:
293293
```yaml title="ci.yml"
294294
--8<-- "scripts/ci-broken.yml"
@@ -301,7 +301,7 @@ git commit -m "Don't load buildenv, which should break our CI"
301301
git push origin add_ci_to_project
302302
```
303303

304-
Eventually, as expected, our CI will fail and we will get a red X beside our commit. We should also receive an email
304+
Eventually, as expected, our CI will fail and we will get a red `X` beside our commit. We should also receive an email
305305
notification that our CI has failed. Such notifications are a critical part of CI, the value of CI is not just that
306306
the tests run silently, but that we are made aware immediately when things go wrong.
307307

2.74 MB
Binary file not shown.

docs/getting-access.md

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ of the EESSI repository.
1212
## Is EESSI accessible?
1313

1414
EESSI can be accessed via [a native (CernVM-FS) installation](#native-installation),
15-
or via [a container that includes CernVM-FS](#eessi-via-a-container).
15+
via [a container that includes CernVM-FS](#eessi-via-a-container), or via a dedicated user-space tool called
16+
[`cvmfsexec`](#eessi-via-cvmfsexec).
1617

17-
Before you look into these options, check if EESSI is already accessible on your system.
18+
Before you look into other options, check if EESSI is already accessible on your system.
1819

1920
Run the following command:
2021
``` { .bash .copy }
@@ -41,23 +42,20 @@ ls: /cvmfs/software.eessi.io: No such file or directory
4142
```
4243
No worries, you don't need to be a :mage: to get access to EESSI.
4344

44-
Continue reading about the [Native installation](#native-installation) of EESSI,
45-
or accessing [EESSI via a container](#eessi-via-a-container).
45+
Continue reading about the [Native installation](#native-installation) of EESSI, or
46+
accessing EESSI via a [container](#eessi-via-a-container) or via [`cvmfsexec`](#eessi-via-cvmfsexec).
4647

4748
## Native installation
4849

4950
Setting up native access to EESSI, that is a system-wide deployment that does not require workarounds like
5051
[using a container](#eessi-via-a-container), requires the installation and configuration of [CernVM-FS](https://cernvm.cern.ch/fs).
5152

52-
This requires **admin privileges**, since you need to install CernVM-FS as an OS package.
53+
This requires **administrator privileges**, since you need to install CernVM-FS as an OS package.
5354

5455
The following actions must be taken for a (basic) native installation of EESSI:
5556

5657
* Installing CernVM-FS itself, ideally using the OS packages provided by the CernVM-FS project
5758
(although installing from source is also possible);
58-
* Installing the EESSI configuration for CernVM-FS, which can be done by installing the ``cvmfs-config-eessi``
59-
package that we provide for the most popular Linux distributions
60-
(more information available [here](https://github.com/EESSI/filesystem-layer/));
6159
* Creating a small client configuration file for CernVM-FS (``/etc/cvmfs/default.local``);
6260
see also the [CernVM-FS documentation](https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html#create-default-local).
6361

@@ -180,6 +178,41 @@ In this environment, you should be able to access the EESSI `software.eessi.io`
180178
ls /cvmfs/software.eessi.io
181179
```
182180

181+
## EESSI via `cvmfsexec`
182+
183+
When you do not have administrator rights, nor access to `singularity`/`apptainer`, there is still another option that
184+
may work for you: [`cvmfsexec`](https://github.com/cvmfs/cvmfsexec) allows you to mount CernVM-FS repositories
185+
as an unprivileged user.
186+
187+
Whether this approach will work is very dependent on the specific system you have access to. If this approach is your
188+
only option, the best way to check if it will work is to try it out and see if you run into problems.
189+
190+
The first thing you need to do is clone the `cvmfsexec` repository, and enter the directory
191+
``` { .bash .copy }
192+
git clone https://github.com/cvmfs/cvmfsexec.git
193+
cd cvmfsexec
194+
```
195+
Once inside this directory, `cvmfsexec` does still require an internet connection and some tools from your system that
196+
may not be available by default (but are quite common): `curl`, `rpm2cpio`, and `cpio`. If those are available then the
197+
see if the steps below work for you.
198+
199+
First we gather the files that `cvmfsexec` requires (this will also tell you if your OS is supported),
200+
by running the `makedist` script:
201+
``` { .bash .copy }
202+
#
203+
./makedist default
204+
```
205+
206+
If that worked, we can try to start `cvmfsexec` as follows,
207+
and see if that result in a shell environment in which EESSI is available:
208+
209+
```
210+
./cvmfsexec cvmfs-config.cern.ch software.eessi.io -- bash
211+
```
212+
213+
Here we also mount the `cvmfs-config.cern.ch` repository, which provides the necessary configuration files to CernVM-FS to be aware of EESSI.
214+
215+
183216
---
184217

185218
To start using EESSI, see [Using EESSI](usage.md).

docs/index.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,19 @@ EESSI provides a shared, portable, and optimized software stack for scientific c
1212

1313
## Tutorial Contents
1414

15-
For those attending the live tutorial at ISC26, there is a [prepared environment](prepared-environment.md) available.
15+
For those attending the live tutorial at ISC 2026, there is a [prepared environment](prepared-environment.md) available.
16+
17+
!!! note "Slidedeck for the ISC 2026 tutorial"
18+
19+
The slidedeck for the tutorial given at ISC 2026 is available:
20+
<a href="downloads/EESSI_tutorial_slides_ISC2026.pdf" download="EESSI_tutorial_slides_ISC2026.pdf">Download PDF</a>
1621

1722
1. [Introduction to EESSI](introduction.md)
1823
2. [Getting Access to EESSI](getting-access.md)
1924
3. [Using EESSI](usage.md)
2025
4. [EESSI Use Cases](use-cases.md)
2126
5. [Installing on top of EESSI](installing-on-top.md)
2227
6. [Using EESSI in CI](ci.md)
23-
7. [Advanced topics](advanced-topics.md)
2428

2529
## Learning Objectives
2630

docs/installing-on-top.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
EESSI is sometimes described as "container without a container runtime". What that means is that it effectively
1111
provides an alternative operating system to the native one without the need for something to negotiate between the two.
1212
When we are _consuming_ software from EESSI, there is no real way to see this. It is only when we try to use EESSI as a
13-
basis for building new sotware that we are exposed to the additional complexity that this can bring.
13+
basis for building new software that we are exposed to the additional complexity that this can bring.
1414

1515
## Building a software project
1616

@@ -154,8 +154,8 @@ $ module spider hdf5
154154
We can see there are multiple versions available, but which one do we choose? Our application doesn't specify a specific
155155
version so we just choose the latest, `HDF5/1.14.6-gompi-2025b`, for now.The actual version of HDF5 is given by the
156156
first part of `1.14.6-gompi-2025b`, in this case `1.14.6`; the final part `gompi-2025b` is related to the
157-
[toolchain concept inside EasyBuild](https://docs.easybuild.io/common-toolchains/) and we won't get into that here
158-
since it is not the purpose of the tutorial.
157+
[toolchain concept used by EasyBuild](https://docs.easybuild.io/common-toolchains/). We won't dive into that toolchain
158+
concept here since it is not the purpose of the tutorial.
159159

160160
Having chose to try out `HDF5/1.14.6-gompi-2025b`, we can now load the module to make HDF5 available:
161161
``` { .bash .copy}

docs/introduction.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ We use custom architecture detection scripts
109109
to automatically select the best suited installations from the software stack for
110110
a particular host, based on its system architecture.
111111

112-
The software layer is maintained through our [https://github.com/EESSI/software-layer](https://github.com/EESSI/software-layer) GitHub repository.
112+
The software layer is maintained through our [https://github.com/EESSI/software-layer-scripts](https://github.com/EESSI/software-layer) and [https://github.com/EESSI/software-layer](https://github.com/EESSI/software-layer-scripts) GitHub repositories.
113113

114114
## Current status
115115

@@ -131,8 +131,17 @@ In February 2022, an open access paper on EESSI was published (https://doi.org/1
131131

132132
During the first half of 2022, the most active partners in the EESSI project worked together on a project proposal
133133
to start a EuroHPC Centre-of-Excellence in which EESSI could be developed further. The proposal was accepted,
134-
and hence the [MultiXscale](https://www.multixscale.eu/) EuroHPC Centre-of-Excellence was started. This is a 4-year
135-
project (2023-2026) that is a collaboration between EESSI and [CECAM](https://www.cecam.org/), with goals
134+
and hence the [MultiXscale](https://www.multixscale.eu/) EuroHPC Centre-of-Excellence was started. This was a 4-year
135+
project (2023-2026) forming a collaboration between EESSI and [CECAM](https://www.cecam.org/), with goals
136136
that include making EESSI ready for production, and supporting community contributions.
137137

138+
In 2023, the first production release of EESSI under the EESSI production repository
139+
[`software.eessi.io`](https://www.eessi.io/docs/repositories/software.eessi.io/) was made.
140+
141+
In 2024, EESSI [won the HPCwire Reader's Choice Award at Supercomputing 2024](https://www.eessi.io/docs/blog/2024/11/18/hpcwire-readers-choice-awards-2024-for-eessi/).
142+
143+
EESSI is also a critical component of the
144+
[EuroHPC Federation Platform (EFP)](https://my-eurohpc.eu/), underpinning the Federated Software Catalogue. The first
145+
release of EFP took place in April 2026.
146+
138147
[*(back to overview page)*](index.md)

docs/markdown.md

Lines changed: 0 additions & 111 deletions
This file was deleted.

docs/prepared-environment.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ Follow the instructions below to get access to a temporary virtual machine
44
that you can use for the hands-on exercises during this tutorial.
55

66

7-
!!! note "Only available during EESSI tutorial at ISC'26"
7+
!!! note "Only available during EESSI tutorial at ISC 2026"
88

9-
This environment is only available during the EESSI tutorial at [ISC'26](https://isc-hpc.com),
9+
This environment is only available during the EESSI tutorial at [ISC 2026](https://isc-hpc.com),
1010
on Monday 22 June 2026.
1111

1212
Alternatively, you can use a system where EESSI is already available, see [here](https://eessi.io/docs/systems).
@@ -20,7 +20,7 @@ that you can use for the hands-on exercises during this tutorial.
2020

2121
!!! tip "Do not hesitate to ask for help!"
2222

23-
During the ISC'26 tutorial, raise your hand to ask a question or get help.
23+
During the ISC 2026 tutorial, raise your hand to ask a question or get help.
2424

2525
Afterwards, join the EESSI Slack via the "Slack channel" link on the EESSI website
2626
[https://eessi.io](https://eessi.io), and ask your question there.
@@ -32,7 +32,7 @@ Sign up via https://mokey.tutorial.eessi.science/auth/signup .
3232
Accounts will only be approved for access on the day of the tutorial,<br/>
3333
**so please take note of your username and password** !
3434

35-
Note that the *Reset password* link does **not** work!
35+
Note that the *"Reset password"* link does **not** work!
3636

3737
## Step 2: Logging in
3838

@@ -44,12 +44,13 @@ For shell access, use:
4444
```
4545
ssh tutorial.eessi.science
4646
```
47+
using the username and password that you created at signup.
4748

4849
### Via web browser
4950

5051
Browse to https://tutorial.eessi.science
5152

52-
- Make sure to change default Time to 4 hours
53+
- Make sure to change default "Time" to 4 hours
5354
- Take 4 cores
5455

5556
Alternative, use the login node for hands-on, 16 cores so should be fine to share for a small group.

0 commit comments

Comments
 (0)