Preparing Submit for Each Assignment
See also
PreparingSubmitAtStartOfTerm.
Creating a submission log subdirectory
Before each individual assignment is opened for submission, a subdirectory for that
assignment's logs must be created with permissions 770. So, for an assignment
named a1, this directory would be
/u/csXXX/course/submitlog/a1.
Note that this will be created automatically the first time an assignment is submitted
if the
SubmitSubversionHook is being used,
so a submission can be made in lieu of this step.
Creating a handin folder and allowing submission
The submission folder will be a subdirectory of
/u/csXXX/handin named
the same as an assignment. So, for an assignment named aX, the submission foler will
be
/u/csXXX/handin/aX. As this will need to be read later by
RST from
inside of the testing account, its permissions should be 751.
Inside of this assignment-specific handin folder there should be a file called
.subfiles
.
As soon as it exists and is readable, the submission will be open.
This file will tell
submit
what files can be accepted for the current
assignment. They should be listed with one file pattern per line. The man page
claims that the first line of
.subfiles
may ignored; while it's not clear this
is actually true for any scripts in use, it does not hurt to make this a comment
line. So, a typical
.subfiles
may contain the following information:
##############
a6q1.py
a6q2.py
In addition to literal file names, glob patterns may be used. So, this may include
situations such as
*.java
or
a1q1.{ss,scm}
. In the latter case, what is desired is
to match exactly one of those file endings. As such, it is preferable to use a glob
pattern rather than list them separately; otherwise, submit will report a file match
for the one that is present, but report that the other one was not found, potentially
confusing students.
Once this is prepared, run the command
deadline aX o
to ensure that the assignment is ready to accept submissions; this is often not necessary, but it doesn't hurt to do it.
As a final note, the
.subfiles
file must also be readable by the ISG file filter
(see
SubmitFileFilter for other configuration options available).
It does not contain any secret contents (in fact, these will be listed upon request
by submit), so it's safe to set permissions to 644.
Setting the assignment deadline
Automating the shutoff of assignment submission is handled by an auxiliary command.
If you are in a course like CS 115 that creates a parallel late assignment immediately when
ending submissions to handle Odyssey meltdowns, you will want to use the script
makelateclone
. If you are in a course like CS 135 that wants submissions to have a firm end point under all
circumstances, you will want to use the command
deadline
.
These commands can be scheduled using either the cron command or the more appropriate
at command.
To use at command, first type in
at <time><month><day>
(eg. at 1735 Jan 19)
You will be prompted with
at>
. To set the deadline and make a late folder at the same time, now type in
/u/isg/bin/deadline a03 n
makelateclone a03 a03nocredit
Now click
enter
and
ctrl-d
to end the at command. Here, a03 is the assignment name, a03nocredit is the name of late folder.