This page is accessible from linux.student.cs.uwaterloo.ca with "man submitrc"
Name
.submitrc - course account configuration file for submit
Synopsis
/u/csNNN/.submitrc
Description
This file is used by the submit program, and many supporting programs currently found under /u/cssystems. The versions of the supporting programs reside under diverse /u/csNNN
accounts, usually in /u/csNNN/bin.
The .submitrc file is a collection of variable assignments which parameterize the behaviour of the submit command for a particular course. Sh-style comments, beginning with a "#" may
also be included. As implied above, the behaviour of other supporting programs may be affected by values of some variables. submit may also make use of the .submitrc file.
Useful Variables
The following variables can usefully be set to customize the behaviour to suit the course.
course information
homeac - the home or course account to receive the assignments, e.g. cs246; submit defaults this to its first command-line argument, but by convention this tends to be set again
(that is, to the same value) in a course account .submitrc
testac - the account where automated tests will be conducted; submit defaults this to its first command-line argument, but it really is often appropriate to change that
maxlates - the maximum number of late assignments each student may submit
merge - may be set to "yes" or "no" to indicate, respectively, whether new submissions should be added to files previously submitted, or whether all old files for that submitter
for the particular assignment should be deleted; see more extensive notes below. The default value is "yes".
names of administrative files
The following variable has a default value, but it may be appropriate to set it to a different value in some cases.
classlist - the absolute pathname of the file containing the list of students in the course; usually this is under the home directory of homeac; default is the CSCF-supplied list
of students in the course .classlist immediately beneath homeac. In the case of a cross-listed course, including cs400/cs600 it might be appropriate to set this to a dif-
ferent file to have appropriate merged contents.
The following variables have no default values, and so must be set if the facility is required.
file_filter - may optionally be set to the absolute pathname of an executable program; if this generates output for a given file name that file is rejected, and the output dis-
played as a message to the user
final_filter - may optionally be set to the absolute pathname of an executable program; it is called as a last step to provide flexible processing of the submission.
Variable which must be set
For historical reasons, the following variable must be set.
submit_version - This must alway be set to "2".
MORE ABOUT THE "merge" VARIABLE
The variable "merge", as briefly noted above, may be set to "yes" or "no". It may also be set to equivalent boolean values, "true" or "false", or "1" or "0".
If "merge" is set to "no" then previously submitted files for the same assignment will be deleted as a new submission is made. If set to "yes" then the files of a new submission will
be added to (merged with) the files previously submitted for the particular assignment.
By default, this variable is set to "yes", if the list of required files contains no patterns, and to "no" if the list does contain patterns.
Note that setting "merge" to "yes" can necessitate that the submitting students use the messy "-delete" option of submit if the list of filenames is not, in fact, fixed, and students
decide not to submit a previously submitted file.
EXTRA MESSAGE FILES
The following files, if placed in the handin directory for a particular assignment (beside ".subfiles") will be displayed at the appropriate times as their names indicate. In most,
but not all, cases they replace the default message.
.message
.message-nolonger
.message-ontime
.message-need-t
.message-late
.message-maxlates
.message-mismatch
.message-match
Note that there is no way to replace the messages on a per-course basis
(although symlinks could be used to avoid multiple copies of the same
text).
USELESS VARIABLES
While submit was being developed, it seemed appropriate to allow very fine-detailed choices for all relevant directories and files. In hindsight, this is just confusingly overwhelm-
ing. In fact, many of these variables must not be changed because other scripts sometimes used to process the submit data are not always aware of their existence, and assume the
default values instead.
That is, the following variables can be set to other than default values, but doing so is not recommended.
submit_version - version number of submit command the course wishes to work with. To all intents and purposes this must alway be set to "2".
directory names
The following variables can be set to other than default values, but doing so is definitely not recommended.
coursedir - the directory where adminstrative files and directories are kept
handindir - the directory where submitted files are kept
latedir - element of directory in coursedir and handindir used to record late submissions
listdir - directory where administrative files for each assignment are kept; actually, it was in past the "pathname prefix of the administrative files for each assignment" --that
is, if it included no trailing slash, directories corresponding to assignments would have a final component different from those in "handindir". This behaviour will be
retained until there is consensus to alter it.
But the default value is "$coursedir/" and there is no real reason to use anything different.
names of administrative files
The following variables can be set to other than default values, but doing so is definitely not recommended.
ontimelist - the name of the file in the per-assignment directory under listdir to contain the list of userids of submitters who submitted before the on-time deadline; default is
"handin.lst".
fixedlist - the name of the file in the per-assignment directory under listdir to contain the list of userids of submitters who submitted only before the on-time deadline, and
not after; default is the value of variable ontimelist.
latelist - the name of the file in the per-assignment directory under listdir to contain the list of userids of submitters who submitted an assignment after the on-time deadline;
default is "handin_late.lst".
nonelist - the name of the file in the per-assignment directory under listdir to contain the list of userids of students who made no submission; default is "handin_none.lst".
hidelist - the name of the file in the per-assignment directory under listdir whose existence makes the assignment invisible to users; default is "handin_hide.lst".
sublist - the name of the file in the per-assignment directory under handindir wherein are listed filename-matching patterns of files expected for that assignment
message - set by default to ".message", this can optionally be used to change the name of the extra message files.
See Also
submit (1) - on-line course-assignment submission mechanism
subfiles (4) - assignment configuration file for submit
file_filter(4) - optional file rejection program for submit
/u/cssystems/submit/ - in the CS teaching environment
Cameron Shelley, On-line submission with SUBMIT, August 1993.
Bugs
Historically, this used to be a theoretically arbitrary file of sh(1) commands. In all observed cases it was actually a collection only of assignment statements. Now, any attempts
to use any other sh (1) statements will cause the new submit command to fail.
Furthermore, there may be some variations of assignment statements which will not be recognized by the new submit command.