Difference between revisions of "Contest.yaml"

From PC2wiki
Jump to: navigation, search
m (Contents of contest.yaml: add freeze comment)
m (See Also: add link)
Line 278: Line 278:
 
* [[problemset.yaml]]
 
* [[problemset.yaml]]
 
* [[CCS_Enhancements| CCS Enhancements]]
 
* [[CCS_Enhancements| CCS Enhancements]]
 +
* [[Export Tab]]
  
 
[[Category:CCS|CCS]]
 
[[Category:CCS|CCS]]

Revision as of 16:47, 24 November 2016

A contest.yaml file contains information to configure a contest.


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 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.
languages List of mappings with keys for languages.
problemset List of mappings with keys for problems. (see problem.yaml)

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: Sumit Hello Sample
short-name: 
elapsed: 0:00:00
remaining: 5:00:00
running: false
  1. Freeze at 1 hour before the end of the contest
scoreboard-freeze: 1:00:00

languages:
 - name: Java
   active: true

 - name: Perl
   active: true

 - name: GNU C++
   active: true

 - name: GNU C
   active: true

problemset:
  - letter: A
   short-name: hello

  - letter: B
   short-name: sumit

# EOF Contest Configuration

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.

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

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