SHAPE_RELEAS(1) | General Commands Manual | SHAPE_RELEAS(1) |
shape_releas - shapeTools RMS construction of releases and prereleases
shape prerelease
shape release
shape plprerelease
shape plrelease
shape extractrelease [RELEASENAME=<releaseId>] [(PARTIAL)RELEASEBASE=<path>]
The heart of the shapeTools Release Management System is its mechanism for creating prereleases and releases of the managed software system. These functions can be invoked from any node of the system source repository and from any private workspace. Hence, each node system can be (pre)released independently. Constructing a (pre)release of a non-leaf node (a node containing no subsystems) requires all subsystems to be (pre)released beforehand and incorporates the existing (pre)releases in the new (pre)release.
Prereleases are part of the systematic preparation of a release. They give a glance on how a release will look like in the current development state. They should be used for internal publication and integration testing. When a prerelease has proved to be stable enough to be released to the outside world, it should be declared as new system release. This mechanism allows an arbitrary number of release test cycles without prematurely using the anticipated release number.
The general algorithm of the shape_RMS release functions is the following.
Shape prerelease saves the current state of development. According to the algorithm described above, all unsaved node system components are saved and the most recent version of each component is included in the new prerelease. A prerelease additionally invokes the most recent prerelease or release (whichever is the newest) of each subsystem. All component versions going into the prerelease may further be identified by the automatically generated prerelease name, having the form
<system_name>-<generation>.<revision>pre<prerelease_number> (e.g. shapeTools-1.3pre5).
The prerelease serial number is maintained automatically. It starts with 1. All prerelease component versions are set to the state proposed. Prereleases of the whole system (the prerelease action was invoked from the top node) cause all component versions be set to state accessed. A copy of the prerelease is extracted from the source repository and established installed in either the release area of the partial release area, depending on whether the prerelease comprises the whole system of or just a part.
Shape release declares a previously constructed prerelease as new release. The most recent prerelease of the current node is taken as basis. If the node contains subsystems, shape release requires the most recent release of each subsystem to be included. If any subsystem has a prerelease more recent than it's last release, shape gives a warning and asks for confirmation to proceed. Due to technical reasons, it does this for each component. Don't get confused when you have to confirm multiple times. The new release gets a name of the form
<system_name>-<generation>.<revision> (e.g. shapeTools-1.3).
The generation and revision number are derived from the system's automatically maintained release identification file. With each release, a new version of this file is created. Declaring a new generation for the release file (see Save(1)) increases the system generation number. All component versions of the release are set to state published, except when a releases of the whole system is constructed (shape release from the system tree top node). In this case, the state of all component versions is set to frozen. Like prereleases, a copy of the release is extracted from the source repository and written to one of the release area or the partial release area.
Shape plprerelease and shape plrelease (shape patchlevel(pre)release) are basically the same as prerelease and release. The only difference is the form of the identification string. Patchlevel prereleases are named
<system_name>-<gen>.<rev>pl<patchlevel>pre<prerel_num> (e.g. shapeTools-1.3pl5pre2)
and patchlevel releases
<system_name>-<gen>.<rev>pl<patchlevel> (e.g. shapeTools-1.3pl5).
The idea of patchlevel releases is to construct releases that are not to be shipped completely but rather as a patch to an existing release. Of course, real releases may also be shipped as patches, so this is rather a naming convention.
Shape extractrelease extracts a copy of a certain release or prerelease from the project's central source repository and installs it in the release area or the partial release area (depending on whether it is a (pre)release of the whole system or just a part of the system). When called without further settings, it installs the most recent (pre)releases. The installed copy represents a source distribution of the system or system part. It is totally independent of the development environment.
An explicit release identification may be given to shape extractrelease by setting RELEASENAME=<release_identification> on the command line. Setting one of the macros RELEASEBASE or PARTIALRELEASEBASE on the command line redefines the path to the base directory of the release tree. (Pre)releases of the whole system are copied to RELEASEBASE, all others to PARTIALRELEASEBASE. Check your Shapefile for the default settings of these two macros. Subdirectories will be automatically created there as needed.
Shapefile
0.0.0 |