Version Control

  1. Almost all class and package names in version 1.0 of IDVI start with "ibook.v10". In the rest of these pages I will leave off this prefix.

  2. All classes are within a single top-level package "ibook" (interactive book).

  3. Top-level classes are accessed through "alias" classes in the package "ibook.release". For example, idvi-generated html files refer to the applet "ibook.release.IDVIOnePageApplet".

  4. Each new release redefines the "alias" classes in the package "ibook.release" to refer to implementation classes in a version-specific package such as "ibook.v10". For example, in the v10 release of IDVI the applet "ibook.release.IDVIOnePageApplet" is a trivial extension of the class "ibook.v10.idvi.DVIOnePageApplet".

    This ensures that all classes which interact with each other are tagged with a version number as part of their class name, so that no mixing of old and new classes occurs, while not requiring the modification of existing html files when a new release is installed.

  5. During development of a new release, "alias" classes are placed in the package "ibook.test" which refer to the new version-specific package. The released and test versions of the software can co-exist in the classpath and within a browser.