Difference between revisions of "Contest.yaml"

From PC2wiki
Jump to: navigation, search
m (Example: remove lang and other defs)
m (removed problemset and languages)
Line 26: Line 26:
 
|-
 
|-
 
| clar-categories || Sequence of categories for clarifications.
 
| clar-categories || Sequence of categories for clarifications.
|-
 
| languages || List of mappings with keys for languages.
 
|-
 
| problemset || List of mappings with keys for problems. (see [[problem.yaml]])
 
 
|}
 
|}
  
Line 45: Line 41:
 
  # Freeze at 1 hour before the end of the contest
 
  # Freeze at 1 hour before the end of the contest
 
  scoreboard-freeze-length: 1:00:00
 
  scoreboard-freeze-length: 1:00:00
 
===languages===
 
 
 
====Short Form====
 
 
The short form will add a language with the pc2 default settings.
 
 
languages:
 
  - name: Java
 
    active: true
 
 
====Long Form====
 
 
languages:
 
 
  - name: 'Java'
 
    active: true
 
    compilerCmd: 'javac {:mainfile}'
 
    exemask: '{:basename}.class'
 
    execCmd: 'java {:basename}'
 
    runner: 'java'
 
    runner-args: '{:basename}'
 
    interpretedfalse
 
    use-judge-cmd: true
 
    judge-exec-cmd: 'java {:basename}'
 
 
  - name: 'GNU C'
 
    active: true
 
    compilerCmd: 'gcc -lm -o {:basename}.exe {:mainfile}'
 
    exemask: '{:basename}.exe'
 
    execCmd: '.\{:basename}.exe '
 
    runner: '.\{:basename}.exe'
 
    runner-args: ''
 
    interpretedfalse
 
    use-judge-cmd: true
 
    judge-exec-cmd: '{:basename}.exe'
 
 
  - name: 'GNU C++'
 
    active: true
 
    compilerCmd: 'g++ -lm -o {:basename}.exe {:mainfile}'
 
    exemask: '{:basename}.exe'
 
    execCmd: '.\{:basename}.exe '
 
    runner: '.\{:basename}.exe'
 
    runner-args: ''
 
    interpretedfalse
 
    use-judge-cmd: true
 
    judge-exec-cmd: '{:basename}.exe'
 
 
  - name: 'Python'
 
    active: true
 
    compilerCmd: 'python3 -m py_compile {:mainfile}'
 
    exemask: ''
 
    execCmd: 'python3 {:mainfile}'
 
    runner: 'python3'
 
    runner-args: '{:mainfile}'
 
    interpretedtrue
 
    use-judge-cmd: true
 
    judge-exec-cmd: 'python {:mainfile}'
 
 
  - name: 'Python 3'
 
    active: true
 
    compilerCmd: 'python3 -m py_compile {:mainfile}'
 
    exemask: ''
 
    execCmd: 'python3 {:mainfile}'
 
    runner: 'python3'
 
    runner-args: '{:mainfile}'
 
    interpretedtrue
 
    use-judge-cmd: true
 
    judge-exec-cmd: 'python3 {:mainfile}'
 
 
===problemset===
 
 
The list of problems defs in the problemset determines
 
the number and order of the problems defined in a contest.
 
 
Each problemset problem definition has a short-name which
 
is also called the problem short name.  The problem short
 
name is the name of a directory where the rest of the
 
problem settings are stored.  For more information about
 
those files and their contents see the article [[Problem Format]].
 
 
The problem short name (short-name) directory is expected
 
to be in the same directory as the contest.yaml file.
 
 
{|border="1" cellpadding="2"
 
|+ problemset name and values
 
! Name !! Description !! Example
 
|-
 
|letter||letter used to identify problem||G
 
|-
 
|short-name||problem short name (directory name for files, see [[Problem Format]])||fizbuzz
 
|-
 
|color||(optional) name of the color for the balloon ||Muave
 
|-
 
|rgb||(optional) the RGB color for the ballon||#0000ff
 
|-
 
|}
 
 
An example of a problemset section
 
 
problemset:
 
  - letter:    A
 
    short-name: apl
 
    color:      yellow
 
    rgb:        #ffff00
 
 
 
  - letter:    B
 
    short-name: barcodes
 
    color:      red
 
    rgb:        #ff0000
 
 
 
  - letter:    C
 
    short-name: biobots
 
    color:      green
 
    rgb:        #00ff00
 
 
 
  - letter:    D
 
    short-name: castles
 
    color:      blue
 
    rgb:        #0000ff
 
 
 
  - letter:    E
 
    short-name: channel
 
    color:      white
 
    rgb:        #ffffff
 
  
 
==PC² specific keys and values==
 
==PC² specific keys and values==

Revision as of 16:24, 27 June 2017

Overview

A contest.yaml file contains information used to specify a contest configuration to PC2. Contest.yaml files are written in YAML and can be loaded into PC2 either by using the --load option (when starting a PC2 Server) or by selecting the Import contest.yaml button on the Import CCS tab of the PC2 Admin Configure Contest screen.

A contest.yaml file consists of lines containing either colon-separated key:value pairs, or a list of items (called "mappings") starting with a dash. Whitespace (but not allowing tab characters) are used to indicate nested structure.

Contents of contest.yaml

For the current CCS specification for a contest.yaml see contest.yaml

contest.yaml keys
Key Description
name Name of contest
short-name Short name of contest
start-time Date and time in ISO 8601 format (wall-clock time that the contest starts)
duration Duration as h:mm:ss (length of contest, in contest time)
scoreboard-freeze-length Time before end of contest when scoreboard will be frozen form HH:MM:SS
default-clars Sequence of pre-defined clarification answers. The first will be pre-selected
clar-categories Sequence of categories for clarifications.

Example

# Contest Configuration, version 1.0 
# PC^2 Version: Version 9.3 20110918 (Sunday, September 18th 2011 23:51 UTC) Java ver 1.6.0_20 build 2345 Windows XP 5.1 (x86) 
# Created: 2011-09-18 18:05:40 PDT

name: Sample Contest
short-name: SampCon
elapsed: 0:00:00
remaining: 5:00:00
running: false
# Freeze at 1 hour before the end of the contest
scoreboard-freeze-length: 1:00:00

PC² specific keys and values

The article CCS Enhancements describes these entries in more detail.

Section Description
sites Sequence of mappings for Site information
accounts set of accounts to generate (same functionality as Generate Accounts)
auto judge Define Auto Judge assignments/settings
replay automatic Replay of previous contest feature

Example

accounts:
 - account: TEAM
     site: 1
    count: 20
 
- account: JUDGE
     site: 1
    count: 8

 - account: SCOREBOARD
     site: 1
    count: 1

sites:
 - number: 1
     name: Site 1
       IP: 130.86.67.202
     port: 50002
 password: siteone

 - number: 2
     name: Site 2
       IP: 130.86.67.201
     port: 50002

auto-judging:
  - account: JUDGE
     site: 1
     number: 2
     letters: A
     enabled: yes

  - account: JUDGE
     number: 4,5,6
     letters: B,C,D

  - account: JUDGE
     site: 2
     number: all
     letters: B,C,D

  - account: JUDGE
     site: 1
     number: 1,3
     letters: F
     enabled: no

Other Values

Other custom values are found in the article CCS Enhancements

Creating contest.yaml

A contest.yaml, problem.yaml and data files can be saved using either:

  1. the Export Contest YAML feature
  2. or use the Export Contest XML Report

Loading contest.yaml

Use the Admin Import CCS tab, Import contest.yaml button.


See Also