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:


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.

Topic revision: r2 - 2010-03-29 - TerryVaskor
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback