Commit 89851a37 authored by Markus Scheidgen's avatar Markus Scheidgen
Browse files

Merge branch 'v0.6.0' into 'master'

v0.6.0 Release

See merge request !60
parents 0f101e43 4f697b36
Pipeline #61968 passed with stage
in 1 minute and 9 seconds
......@@ -153,3 +153,6 @@
path = dependencies/parsers/onetep
url =
branch = nomad-fair
[submodule "dependencies/optimade-python-tools"]
path = dependencies/optimade-python-tools
url =
......@@ -79,9 +79,13 @@ your browser.
Omitted versions are plain bugfix releases with only minor changes and fixes.
### v0.6.0
- GUI URL, and API endpoint that resolves NOMAD CoE legary PIDs
- GUI URL, and API endpoint that resolves NOMAD CoE legacy PIDs
- Support for datasets in the GUI
- more flexible search python module and repo API
- support for external_id
- support for code-based raw_id
- Optimade API 0.10.0
- GUI supports Optimade filter query and other quantities
- minor bugfixes
### v0.5.2
......@@ -6,6 +6,7 @@ git config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
while read path_key path
echo $path
[ -f $path/requirements.txt ] && pip install -r $path/requirements.txt
[ -f $path/ ] && pip install $1 $path
(echo "$path" | grep -vEq ^dependencies/optimade-python-tools$) \
&& [ -f $path/requirements.txt ] && pip install -r $path/requirements.txt
[ -f $path/ ] && pip install --ignore-requires-python $1 $path
Subproject commit 43d77d198acfc3137d1c4d08a4601248fbf8548d
Subproject commit c36949f0c8421fff340d314d16ee83f7da5974ac
Subproject commit b9619d6b34a8f8e66120fb02f5fd3dbc16d26517
Subproject commit ccbf641ab7a0930c5f18507147f6c5b51f4e7444
Subproject commit d73611bc1b16ea71daa3d0fd24ee275c78853557
Subproject commit 67e781f7288b7e87da0a25ec02bf33d12de436f5
Subproject commit 0d5765ded1e24c5dd22be98c21d6c9284d06ec51
Subproject commit 039ed6cb532b26926f8e0d7dc2027403e965e67c
Subproject commit dc59aff14e69a6818fbefeb7b1d504348438e26b
Subproject commit a1cba85370ad5923969ac9ceb3643a56b3c2e7d9
Subproject commit aee4be7407124f87b0ba99eb7b4af3646b8602e9
API Documentation
API(s) Documentation
.. qrefflask:: nomad.api:app
.. qrefflask::
API Details
API(s) Details
.. autoflask:: nomad.api:app
.. autoflask::
......@@ -12,6 +12,7 @@ and infrastructure with a simplyfied architecture and consolidated code base.
......@@ -124,7 +124,7 @@ The component library [Material-UI](
### docker
To run a **nomad@FAIRDI** instance, many services have to be orchestrated:
the nomad api, nomad worker, mongodb, Elasticsearch, PostgreSQL, RabbitMQ,
the nomad app, nomad worker, mongodb, Elasticsearch, PostgreSQL, RabbitMQ,
Elasticstack (logging), the nomad GUI, and a reverse proxy to keep everything together.
Further services might be needed (e.g. JypiterHUB), when nomad grows.
The container platform [Docker]( allows us to provide all services
.. automodule:: nomad.metainfo
.. automodule:: nomad.metainfo.metainfo
.. automodule:: nomad.config
......@@ -42,9 +46,9 @@ nomad.coe_repo
.. automodule:: nomad.coe_repo
.. automodule:: nomad.api
.. automodule::
......@@ -3,7 +3,7 @@
## Introduction
The nomad infrastructure consists of a series of nomad and 3rd party services:
- nomad worker (python): task worker that will do the processing
- nomad api (python): the nomad REST API
- nomad app (python): the nomad app and it's REST APIs
- nomad gui: a small server serving the web-based react gui
- proxy: an nginx server that reverse proxyies all services under one port
- elastic search: nomad's search and analytics engine
......@@ -53,8 +53,9 @@ brew install libmagic
#### pyenv
The nomad code currently targets python 3.6. If you host machine has 3.7 or later installed,
you can use [pyenv]( to use python 3.6 in parallel.
While in principle everything should be compatable with 3.7 and later there have been
issues with some dependencies and requirements not being compatible with 3.7
To use 3.7 there is a slight issue about the `enum34` which fails the compilation of the
`mdtraj` and `mdanalysis` packages. A possible work arround is to uninstall and tham re-install
`enum34` once the other packages are installed.
#### virtualenv
We strongly recommend to use *virtualenv* to create a virtual environment. It will allow you
......@@ -139,7 +140,7 @@ There are currently two different images and respectively two different docker f
`Dockerfile`, and `gui/Dockerfile`.
Nomad comprises currently two services,
the *worker* (does the actual processing), and the *api*. Those services can be
the *worker* (does the actual processing), and the *app*. Those services can be
run from one image that have the nomad python code and all dependencies installed. This
is covered by the `Dockerfile`.
......@@ -169,7 +170,7 @@ It is sufficient to use the implicit `docker-compose.yml` only (like in the comm
The `override` will be used automatically.
Now we can build the *docker-compose* that contains all external services (rabbitmq,
mongo, elastic, elk) and nomad services (worker, api, gui).
mongo, elastic, elk) and nomad services (worker, app, gui).
docker-compose build
......@@ -197,7 +198,7 @@ docker-compose down
### Run containers selectively
The following services/containers are managed via our docker-compose:
- rabbitmq, mongo, elastic, (elk, only for production)
- worker, api
- worker, app
- gui
- proxy
......@@ -208,7 +209,7 @@ You can also run services selectively, e.g.
docker-compose up -d rabbitmq, mongo, elastic
docker-compose up worker
docker-compose up api gui proxy
docker-compose up app gui proxy
## Accessing 3'rd party services
......@@ -236,7 +237,7 @@ to use the right ports (see above).
## Run nomad services manually
You can run the worker, api, and gui as part of the docker infrastructure, like
You can run the worker, app, and gui as part of the docker infrastructure, like
seen above. But, of course there are always reasons to run them manually during
development, like running them in a debugger, profiler, etc.
......@@ -252,14 +253,14 @@ To run it directly with celery, do (from the root)
celery -A nomad.processing worker -l info
Run the api via docker, or (from the root):
Run the app via docker, or (from the root):
nomad admin run api
nomad admin run app
You can also run worker and api together:
You can also run worker and app together:
nomad admin run apiworker
nomad admin run appworker
### GUI
......@@ -375,7 +376,7 @@ Here are some example launch configs for VSCode:
"request": "launch",
"module": "flask",
"env": {
"FLASK_APP": "nomad/api/"
"FLASK_APP": "nomad/app/"
"args": [
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment