XEROX LISPUSERS' RULES 2 4 1 LISPUSERS' RULES 1 4 This document describes the rules and procedures for Interlisp "LispUsers" packages. This document is mainly for LispUsers package writers, but users should also understand the rules. DEVELOPING LISPUSERS PACKAGE A LispUsers package is a useful program made available to the general Interlisp programming community. Neither the author nor the custodian of the LispUsers directory imputes any warranty of suitability or responsibility for errors. LispUsers packages should try to be easily distinguished from released library packages. In particular, this means that packages may not have the same name as a Library package and should be visibly different. LispUsers packages derived from released software should be announced to the public only after communicating with the organization responsible for that released software. Testing is important. If you make significant changes to a LispUsers package, enlist your friends as alpha testers. Avoid having to rerelease a package within hours of its announcement because of fatal bugs. A LispUsers package is not shoddy software; it is software made available outside the regular release channels. Try not to flood your user community with a constant flow of new versions (or messages) so your messages can be appreciated rather than discarded without reading. If your package is undergoing continual changes, adopt a release strategy of regularly spaced, well tested releases. Your users will thank you. LISPUSERS PACKAGE OWNERSHIP A package stored on the directory remains the "property" of the submitter. Others may not make changes, except for their own private use, without negotiating with the owner (who may already be making similar or incompatible changes). In general, changing a package on the directory implies a willing transfer of ownership. As the owner of a package, you are not required to fix bugs, but if not, you must be willing to transfer ownership (permanently) to someone who volunteers to fix them. Ownership may pass back and forth among several people as long as they agree. Like all software developed here, LispUsers packages are officially the property of Xerox. You should run with the COPYRIGHT option in set to produce an appropriate Xerox copyright in the source. A LispUsers package may become so useful that it becomes part of a standard Interlisp-D release and is thereafter supported. Ownership then passes to the product organization. ANNOUNCING LISPUSERS PACKAGES When a new or updated package is stored, a message should be sent to the LispUsers^.PA distribution list if you are an internal Xerox user. Please, don't send questions about LispUsers packages to LispUsers^.PA, only announcements. Anyone with a problem locating the author of the package or needing assistance should try contacting LispSupport.PA first ÿÿï%ÿ LispSupport tries to respond within 24 hours to any request for information. There is another distribution list, LispFolklore^.X, for interchange of messages about folklore, neat features people have recently discovered, etc. if you want a WIDE distribution, want to poll people for opinions about new features, etc. If you are not an internal user, you should submit your new package to Xerox either through e-mail or on a floppy. External users should make sure that they include all relevant information, such as documentation containing an e-mail or US mail address where he/she can be reached. External users are also held responsible for the support of their packages. STORING FILES ON LISPUSERS As with released software, it is important to store not just the resulting product, but all the files needed to build and maintain a lisp users package: 1. the runnable .DCOM 2. documentation describing it, following the set formatting rules (see below) 3. files used to build it 4. data files The official repository for LispUsers packages is the directory {ERIS}. There is a subdirectory for each release, e.g. Intermezzo>, Koto>. When a release gets "shipped" to external sites, the files on releasename> will get moved to releasename>LispUsers>. Thus, releasename> should only contain files "newer than" the last release. Packages by external users will also be put onto these directories. This means there's some duplication, since if you want to release a package that is good for more than one release, you have to make multiple copies, and, whenever a new release gets shipped, copied again. Users are responsible for assuring that their packages get moved if they want them rereleased. If no notice is given about old packages, they are assumed to be obsolete. This procedure provides for some positive mechanism for verifying that packages are still "alive". DOCUMENTATION Documentation, essential to any package being used effectively, should be put on the directory, too. No packages will be released without documentation. Documentation can be as simple as a paragraph describing what the package does and how to use it, or it can be as extensive as a dozen-page user manual. All packages should have a file with a .TEDIT extension, formatted according to the rules outlined in the file DocumentationTemplate.TEdit. This is a rather long explanation for those who are not familiar with TEdit formatting. For an easier version, look for the file EasyTemplate.TEdit. Both of these files are relased on the floppies as of the Koto release, and all users, external users included, should follow these rules. If the documentation is large and formatting time consuming, you can also produce a .press or .interpress file, along with submitting a .TEdit file. (Be sure to update the .press/.interpress if you update the documentation!) Documentation should include the full electronic mail address of the submitter. COMPATIBILITY WITH LISPSUSERS Any file on the directory should be compilable in a "vanilla" environment. The file itself should load in any auxiliary packages under a suitable (DECLARE: EVAL@COMPILE -- ) when necessary. A directory might look like: Koto>BIGFOOT BIGFOOT.DCOM BIGFOOT.TEDIT Do not announce LispUsers packages stored on your own or some other directory to the general public (i.e. LispFolklore^.x or LispUsers^.PA). If your package is worthy of being announced to and used by people you have never met, it deserves to be treated seriously. Get your act together and get it onto the directory, either by yourself if you are internal, or by contacting Xerox personnel if you are not. Any internal user may store a package by connecting to the directory; no password is required. LispSupport reserves the right to "delver" the LispUsers directory to one version as space is needed. Thanks for your cooperation. (LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC ) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC ) STARTINGPAGE# NIL) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC ) STARTINGPAGE# NIL) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL)))))(È (ŠŠ8(ŠŠ8DÈÈ PAGEHEADING RUNNINGHEAD(MODERN MODERN MODERN MODERN MODERNLOGO?1(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8))  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN ºêC5]÷űcAf™RÎÛ>Ê¥Ò]zº