-
Notifications
You must be signed in to change notification settings - Fork 0
/
CDP.mw
249 lines (194 loc) · 9.1 KB
/
CDP.mw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
=Draft=
This is a draft standard for the ICPC 2016 Finals, upon approval
this draft status will change to Final Approved status. The Final
version will have a version number and date.
Also, note that this format is not intended for archiving contests. Instead one should use the [[Contest Archive Format]].
=Introduction=
Many Contest Control Systems and related tools rely on the
specification of configuration and control information for both
initializing and running a contest.
A ''Contest Data Package (CDP)'' is an organized structure of files/directories that
are input to and output from a contest. A CDP is a single arbitrarily-named folder
which contains various explicitly-named files and subfolders as described below.
The purpose of this specification is to identify the Contest Data Package
organization expected by Contest Control Systems and related tools which support
the specifications of the ICPC World Finals. Many of these software
systems and tools can be completely configured simply by pointing them to a
correctly-organized CDP.
A CDP contains two types of data: ''Input Data'' which is used to configure and/or
control a software system or tool, and ''Output Data'' which is generated by the
software system or tool and is intended to be added post-contest to the CDP
for archival purposes.
=Input Data=
These are files and folders which provide input/configuration information for a contest.
==config folder==
Contains data used to configure a CCS. The name of the folder
must be "config", it must reside directly in the root folder of the CDP,
and it must contain the following files and folders:
* [[Contest_Control_System#contest.yaml|contest.yaml]]
* [[Contest_Control_System#problemset.yaml|problemset.yaml]]
* [[Contest_Control_System#groups.tsv|groups.tsv]]
* [[Contest_Control_System#teams.tsv|teams.tsv]]
* [[Contest_Control_System#userdata.tsv|userdata.tsv]]
* One folder for each contest problem defined in the [[Contest_Control_System#problemset.yaml|problemset.yaml]] file. The folder name matches the short-name in problemset.yaml for that problem. The data for each problem directory is described in [[Problem format]]
==images folder ==
This folder, which must be named "images", contains subfolders for various types of
contest image data, including
* logo -- holds team (university) logo images
* team -- holds team pictures (typically, a photograph of the team members)
* icon -- holds icon-sized versions of the team (university) logo images
* overlay -- holds overlay images containing team logos and team/university names
===images/logo folder===
This folder holds one 600x600 image file for each contest team
containing the team's logo (typically, the University Logo).
Each team logo must be in a separate PNG-format
file whose name is X.png, where X is the team number (e.g., 1.png, 102.png, etc.).
===images/team folder===
This folder holds one 1920x1080 image file for each contest team
containing the team's picture (typically for example taken during contest registration).
Each team picture must be in a separate JPEG-format
file whose name is X.jpg, where X is the team number (e.g., 1.jpg, 102.jpg, etc.).
===images/icon folder===
This folder holds one 28x28 image file for each contest team
containing the team's logo (typically, the University Logo) in icon size.
Each icon image must be in a separate PNG-format
file whose name is X.png, where X is the team number (e.g., 1.png, 102.png, etc.).
===images/overlay folder===
This folder holds one 1920x1080 image file for each contest team
containing the team's name and logo.
Each overlay image must be in a separate PNG-format
file whose name is X.png, where X is the team number (e.g., 1.png, 102.png, etc.).
The name and logo are expected to be placed in the 1920x1080 image in such a way that
makes the image suitable for use as an "overlay" in, for example, video
production.
==present folder==
This folder, which must be named "present", holds images and other data
typically used by the ICPC Tools Presentation System,
as well as other ICPC Tools (for example, the ICPC Resolver). The content and format of
the images and data in this folder are dependent on the tools accessing the particular CDP.
=Output Data=
These are files that are output from a contest. Typically, these files and
folders will be added to the CDP at the completion of a contest: once the contest is complete,
the final event feed, submission files, and other relevant generated data
should be added back into the CDP archive, allowing the CDP to
be a complete archive of the contest.
Note that not all contests produce all types of output data. For example, some contests will have
backups, reaction videos, or logos, and others won't. There is no requirement that a CDP
contain any particular output data; only that IF the corresponding output data exists and
is to be archived in a CDP, then it should be organized as follows.
==submissions folder==
This folder, which must be named "submissions", contains a folder for each run submission
which took place during the contest. Each separate run submission is contained in its
own subfolder, named with the run id of the submission.
===submissions/## folder===
Each numbered submisions subfolder contains the following for the run corresponding to
the name of the subfolder:
# Team's submitted source code file(s)
# [[run.properties]] file (optional)
==events folder==
This folder, which must be named "events", contains the following event information
generated by the Contest Control System.
# A file named ''events.xml'' containing the finalized event feed from the CCS in XML format as specified by the [[Event_Feed|event feed page]].
# A file named ''events.json'' containing the finalized event feed from the CCS in JSON format.
The events folder may also contain other files in the format
"<x>-events.xml", e.g. "pc2-events.xml".
==results folder==
This folder, which must be named "results", contains required output files from the CCS.
Examples may include:
# [[Contest_Control_System#results.tsv|results.tsv]]
# [[Contest_Control_System#scoreboard.tsv|scoreboard.tsv]]
# [[Contest_Control_System#submissions.tsv|submissions.tsv]]
===results/<CCS> folder===
The results folder may include subfolders associated with specific CCS implementations.
These might include, for example, Reports generated by the CCS -- for example,
results/pc2/results.tsv
results/pc2/scoreboard.tsv
results/pc2/balloonReport.txt
==video/reactions folder==
This folder contains recorded team reaction videos for each submission, in m2ts format.
("Reaction videos" are recordings made from a team's local webcam at the time they
submit a run to the CCS. These are used for example in the ICPC World Finals to provide
interesting reaction segments to the ICPCLive television broadcast.)
The name of each reaction video file should be "reactionXX.m2ts", where "XX" is the
submission number for which the team reaction video was recorded.
==backups folder==
* contains backups of each team's working folder in the form team<X>.zip.
For team102 their $HOME backup would be stored in
''backups/team102.zip''.
=Examples=
Here are two examples of implementations of the CDP specfication.
==Sample One==
config/hello/[[problem.yaml]]
config/hello/data/secret/hello.ans
config/hello/data/secret/hello.in
config/hello/data/problem_statement/[[problem.tex]]
config/[[teams.tsv]]
config/sumit/[[problem.yaml]]
config/sumit/data/secret/sumit.in
config/sumit/data/secret/sumit.ans
config/sumit/data/problem_statement/[[problem.tex]]
config/[[contest.yaml]]
config/[[problemset.yaml]]
config/[[groups.tsv]]
config/[[userdata.tsv]]
submissions/1/A.java
submissions/3/C.java
submissions/3/A.java
submissions/2/A.java
results/[[runs.tsv]]
results/[[scoreboard.tsv]]
results/[[standings.json]]
results/[[results.tsv]]
backups/team1.zip
backups/team2.zip
backups/team3.zip
video/reaction/reaction3.m2ts
video/reaction/reaction1.m2ts
video/reaction/reaction2.m2ts
images/team/3.jpg
images/team/2.jpg
images/team/1.jpg
images/logo/1.png
images/logo/3.png
images/logo/2.png
events/[[eventfeed.json]]
events/[[eventfeed.xml]]
==Sample Two==
backups/team1.tar.gz
backups/team2.tar.gz
backups/team3.tar.gz
config/[[contest.yaml]]
config/[[groups.tsv]]
config/[[problemset.yaml]]
config/[[teams.tsv]]
config/[[userdata.tsv]]
config/hello/[[problem.yaml]]
config/hello/data/problem_statement/[[problem.tex]]
config/hello/data/secret/hello.ans
config/hello/data/secret/hello.in
config/sumit/data/problem_statement/problem.tex
config/sumit/data/secret/sumit.ans
config/sumit/data/secret/sumit.in
config/sumit/problem.yaml
events/[[events.json]]
events/[[events.xml]]
images/logo/1.png
images/logo/2.png
images/logo/3.png
images/team/1.jpg
images/team/2.jpg
images/team/3.jpg
results/[[results.tsv]]
results/[[runs.tsv]]
results/[[scoreboard.tsv]]
results/[[standings.json]]
submissions/1/[[run.properties]]
submissions/1/A.java
submissions/2/A.java
submissions/2/run.properties
submissions/3/[[run.properties]]
submissions/3/A.java
submissions/3/C.java
video/reactions/reaction1.m2ts
video/reactions/reaction2.m2ts
video/reactions/reaction3.m2ts