racket/collects/handin-server/scribblings/updater.scrbl
Eli Barzilay 36ed847081 typo in DFlag
svn: r16178
2009-09-30 03:50:58 +00:00

35 lines
1.8 KiB
Racket

#lang scribble/doc
@(require "common.ss")
@title{Auto-Updater}
The handin-client has code that can be used for automatic updating of
clients. This can be useful for courses where you distribute some
additional functionality (collections, teachpacks, language-levels
etc), and this functionality can change (or expected to change, for
example, distributing per-homework teachpacks).
To enable this, uncomment the relevant part of the @filepath{info.ss}
file in the client code. It has the following three keys:
@indexed-scheme[enable-auto-update] that turns this facility on, and
@indexed-scheme[version-filename] and
@indexed-scheme[package-filename] which are the expected file names of
the version file and the @filepath{.plt} file relative to the course
web address (the value of the @scheme[web-address] key). Also,
include in your client collection a @filepath{version} file that
contains a single number that is its version. Use a big integer that
holds the time of this collection in a @tt{YYYYMMDDHHMM} format.
When students install the client, every time DrScheme starts, it will
automatically check the version from the web page (as specified by the
@scheme[web-address] and @scheme[version-filename] keys), and if that
contains a bigger number, it will offer the students to download and
install the new version. So, every time you want to distribute a new
version, you build a new @filepath{.plt} file that contains a new
version file, then copy these version and @filepath{.plt} files to
your web page, and students will be notified automatically. Note: to
get this to work, you need to create your @filepath{.plt} file using
mzc's @DFlag{replace} flag, so it will be possible to overwrite
existing files. (Also note that there is no way to delete files when
a new @filepath{.plt} is installed.)