Abstract: | Course material builder for online learning systems |
---|---|
Author: | Jaakko Kantojärvi <[email protected]> |
Roman is course material builder for A+ and other learning management systems.
Roman uses docker to run different build steps.
Course building steps are configure in course.yml
, which is read by roman.
Roman is in experimental development state
Check out Ariel
.
It is an extension to sphinx build process that is used to build RST course material to HTML and YAML files.
It can simple be used by adding apluslms/ariel
to build steps.
Roman reads configuration file course.yml
, course.yaml
or course.json
and then
runs course build steps defined in steps
list.
Steps can be strings describing docker image or objects containing at least img
.
Here is small example:
# course.yml
---
version: 2
theme: aplus
steps:
- hello-world
- img: apluslms/compile-rst
cmd: make touchrst html
mnt: /compile
env:
STATIC_CONTENT_HOST: "http://localhost:8080/static/default"
You can use prebuild binaries with graphical user inteface from releases page.
Alternatively, you can install cli version via pip pip3 install --user apluslms-roman[docker]
, which will add $HOME/.local/bin/roman
.
Presuming you have that in your PATH
, then you can execute roman --help
to get started.
*-linux.AppImage
is an AppImage package of Roman. Download, mark file executable and run it. Requires FUSE (installed on typical linux desktop).*-linux.zip
contains a single-file executable. Download, extract, runroman
. Requires that files in/tmp/
can be executed.*-mac.dmg
contains Roman.app in a disk image. Download, open, drag Roman.app to e.g. Applications, run. Note: On the first time you need to right or control-click the app, select open in the menu and finally open in the dialog.*-mac.zip
contains Roman.app in a zip. Same prosess as with above version.
If you are not sure what file to use, then use the first one for your operating system.
Documentation on how these files are build, can be found under ``packaging`` in the source repo.
This repository curently holds few different python packages, which makes things problematic.
There is set of scripts under ./scripts/
to make this ok.
For example, you can setup development environment for you:
# install venv (you can skip this part)
python3 -m venv venv
# or
python3 -m virtualenv -p python3 venv
# activate
. ./venv/bin/activate
# install roman packages
./scripts/install_for_development.sh
To run tests:
# run all tests in the repo
# creates virtual env, if none is active
./scripts/run_all_tests.sh
# run all tests for a package
python3 setup.py test
python3 -m unittest discover -t . -s tests
# run a single test file
python3 -m unittest tests.test_cli
# run a single test class
python3 -m unittest tests.test_cli.TestGetConfig