the jamovi source structure contains the following components:
|electron/||the electron app which represents the entry point of the program||
|server/||the server code written in python and built on top of tornado||
||jamovi.server (python module)|
|engine/||the background processing engine, written in C++ and making use of R||
||jamovi-engine (an executable)|
||js, css, html|
|examples/||the example data sets||(these can be copied verbatim)|
|platform/||platform specific files, icons, etc.|
client/ subprojects can be built by navigating into their directories and issuing the build command listed in the table above.
after building each of these subprojects, the results of the builds are assembled into a final tree for installation. the final jamovi folder structure for ubuntu is as follows:
/usr/lib/jamovi/ ├── bin/ | ├── locales/ | | └── ... | ├── resources/ | | ├── electron.asar | | └── default_app.asar | ├── jamovi | ├── env.conf | └── ... └── Resources ├── jamovi │ ├── client/ | | └── assets/ | | | └── ... | | └── ... | ├── examples/ | | └── ... | └── server/ | └── jamovi/server/ └── modules ├── base | └── R/ | └── ... └── jmv/ └── ...
the electron executable is the entry point for jamovi. it represents a combined web browser interface and nodejs interpreter. in constructing the
bin/ folder, its contents are simply taken from electron release archives (available from https://electron.atom.io), with three exceptions:
jamovi executable is simply the
electron executable renamed.
resources/default_app.asar is the default electron app which electron goes looking for when it starts up. this needs to be replaced with the
default_app.asar produced by the electron component of jamovi (from the
electron/ folder in the repo).
env.conf contains the path settings and environmental variables that jamovi requires. variables which end in
HOME are resolved relative to the
env.conf. on ubuntu, it’s contents are:
[ENV] R_HOME=/usr/lib/R R_LIBS=/usr/lib/R/site-library:/usr/lib/R/library PYTHONPATH=../Resources/jamovi/server JAMOVI_HOME=.. JAMOVI_MODULES_PATH=../Resources/modules JAMOVI_EXAMPLES_PATH=../Resources/jamovi/examples JAMOVI_CLIENT_PATH=../Resources/jamovi/client JAMOVI_SERVER_CMD=/usr/bin/python3 -u -m jamovi.server 0
this folder contains the following files from the
this folder should contain the following files and folders from the
note that the
Resources/jamovi/server, so the final path of the
jamovi/server/ directory will look a bit silly:
this is just the contents from the