About streams
A stream is a long-lived DevOps Code ClearCase® object. It is a member of a single UCM project and is a mechanism for creating and recording configurations. A stream identifies the exact set of versions currently available for you to view, modify, or build. To create new versions of elements in a component, you use a view; to keep track of the versions that you create, you use a stream.
UCM uses baselines and activities to describe a stream configuration. When you create a stream, its original configuration is the same as a baseline (that is, it contains a single version of each element in a component). When you modify a stream configuration, you assign the modifications to one or more activities. Hence, a stream configuration is a given baseline plus one or more activities.
Your view accesses versions of elements provided by a stream. The view that you use is said to be attached to the stream. Your view for your private work area is called a development view and the related stream is called a development stream.
A stream configuration
The following actions modify the configuration of a stream:
- Checking in versions from an associated view. (A stream might be associated with many views.)
- Rebasing, which replaces the baseline in the stream's configuration with a more recent one.
- Delivering, which changes the configuration of the target stream by adding the activities that were previously available only to the contributing development stream.
- Delivering baselines, which is usually performed only by a project integrator.
A multiple-stream project includes the following kinds of streams:
- Integration stream
- Development streams
A single-stream project does not allow development streams; your view is attached to the integration stream.
The integration stream
Projects always include a single integration stream, which is the project's main shared work area. In a multiple-stream project, many integration views can be attached to the project integration stream.
The project integration stream records the project baselines and you can use it to access to all versions of the project shared elements. It collects all the work that all team members deliver from their development streams.
In a single-stream project, there are no development streams, so many development views are attached to the integration stream. When you check in versions from your view, you modify the configuration of the integration stream. The latest versions in the stream are available to all project members.
Development streams
Typically, each multiple-stream project includes many development streams, one for each developer on the project.
All development streams start from a baseline. As a private work area, your development stream evolves separately from other development streams as you add activities.
Feature-specific development streams
In the base UCM process, the integration stream is the only shared work area for the project. However, a multiple-stream project might have additional shared work areas for developers who work together on specific parts of the project. Using the UCM development stream hierarchy feature, the project can have multiple shared work areas.
A project manager can set up a stream hierarchy in which multiple development streams can have child streams. Each parent development stream supports a small team of developers which develops a specific feature. The parent development stream serves as the shared work area for the feature development. For more information about stream hierarchies, see the DevOps Code ClearCase Guide to Managing Software Projects.
When you join the project, you can create your development stream under a parent stream other than the integration stream (that is, under a feature-specific development stream).