ChangeLog
2024.01.2 (2024-05-08)
Changes
Removed obsolete message to Redis regarding grading completion
Fixes
Fixed issue where failed-to-validate pipelines would crash the grader dispatcher
2024.01.1 (2024-03-31)
Additions
StdioTest
: Addedcompat:denyStderr
to treatstderr
output as failValgrind
: Addedcompat:noMatchStdout
to ignore comparison ofstdout
when running executables in Valgrind
Changes
StdioTest
: Do not prepend./
if executable is already an absolute path
2024.01.0 (2024-01-20)
Changes
Added 15-minute limit to per-stage timeout
Added recovery logic to Redis failures
Fixes
Fixed several issues related to
DiffWithSkeleton
Fixed erroneous writing of report timestamps
2023.09.1 (2023-09-03)
Fixes
Fixed several critical bugs affecting transfer of files between host and container
2023.09.0 (2023-09-01)
Additions
Added ability to transfer files between host and container via Docker API
Added ability to track runner resource reservation using dummy containers
[BREAKING] [API] Added
log
,readPath
andwritePath
to container APIs[API] Added
SemVer
class for parsing semantic versioning strings[API] Added
TraceableState
for debugging coroutine states on deadlocks
Changes
Added compression to grader logs after pipeline completes execution
Switched to using Eclipse Temurin JDK
Added enforcement for execute-once behavior of runners
Added timeout detection for runners
Optimized runtime for certain hot regions (e.g. daemon dispatch)
Modularized daemon in preparation for using other IPC software
Fixes
Fixed
Valgrind
pipeline stage not working due to ulimit for nofileFixed a major issue causing resource exhaustion and deadlocks
Fixed several instances of memory leaks
Fixed compilation of Grader using JDK 17
2022.09.6 (2023-03-28)
Fixes
Fixed a possible deadlock when unbinding expired runners
2022.09.5 (2023-03-27)
Additions
Added
grader.logging.file.dir
configuration property to specify file logging output directory
Fixes
Fixed a possible memory leak when tracking container logs
2022.09.4 (2023-03-22)
Fixes
Attempted to fix more cases where deadlock may occur
2022.09.3 (2022-10-11)
Fixes
- Reverted “
GTest
: Fix compilation error when compiling a test case without sources” Caused compilation errors in GTest with more than one input files
Removed
srcCompileArgs
andtestCompileArgs
from configuration until this can be fixed
- Reverted “
2022.09.2 (2022-10-10)
Changes
- Temporarily removed support for PyLint
pylint2junit
, a Python module used internally for score aggregation, does not support newer versions of PyLintThis will be fixed in a future release
Fixes
DockerImageApi
: Always remove intermediate containers if images failed to be builtBaseDockerfile
: Always synchronize package repos before installing packagesGTest
: Fix compilation error when compiling a test case without sources
2022.09.1 (2022-09-28)
Additions
Add support for grading assignments written in C programming language
Changes
Daemon
: Initialize Docker daemon connection at startup
2022.09.0 (2022-09-03)
Changes
DockerRunner
: Reduce lifetime of resources used by the RunnerDocker daemon resources are now only held within
DockerRunner.execWithInput
Should fix numerous deadlock issues
DockerDaemonDispatcher
: Added verification checks on the state of the dispatcher
Fixes
Configuration
: Fixed potential race condition in initialization causing multiple instances to be initialized
2022.02.5 (2022-04-15)
Fixes
DockerDaemonDispatcher
: Fixed dispatch being stuck if any runner dispatch fails with an exception
2022.02.4 (2022-04-11)
Fixes
DockerDaemonDispatcher
: Fixed missing GPU check when finding candidate daemons for dispatch
2022.02.3 (2022-04-10)
Fixes
DockerDaemonDispatcher
: Fixed error when mapping missing DRI devicesXUnitScoreUnitGenerator
: Fixed “malformed mangled name” error
Deprecations
[API]
MangledNameBuilder
: Deprecate passing an empty stage component toappendStageComponents
2022.02.2 (2022-04-05)
Fixes
DockerDaemonDispatcher
: Fixed detection of GPUs on hosts with no DRI devices
2022.02.1 (2022-03-30)
Additions
- Added support for using GPU devices
This feature can be accessed via
_settings.enable_features.gpu_device
in the assignment configuration
- Add
python/cuda
to the list of recognized options for_settings.lang
Allows enabling CUDA functionality for Python-based pipelines
- Add
Changes
- StdioTest: Presence of stderr output will not mark the stage as failure
Rationale: Some libraries (e.g. Tensorflow) uses stderr messages to show internal states
Deprecations
_settings.allow_network
in assignment configuration is deprecatedUsers should use
_settings.enable_features.network
instead
2022.02.0 (2022-02-25)
Additions
Documentation: Added new pages of documentation specific to creating assignments of specific languages.
StdioTest: Added
additional_packages
andadditional_pip_packages
to install packages for use in the stageStdioTest: Added
hidden
key to hide output of certain fields from student viewAdded meta stages for higher-level abstraction of language-specific pipelines
Added support for Qt compilation
Removals
[API] Removed most deprecated APIs in Release 2021.04
2021.04.1 (2021-10-09)
Fixes
FileUtils
: Fix unable to read file when invalid Unicode characters are encounteredContainerExecLogger
: Relax logging retrieval requirementContainer logs can now be retrieved even if the logger has not completed the operation yet
2021.04.0 (2021-04-05)
Fixes
DockerConfigParser
: Fixed constant-ordered stages being removed during pipeline reordering processMake
: Fixed stage not properly marked as a pre-grading stage
2021.03.2 (2021-03-14)
Fixes
JUnit
: Fixed stage instantiation error due to unresolved path specificationsJUnit
: Fixed issues with internal stage injection due to missing per-input stage instantiation
Removals
[BREAKING] [API] Migrated
ReportT
andReportKind
tomodel.reporting
package
Deprecations
JavaCompile
: Deprecate configuration format which acceptsisCompileDir
2021.03.1 (2021-03-06)
Additions
[API] Add
PathSpec
class for explicit type specification for paths
Changes
FileStructureValidation
: Add default ignore patterns based on common OS filesJavaCompile
: Allow multiple specification of file/directory sourcesJavaCompile
: Add experimental option for optimized compilation
Fixes
FileStructureValidation
: Fixed patterns unable to match directoriesJUnit
: Fixed compilation error when multiple classpaths are specified
Removals
[BREAKING] [API] Migrated all reporting DTOs to
model.reporting
package
2021.03.0 (2021-03-01)
Changes
JUnit
: AppendrunArgs
from configuration to JUnit Runner instead of overriding itJUnit
: Fixed incorrect compilation output path forsrcInput
2021.02.0 (2021-02-24)
Initial stable release