Development or production use on any other system may not work.
To build the system from source rather than downloading the ready-built packages:
- Install the build dependencies with
./development/install_builddeps.sh. - Run
./packaging/build-host.sh,./packaging/build-queue.shand./packaging/build-web.sh.
To install The system:
- Following the setup in the sandbox README on all machines that should judge submissions.
- Install the built
omogenjudge-web.debandomogenjudge-queue.debpackages on the machine hosting the frontend. - Install the built
omogenjudge-host.debpackage on all machines that should judge submissions.
All configuration lives in /etc/omogen/.
First, follow the setup and configuration sections to set up the backend, except that you shouldn't install omogenjudge-web.
First, you need to set up some development tooling:
- Ensure that
$HOME/.local/binis in your PATH (for example by addingPATH=$PATH:HOME/.local/binat the end of your~/.bashrc, if using bash).poetryis installed there later on. - Install the development dependencies by running
./development/install_devdeps.sh - Create your local Django configuration by copying
omogenjudge/settings/local_development.example.pytoomogenjudge/settings/local_development.py - Setup a new database by running
./development/new_db.sh.
To start the frontend server, you need to perform two steps:
- Start the frontend asset compiler to build CSS and JavaScript upon changes by running
./frontend_assets/watch_assets.sh. - Start the webserver by running
poetry run python manage.py runserver.
After pulling in new changes, you might need to do two things:
- Re-run
./development/install_devdeps.shsince dependencies might have been updated. - Run
poetry run python manage.py migrateto apply any database schema changes.
First, follow the setup and configuration sections, except that you don't need to install omogenjudge-web if you have your local development installation.
- The evaluator library is included during compilation by the judgehost. If you need to make changes to it, check out the
omogenexecrepository as a sibling to theomogenjudgerepository. Update theWORKSPACEfile to point to your localomogenexeccopy instead (search forEVALUATOR LIBto find the right place) and follow the next point to run your own judgehost build. - Kill the auto-started judgehost with
sudo systemctl stop omogenjudge-host. Enter thejudgehostdirectory and run the annoying commandbazel build //judgehost:omogenjudge-host && sudo cp ./bazel-bin/judgehost/omogenjudge-host_/omogenjudge-host . && sudo -u omogenjudge-host omogenjudge-hostto start the judgehost. - Kill the auto-started one with
sudo systemctl stop omogenjudge-queue. Enter thejudgehostdirectory and runbazel run //queue:omogenjudge-queue.