Skip to content

Commit

Permalink
Disabled post-commit hook
Browse files Browse the repository at this point in the history
  • Loading branch information
sauterl committed Oct 12, 2023
2 parents d049d13 + 7236e4c commit 14a1cc5
Show file tree
Hide file tree
Showing 810 changed files with 58,918 additions and 22,169 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -304,3 +304,6 @@ local.config.json

## Do not include the generated client bindings
frontend/openapi/

## Do not include the generated yarn.lock when using the build process
yarn.lock
19 changes: 9 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ DRES> user create -u admin -p password -r ADMIN
```

Additional users are required in order to perform an evaluation. At least one user per participating system instance
(i.e. with `-r PARTICIPANT`). To simply have a user to view competitions, but otherwise not interact with the system,
(i.e. with `-r PARTICIPANT`). To simply have a user to view evaluation runs, but otherwise not interact with the system,
we recommend to create a viewer user: `-r VIEWER`.

### Create Media Collection
Expand All @@ -117,30 +117,29 @@ DRES> collection scan -c first -vt mp4

Obviously, for an image collection one would replace `-vt mp4` with `-it png` or `-it jpg`. For mixed collections, use both.

### Create Competition
### Create Evaluations

**Below instructions require an admin user and are performed in the UI** |
--------------------------------------------------------------------------

The next step is to create a competition. This is done using the web frontend of DRES.
The next step is to create an evaluation template. This is done using the web frontend of DRES.
Using your browser, navigate to your DRES address and perform the login using the administrator user created previously.

Then, navigate to _Competition Builder_ and create a new competition. Follow the instructions there.
Then, navigate to _Evaluation Template Builder_ and create a new competition. Follow the instructions there.

### Create Competition Run

A competiton serves as the template for one or more _competition runs_.
Please keep in mind, that once a _run_ was created, changes on the competition are not reflected in the run.
An evaluation template serves as the template for one or more _evaluation runs_.
Please keep in mind, that once a _run_ was created, changes on the template are not reflected in the run.

Competition runs are created from the _Competitoin Runs_ view, where one uses the "+" button to create a new one.
Currently (DRES v0.3.2), only _SYNCHRONOUS_ runs are supported, so please chose this option.
Evaluation runs are created from the _Evaluations_ view, where one uses the "+" button to create a new one.

In a non distributed setting, it might be desirable, that participants cannot view the actual run from the frontend,
but require an external source for the query hints (e.g. a large monitor). This could be achieved by unchecking the corresponding option in the dialog.

### Runnig the competition
### Runnig the evaluation

As competition _operator_, one has to first start the run, then switch to a fitting task and ultimately start the task.
As evaluation _operator_, one has to first start the run, then switch to a fitting task and ultimately start the task.
Query hints are displayed as configured to all viewers, once they are all loaded (depending on the setup, this might take a breif moment).
Viewers and participants are shown the message "_Waiting for host to start task_". In case this seems to take too long,
the operator can switch to the admin view and force all participants to be ready, by clicking the red ones.
Expand Down
126 changes: 67 additions & 59 deletions backend/build.gradle
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
import org.apache.tools.ant.taskdefs.condition.Os

buildscript {
ext.kotlinVersion = '1.4.31'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlinVersion"
classpath "org.jetbrains.kotlin:kotlin-stdlib:$version_kotlin"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$version_kotlin"
classpath "org.jetbrains.kotlin:kotlin-serialization:$version_kotlin"
}
}

apply plugin: 'application'
apply plugin: 'kotlin'
apply plugin: 'kotlinx-serialization'
apply plugin: 'kotlin-kapt'
apply plugin: 'idea'

mainClassName = 'dev.dres.DRES'
sourceCompatibility = 1.8
sourceCompatibility = 11

/* Configuration for frontend classpath files (see dependencies). */
configurations {
Expand All @@ -30,87 +30,94 @@ configurations {

repositories {
mavenCentral()
maven {
url 'https://maven.reposilite.com/snapshots'
allowInsecureProtocol = true
} //javalin openapi snapshot
}

compileKotlin {
kotlinOptions.jvmTarget = "1.8"
kotlinOptions {
freeCompilerArgs = ["-Xinline-classes"]
}
kotlinOptions.jvmTarget = "11"
compilerOptions.freeCompilerArgs.add("-Xcontext-receivers")
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
kotlinOptions.jvmTarget = "11"
compilerOptions.freeCompilerArgs.add("-Xcontext-receivers")
}

dependencies {
def jettyVersion = '9.4.44.v20210927'
def alpnApiVersion = '1.1.3.v20160715'
def alpnBootVersion = '8.1.12.v20180117'
def log4jVersion = '2.17.0'

def javalinOpenapi = '5.6.1'

///// Frontend files (produced by sub-project).
implementation frontendClasspath(project(path: ":frontend", configuration: 'frontendFiles'))

///// FFMpeg dependency
implementation files("$buildDir/ext") {builtBy 'setupFFMpeg'}

///// MapDB
compile group: 'org.mapdb', name: 'mapdb', version: '3.0.8'
///// Xodus & Xodus DNQ
implementation group: 'org.jetbrains.xodus', name: 'xodus-openAPI', version: version_xodus
implementation group: 'org.jetbrains.xodus', name: 'xodus-environment', version: version_xodus
implementation group: 'org.jetbrains.xodus', name: 'xodus-entity-store', version: version_xodus
implementation group: 'org.jetbrains.xodus', name: 'xodus-vfs', version: version_xodus
implementation group: 'org.jetbrains.xodus', name: 'dnq', version: version_xodus_dnq

////// Javalin
compile ('io.javalin:javalin-bundle:4.1.0'){
exclude group: 'ch.qos.logback', module: 'logback-classic'
}
compile group: 'io.swagger.core.v3', name: 'swagger-core', version: '2.1.5'
compile group: 'org.webjars', name: 'swagger-ui', version: '3.24.3'
compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-kotlin', version: '2.13.0'
compile group: 'io.github.classgraph', name: 'classgraph', version: '4.8.34'
compile group: 'org.eclipse.jetty.http2', name: 'http2-server', version: jettyVersion
compile group: 'org.eclipse.jetty', name: 'jetty-alpn-conscrypt-server', version: jettyVersion
compile group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: alpnApiVersion
runtime group: 'org.mortbay.jetty.alpn', name: 'alpn-boot', version: alpnBootVersion

////// bcrypt
compile group: 'org.mindrot', name: 'jbcrypt', version: '0.4'
implementation group: 'io.javalin', name: 'javalin', version: version_javalin
kapt("io.javalin.community.openapi:openapi-annotation-processor:$javalinOpenapi")

////// JLine 3, Clikt & Picnic for optimal terminal experience :-)
compile group: 'com.github.ajalt', name: 'clikt', version: '2.8.0'
compile group: 'org.jline', name: 'jline-terminal', version: '3.20.0'
compile group: 'org.jline', name: 'jline-terminal-jna', version: '3.20.0'
compile group: 'org.jline', name: 'jline-reader', version: '3.20.0'
compile group: 'org.jline', name: 'jline-builtins', version: '3.20.0'
compile group: 'com.jakewharton.picnic', name: 'picnic', version: '0.5.0'
implementation group: 'io.javalin.community.openapi', name: 'javalin-openapi-plugin', version: javalinOpenapi
implementation group: 'io.javalin.community.openapi', name:'javalin-swagger-plugin', version: javalinOpenapi
implementation group: 'io.javalin.community.ssl', name: 'ssl-plugin', version: version_javalin

////// Bcrypt
implementation group: 'org.mindrot', name: 'jbcrypt', version: version_bcrypt

////// JLine 3, Clikt & Picnic for optimal terminal experience :-)
implementation group: 'org.jline', name: 'jline-terminal', version: version_jline3
implementation group: 'org.jline', name: 'jline-terminal-jna', version: version_jline3
implementation group: 'org.jline', name: 'jline-reader', version: version_jline3
implementation group: 'org.jline', name: 'jline-builtins', version: version_jline3
implementation group: 'com.github.ajalt.clikt', name: 'clikt', version: version_clikt
implementation group: 'com.jakewharton.picnic', name: 'picnic', version: version_picnic

///// Fuel
compile group: 'com.github.kittinunf.fuel', name: 'fuel', version: '2.3.1'
implementation group: 'com.github.kittinunf.fuel', name: 'fuel', version: version_fuel

////// CSV
compile group: 'com.github.doyaaaaaken', name: 'kotlin-csv-jvm', version: '0.7.3'
implementation group: 'com.github.doyaaaaaken', name: 'kotlin-csv-jvm', version: version_kotlin_csv

////// Jaffree ffmpeg wrapper
compile group: 'com.github.kokorin.jaffree', name: 'jaffree', version: '0.9.3'
implementation group: 'com.github.kokorin.jaffree', name: 'jaffree', version: version_jaffree

////// Cache
compile group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: '2.8.6'

////// Log4J
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: log4jVersion
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: log4jVersion
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: log4jVersion
compile group: 'org.apache.logging.log4j', name: 'log4j-jul', version: log4jVersion
implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: version_log4j
implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: version_log4j
implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j2-impl', version: version_log4j
implementation group: 'org.apache.logging.log4j', name: 'log4j-jul', version: version_log4j

////// FastUtil
implementation group: 'it.unimi.dsi', name: 'fastutil', version: version_fastutil

///// JUnit 5
testCompile "org.jetbrains.kotlin:kotlin-test"
testCompile "org.jetbrains.kotlin:kotlin-test-junit5"
testImplementation "org.jetbrains.kotlin:kotlin-test"
testImplementation "org.jetbrains.kotlin:kotlin-test-junit5"
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter', version: version_junit
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: version_junit
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: version_junit

testCompile group: 'org.junit.jupiter', name: 'junit-jupiter', version: '5.7.0'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.7.0'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.7.0'
///// Jackson / Kotlin
implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-kotlin', version: '2.13.0'

///// Kotlin
compile group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version: kotlinVersion
compile group: 'org.jetbrains.kotlin', name: 'kotlin-reflect', version: kotlinVersion
implementation group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version: version_kotlin
implementation group: 'org.jetbrains.kotlin', name: 'kotlin-reflect', version: version_kotlin
}

kapt {
correctErrorTypes true
useBuildCache true
}

test {
Expand Down Expand Up @@ -141,9 +148,6 @@ distributions {

task downloadFFmpeg(type: Download) {
def f = new File("$buildDir/cache/ffmpeg.zip")
outputs.upToDateWhen {
return f.exists()
}

def os = ""
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
Expand All @@ -156,13 +160,13 @@ task downloadFFmpeg(type: Download) {

src "https://github.com/vot/ffbinaries-prebuilt/releases/download/v4.2.1/ffmpeg-4.2.1-$os-64.zip"
dest f
onlyIf {
!f.exists()
}
}

task downloadFFprobe(type: Download) {
def f = new File("$buildDir/cache/ffprobe.zip")
outputs.upToDateWhen {
return f.exists()
}

def os = ""
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
Expand All @@ -175,6 +179,10 @@ task downloadFFprobe(type: Download) {

src "https://github.com/vot/ffbinaries-prebuilt/releases/download/v4.2.1/ffprobe-4.2.1-$os-64.zip"
dest f
onlyIf {
!f.exists()
}

}

task copyFFmpeg(type: Copy) {
Expand Down
Loading

0 comments on commit 14a1cc5

Please sign in to comment.