Andrew Patrick <csr@calvin.doc.ca> (04/27/91)
Submitted-by: Andrew Patrick <csr@calvin.doc.ca> Posting-number: Volume 1, Info 3 Archive-name: Submit Comp.Sources.Reviewed Guidelines for Submissions Version 1.3 (4/10/91) Comp.sources.reviewed (CSR) is a moderated newsgroup for the distribution of program sources that have been evaluated by peer review (new reviewers are always welcome). This document presents some guidelines for submitting sources to CSR, and may change from time to time as we get more experience with the review process. Comments about these guidelines are also welcome. What sources are acceptable? ---------------------------- We will attempt to handle sources that run on all the major computers and operating systems. The limiting factor is whether we can find people who are willing to review sources on particular machines. We are equipped to review sources for the major flavors of Unix, DOS, and perhaps VMS. If you are in doubt, send a description of the program and the kinds of systems it is intended for, and we will see if we can find reviewers for it. Where should sources be sent? ----------------------------- Submissions to CSR should be mailed to "csr@calvin.doc.ca". Most news software will automatically mail postings to moderated groups to the moderator, which in this case has been defined as "csr@calvin.doc.ca". Please use an informative "Subject" line when mailing postings. Something like "nlist - New file list utility, Part01/04" is preferred over something like "Submission to comp.sources.reviewed". Your submission will be assigned a short "reference" name (<12 characters) for the review process and for archiving, so you may wish to supply a possible name in your Subject line. For very large submissions, authors may wish to contact the moderator (at "csr@calvin.doc.ca") to arrange an FTP file transfer. What form should submissions be in? ----------------------------------- The form of the submission will depend somewhat on the type of system it is intended for. The format for Unix submissions is detailed below, and the format for other systems (e.g., DOS) should follow these as much as possible. Submissions should be in the form of one or more "shar" (shell archive) files. Programs to build shar files have been posted to the net, and are available from the usual archive sites. A description of the package should precede the first shar file (either in the first mailing, or as a separate letter). This description should contain a description of the software package like that contained in the README file (see below). In fact, in many cases this description can simply be a copy of the README file. If you are not familiar with this form of submissions, contact the moderator of comp.sources.reviewed and we will send you some templates to get you started. What should be included in the submission? ------------------------------------------ Each submission should include the following types of files. README: a description of the software package. This description should include: - the purpose and value of the software (give details here) - the types of systems it is intended for (e.g., BSD only, Unix and DOS, etc.) - any dependencies in the system (e.g., must have perl to run) - known limitations of the software - the authors of the software (with e-mail addresses) - the "patchlevel" of the software (see below) - any copying or distribution conditions Makefile: a standard control file for the make utility. Having an "install" target in the Makefile (so users can type "make install"), is often convenient, but many users prefer that they be able to make and test software in the current directory before they install it. It also often a good idea to include a "clean" target to clean out the "core", "*.o", etc. files. Variables that users may wish to change should be clearly identified at the beginning of the Makefile. Also, it is convenient to have the parameters for known systems included in the Makefile, but commented out. e.g., CFLAGS=-DBSD -DUSE_TERMCAP #CFLAGS=-DSYSV -DUSE_TERMINFO Installation (INSTALL): a description of the steps necessary to install the software. This should include a description of any changes a user might wish to make to handle local conditions, and a description of what happens when the user types "make install". Man Page: for Unix sources, you should have one or more documentation files prepared in man page format. If necessary, you may also wish to include separate documentation files. The man page should describe how the software is to be run, what parameters and options are available, and the functions the software provides. Patchlevel.h: you should have some method of determining what version of the software this is. The preferred method is to use a "patchlevel.h" file that contains information about the version level (e.g., #define PATCHLEVEL 1.1), and this information is then used in the source files (e.g., printed in the usage statement). When patches are applied (see below), the "patchlevel.h" file should be patched to reflect the new version number. It is often useful to use some form of a source code control system (e.g., SCCS or RCS) to keep track of the different versions of software. Using such a system, each file in a package can contain the version number information. For large submissions, it is often useful to make subdirectories like "man", "doc", "source", etc. How are patches handled? ------------------------ Patches to published software should to be sent to the usual submission address ("csr@calvin.doc.ca") with the word "patch" some where in the "Subject" line. Patches will be reviewed and distributed as quickly as possible. The preferred form for patches is "diff" format, using the "-c" option to produce context diff files. Patches should be accompanied by a complete description of the changes made to the software, and the reasons behind those changes. The patch must update the version number contained in the "patchlevel.h" file. What are the steps of the peer review process? ---------------------------------------------- A typical sequence of events for the review of sources is: - software is mailed to moderator - moderator acknowledges receipt - moderator briefly checks software against guidelines listed above - moderator sends software to reviewers - reviewers build, install, run, and test the software - reviewers return evaluations to moderator (based on guidelines described an another document) - moderator compiles evaluations and makes final publication decision - if submission is accepted: - moderator discusses evaluations with author - moderator posts sources and evaluations - if submission is not accepted: - moderator sends evaluations to author - moderator may suggest revision and resubmission, or posting in another newsgroup What if the reviewers find problems? ------------------------------------ We are discouraging making repairs to submissions during the review process. Reviewers may contact you for information and clarification, but we do not envision fixes being applied during the course of a review. Once the reviews are completed, you will receive a summary from the moderator, and, if necessary, will have a chance to make repairs to your package. Do authors automatically become reviewers? -------------------------------------------- If you submit a package to CSR, you will be invited to become a reviewer. This means that from time-to-time you may be sent other people's software for evaluation. You may refuse the invitation, but you should realize that this group must have a set of qualified reviewers in order to function. -- Andrew Patrick acting as Comp.Sources.Reviewed Moderator Department of Communications, Ottawa, CANADA csr@calvin.doc.CA