WARNING: the current state is geared towards deployments in the KU Leuven specific cloud services, see Custom deployments for your options. In the near future, the KU Leuven specifics will be entirely decoupled from the generic code base so a default installation will work with a vanilla iRODS installation
The current version requires python 3.10 or higher. See also the section on changing the python version below.
You need to have a valid and initialised iRODS environment for your account, the easiest is to install the iRODS icommands and execute the instructions from the ManGO landing page for the chosen iRODS zone
Create a python virtual environment in the root of this repository checkout and install the required modules, for example
$ python3 -m venv venv
$ . venv/bin/activate
$ pip3 install -r requirements.txt
Currently the node module parcel and its dependencies are required for building, see https://parceljs.org/
Before using the first time, execute the following steps
$ cd src
$ npm install
$ npm run build
Make sure you activated the virtual environment
Launch the flask development server from the src directory:
$ cd src
$ ./run_waitress.sh
or
$ src/run_waitress.sh
This will start waitress as used in the production deployments, but adds a listener for reloading the app when you change files locally.
Point your browser to http://localhost:3000
Check for new required python modules and or versions
$ pip3 install -r requirements.txt
If you encounter javascript related errors, the used js files may need an update:
$ cd src
$ npm install
$ npm run build
If you upgrade your python version, the requirements.txt may not be correct anymore (outdated packages). You can install updated python modules with:
$ pip list --outdated --format=freeze | grep -v '^\-e' | \
cut -d = -f 1 | xargs -n1 pip install -U
- backend framework: Flask
- code organisation: Flask blueprints for making things modular
- leverage the irods-Python client
- optional OpenSearch integration
The preferred formatter is black with its default options, it also has an integration with IDE's such as VSCode
The preferred formatter is prettier with indenting to 4 spaces, no TAB's and single quotes for strings