teapot-trepo - TEApot Transparent Repository Structure
TABLE OF CONTENTS
DESCRIPTION
Base directory
Location details
Zip archives
Packages, Tcl Modules
Applications, Tcl Modules
Summary
BUGS, IDEAS, FEEDBACK
SEE ALSO
KEYWORDS
COPYRIGHT
This document specifies the directory structure used by transparent repositories (i.e. installation repositories) to store entities.
Assuming that the main directory of the repository is "FOO/" the stored entities are first sorted by their entity type, then their architecture, and at last according to their storage format (Tcl Module, vs. Zip archive). This means that the base path for an entity X is:
The first two, entity type and architecture, are pulled out of the meta data contained in the archive, whereas the last is determined by the file type and translated into the path segment per the list in the next paragraph
In the following sections we will write "BASE/" as a shorthand for this directory.
Examples:
Note that while profiles could principally be stored in a transparent repository this is forbidden, and the teacup client prevents it from happening.
Now that the base directory for an entity is known the exact location inside of the base directory can be fully specified. This continues to be dependent on the entity type and storage format, with further dependencies on entity name, version, and its dependencies.
For all entities X coming in a zip archive a directory D is created under the base directory and the zip archive is expanded into this directory. The name of this directory D is of the form NAME-VERSION, using name and version of the entity, as per its TEAPOT meta data. Examples:
For packages coming in as Tcl Modules the directory structure under the base directory is as specified by TIP 189, i.e.
"BASE/tcl8/8.1/" "BASE/tcl8/8.2/" "BASE/tcl8/8.3/" "BASE/tcl8/8.4/" "BASE/tcl8/8.4/" "BASE/tcl8/8.5/" ... |
and with the file name the name and version of the package, also encoded as per TIP 189, and extension ".tm". The proper subdirectory depends on the minimal version of Tcl the package depends on, information which is pulled out of the package's meta data, i.e. the package's dependencies.
Example:
For applications coming in as Tcl Modules the directory structure under the base directory is simplified, i.e. there are no subdirectories to sort the applications by the version of Tcl they depend on. The encoding of the application name and version into a file name is however also done by the rules of TIP 189.
Example:
Pulling everything together the structure of a transparent repository is
FOO/
package/ARCHITECTURE/ Packages
lib/NAME-VERSION/ Zip archive, expanded
teapot/tcl8/8.y/PKG.tm Tcl Module, TIP 189
application/ARCHITECTURE/ Applications
lib/NAME-VERSION/ Zip archive, expanded
teapot/APP.tm Tcl Module, TIP 189
|
This document will undoubtedly contain bugs and other problems. Please report such at the ActiveState ActiveTcl Bug Tracker. The relevant component is teapot. Please also report any ideas for enhancements you may have for either application and/or documentation.
TEAPOT, package management, repository, transparent
Copyright © 2007 ActiveState Software Inc.