Do not allow deliver to proceed with checkouts in the selected activities (SELACT)

This policy (SELACT) can prohibit delivering activities if the activities have checkouts or depend on activities that have checkouts. If no checkouts are present in any activity in the stream, a deliver operation proceeds without checking this policy. Use this policy or the DEVSTR policy to control deliver operations in which checkouts are present. The policy can be enabled and disabled for all streams in the project or set to per-stream, for interproject and intraproject deliver operations.

If this policy is set to enabled, it overrides the setting of the DEVSTR policy. The following policy choices are available:

DEVSTR SELACT Result
Disabled Disabled Allow a delivery with checkouts

This combination allows a deliver operation with checkouts. Except for activities that have checkouts but have never had a version checked in, activities in the stream appear in the Deliver Preview list as available to be delivered. The GUI presents warnings about checkouts in the activities being delivered.

Disabled or enabled Enabled Allow delivery of activities with no checkouts

This combination prevents delivery of activities with checkouts but allows delivery of activities that have no checkouts or do not depend on activities that have checkouts. Developers can deliver work to the target stream while some of their files remain checked out in the development stream. If none of the checkouts is in a selected activity, the delivery can proceed.

In the graphic user interface (GUI), the Deliver Preview window displays a list of activities and selects those activities that are eligible to be delivered. Eligible activities are those without checkouts if they are complete. All the selected activities may be delivered or the user can deselect individual activities from the selected set so that they are not delivered. Activities that are not eligible to be delivered appear as unavailable items in the Deliver Preview list.

The command line interface (CLI) lists such unavailable activities in error messages.

Using this combination of settings gives flexibility to manipulate selected activities in a stream in which file independence separates the changes. However, using this choice introduces higher risk and increases the responsibility of the developer for testing changes in the integration stream.

Enabled Disabled Do not allow a delivery if there are any checkouts

This combination requires developers to check in their files before delivering work. No checkouts are allowed in the stream, whether the full stream is being delivered or selected activities are being delivered. The purpose of this requirement is to prevent the following sequence of events:

  1. A developer completes work on an activity, but forgets to check in the files associated with it.
  2. The developer works on other activities.
  3. Having completed several activities, the developer delivers them to the target stream. Because the files associated with the first activity are still checked out, they are not included in the deliver operation. The developer delivers older versions.

    This allows the delivery of code that interacts with checked-out versions that are not being delivered and may never be delivered.

If you use this combination of settings, consider also enabling the Require development stream to be based on the project's recommended baseline(s) prior to delivery (REQREC) policy.