7.2 Building Components

Before you make new baselines in a stream, build the components by using the current baselines plus any work that developers have delivered to the stream since you created the current baselines. If the build succeeds, you can make baselines that select the latest delivered work. Building components involves the following tasks:

Locking the Integration Stream

Before you build components in the integration stream or feature-specific development stream, lock the stream to prevent developers from delivering work. This ensures that you are dealing with a static set of files.

  1. In the Project Explorer, select the stream.

  2. Click File > Properties to display the stream's property sheet.

  3. Click the Lock tab.

  4. Click Locked and then click OK.

Finding Work That Is Ready to Be Delivered

Before you build components, you may need to complete some deliver operations. In most cases, developers complete their deliver operations. However, in a MultiSite configuration in which the target stream is mastered at a different replica than the developer's source stream, the developer cannot complete deliver operations. When ClearCase detects such a stream mastership situation, it makes the deliver operation a remote deliver operation.

In a remote deliver operation, ClearCase starts the deliver operation but leaves it in the posted state. It is up to you, as integrator, to find and complete deliver operations in the posted state. Developers who have deliver operations in the posted state cannot deliver from or rebase their source development streams until you complete or cancel their deliver operations.

PRODUCT NOTE: Rational ClearCase LT does not support ClearCase MultiSite.

To find all deliver operations that are in the posted state:

  1. In the Project Explorer, select the project.

  2. Click Tools > Find Posted Deliveries. If the project contains posted deliveries, the Find Posted Deliveries dialog box appears and lists all streams within the project that contain deliver operations in the posted state. For each posted deliver operation, the dialog box shows the source stream and the target stream.

Completing Remote Deliver Operations

To complete remote deliver operations for a development stream:

  1. Select the development stream from the list in the Find Posted Deliveries dialog box.

  2. Click Deliver. The Deliver dialog box opens. Click Resume to resume the deliver operation. Click Cancel to cancel the deliver operation. See Developing Software for details on completing the deliver operation.

Undoing a Deliver Operation

At any time before developers complete the deliver operation, they can back out of it and undo any changes made; but if they check in their versions to the integration view, they cannot undo the changes easily. When this happens, you may need to remove the checked-in versions by using the cleartool rmver -xhlink command.

NOTE: The rmver command erases part of your organization's development history, and it may have unintended consequences. Therefore, be very conservative in using this command, especially with the -xhlink option. See the rmver reference page in the Command Reference for details.

Note that removing a version does not guarantee that the change is really gone. If a successor version was created or if the version was merged before you removed the version, the change still exists. You may need to check out the file, edit it to remove the change, and check the file back in.

Building and Testing the Components

After you lock the stream and complete any outstanding deliver operations, you are ready to build and test the project's executable files to make sure that the changes delivered by developers since the last baseline do not contain any bugs. For information on performing builds, see Building Software. Because you lock the stream when you build and test in it, we recommend that you use a separate development stream for extensive testing of new baselines. Perform only quick validation tests in the current stream so that it is not locked for an extended period of time. See Testing the Baseline for information about using a development stream for testing new baselines.