Resource Revisions and Project Versions
In DigitalSuite, a project organizes all resources related to an application. The projects as well as most of the resources are versionable. Versions of resources are called revisions.
All types of resources are versionable, except for the following:
- Non-versioned files. In contrast to versioned files which hold code or data for the application, these files can, for example, be uploaded via a web interface to a running process request, downloaded from a web service, or created by end users during process execution.
Each time a versionable resource of a project is saved, a revision of the resource is created.
The number of resource revisions is limited. DigitalSuite stores and keeps revisions of each resource according to the following criteria:
- Any revision that is included in a project version (see below).
- Any tagged revision. A tagged revision is a revision explicitly marked for any reason whatsoever.
- The latest 50 revisions that are neither tagged nor included in a project version.
Versions of a project can be created to support the different stages in the lifecycle of an application. A version 'freezes' a specific state of the project, which can be managed, deployed, or rolled back.
A project version is created explicitly by a user. It consists of a specific set of the project's resources that is saved at a given point in time. In contrast to resource revisions, the number of project versions is unlimited.
When creating a version of a project, the user can select:
- The resources to be included: A project version does not necessarily include all resources that belong to the project. For testing purposes, for example, resources might be included that are not required for a version in production.
- The revisions of versionable resources to be included: By default, the latest revision of each resource is used. However, the user can select a different revision of each individual resource. Non-versionable resources like collections are used in their current state by all project versions.
- The versions of subprojects to be included: In a project hierarchy, versioning must be performed bottom up. Each subproject must be versioned before the main project can be versioned.