-
Notifications
You must be signed in to change notification settings - Fork 54
Setting up your system
In the Before you start you have explored REANA on your laptop from the point of view of a researcher. In this page we'll set up the laptop for REANA development. This will require to pay attention to certain things.
The REANA development is most comfortable on Linux and macOS systems.
Linux runs containers natively and so is a very good choice for a REANA development platform. Any Linux distribution should do. In experimental particle physics, CentOS/Fedora/RHEL-based distributions are usually used in production systems, and are also primary platforms for many HEP-specific software packages such as XRootD. Consequently, Fedora might be a good Linux distribution choice. We shall use it in the examples below.
At this point, you should have Docker, Kubectl, Kind, and Helm dependencies set up from the Before you start times. If not:
$ # install docker
$ sudo dnf -y install dnf-plugins-core
$ sudo dnf config-manager \
--add-repo \
https://download.docker.com/linux/fedora/docker-ce.repo
$ sudo dnf install docker-ce docker-ce-cli containerd.io
$ sudo systemctl enable --now docker
$ sudo usermod -aG docker $USER
$ # install kubectl
$ sudo dnf install kubernetes-client
$ # install kind (from release binaries)
$ curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
$ chmod +x ./kind
$ sudo mv ./kind /usr/local/bin
$ # install helm
$ sudo dnf install helm
The novel part in the REANA development is that we would like to be able to
comfortably test reana-client
with any supported Python version that REANA
users can use, which is 3.8+ at this time. We can install them as follows:
$ sudo dnf install python38 python39 python310 python311 python312
macOS is another good choice for REANA development platform. Unlike Linux, macOS doesn't run containers natively, and so a "transient" virtual machine is necessary.
Please don't forget to give sufficient memory to the Docker virtual machine. At least 6 CPUs, 8 GB RAM, and 60 GB disk space is recommended. You can set these values in "Docker Desktop for Mac" resource preferences:
Installing several Python versions can be done via pyenv. We recommend to use Homebrew:
$ brew install pyenv
Windows Subsystem for Linux (WSL) allows you to run a Linux distribution alongside your Windows installation. This is a good choice for REANA development on Windows.
-
Open PowerShell or Windows Command Prompt in administrator mode by right-clicking and selecting "Run as administrator."
-
Enter the following command to install WSL:
wsl --install
-
Follow the on-screen instructions to complete the installation. This command will enable the Windows Subsystem for Linux feature and download a Linux distribution of your choice from the Microsoft Store.
-
After the installation is complete, you'll need to restart your machine.
-
Once your machine has restarted, open the Microsoft Store and search for a Linux distribution (e.g., Ubuntu) and install it. This will set up your Linux environment on WSL.
-
Launch the Linux distribution you installed from the Start menu or by typing its name in the command prompt.
More information on installing WSL can be found here.
After you have WSL installed and a Linux distribution set up, you can follow the Linux instructions mentioned earlier to set up the required development tools for REANA inside your WSL environment.
Remember that with WSL, you have the flexibility to run Linux-based development tools while still using your Windows system.
The next step is to fork and clone REANA source code to have it available locally. Please proceed to Cloning sources.
REANA reproducible analysis platform
blog.reana.io | docs.reana.io | forum.reana.io | www.reana.io |
@gitter | @mattermost | @twitter
Introduction
Getting started
- Setting up your system
- Cloning sources
- Using production-like development mode
- Using live-code-reload and debug mode
Issue lifecycle
Understanding code base
Technology tips and tricks
- Tips for Docker
- Tips for Git
- Tips for GitLab
- Tips for Keycloak
- Tips for Kind
- Tips for Kubernetes
- Tips for OpenAPI
- Tips for PostgreSQL
- Tips for Python
- Tips for RabbitMQ
- Tips for SQLAlchemy