Release v1.17.0, September 2022
markkuriekkinen
released this
01 Sep 14:41
·
62 commits
to master
since this release
This release focuses on improving slow course build times.
Gitmanager v1.17.0 is compatible with A-plus v1.16 and MOOC-Grader v1.16.
Changes
- Enabled multiple concurrent course build jobs. (#21)
- Previously, only one build job could be running in the system at a time. Now, multiple course instances may have build jobs running concurrently. One course instance may have at most one build job running.
- Added option to specify exclude patterns for git clean.
- New option
exclude_patterns
in apps.meta under the course git repo. - Matched files are not removed during the clean at the start of a build.
- For example,
exclude_patterns = _build exercises
lists two separate directores,_build
andexercises
. - This may be used to avoid deleting some of the previously built output files if their removal is time consuming.
- New option
- Added option to build directly in the course publish directory.
- Option "skip build failsafes" in the Git manager course instance settings.
- When enabled, the recovery functionality does not work anymore: if the course build breaks something, the course will be broken until it is fixed with a new build.
- Graders are configured during the aplus-json request (course import in the A+ frontend): every time someone clicks "apply" under the A+ Edit course section, the grader is configured again.
- This mode speeds up the build time because there is no need to copy files between directories, and the grader is only configured during the aplus-json request.
- It is not recommended to import the course in the A+ frontend (that is, send the aplus-json request) while a course is building in the gitmanager if this option is enabled. Since the build directly modifies the publish directory, the results of aplus-json become unpredictable during a running build.
For system administrators
- Added Django manage.py command for flushing the Huey storage:
manage.py flush_huey
- Huey is the framework used for asynchronous task queue.
- Huey stores a lock for the course build job so that multiple builds are not started concurrently.
- If a course build is killed abrutly, the lock may stay in the storage and prevent new builds from starting.
- The command is used to flush build job locks from the storage, which allows new builds to start when the locks have become stuck.
- This should be only rarely needed.
- If the new option "skip build failsafes" is used, it may be necessary to modify the build script in order to enable mounting the publish directory (setting
COURSES_PATH
) to the build container. Normally, the build is run in the separate build directory (BUILD_PATH
) and not directly under the publish directory. The build script is defined with the settingBUILD_MODULE
. It may be used to change the default scriptscripts/docker_build.py
.
Release notes (the page will be published when A+ v1.17 is released):
https://apluslms.github.io/releases/v1_17.html