Project Streams

A Project Stream is a working entity within IKAN ALM. A Level Request is created for a Level linked to a Project Stream. Main development will mostly be done in the Head Project Stream. Maintenance, patches and parallel development can be realized in one or more Branch Project Streams.

When the Global Administrator creates a Project, he or she will also have to define the settings for the Head Project Stream.

The Project Stream submenu option lets you start the following procedures:

The Project Streams Overview screen lets you verify and change the information concerning Project Streams. The following actions are possible:

Creating a Branch Project Stream

You can create a new Branch if you want to

  • start a parallel development

  • create a maintenance version

  • create patches

Create an additional Lifecycle before creating a Branch. See: Creating a Lifecycle

  1. In the Project Administration context, select Project Stream > Create Branch.

    The following screen is displayed:

    ProjAdmin ProjMgt ProjectStream CreateBranch

    At the bottom of the screen, the Project Streams Overview panel displays the currently defined Project Streams for the selected Project.

  2. Fill out the fields in the Create Branch Project Stream panel.

    The following fields are available:

    Project Stream Attributes

    Field Description

    Prefix

    In this field, enter the Build Prefix for the Project Stream. The Build Prefix is used, among other things, for generating unique Build archive file names, and is therefore required.

    Suffix

    For Branch Streams: enter in this field the Build Suffix.

    For Head Streams: this field is not available.

    Status

    In this field, select the status of the new Branch Project Stream from the drop-down list.

    The possible values are:

    • under construction

    • planning

    • development

    • testing

    • stable

    • general available

    • frozen

    • closed

    Description

    In this field, enter a description for the new Branch Project Stream.

    Locked

    Indicate whether or not the Project Stream is locked. Locking a Project Stream means blocking all activity on that Project Stream.

    Hidden

    This field indicates whether or not the Project Stream is hidden.

    By default newly created Project Streams are not hidden. For more information on hiding Project Streams, refer to Hiding/Showing a Project Stream.

    Tag-Based

    Indicate whether or not the Project Stream is tag-based.

    If the Project Stream is tag-based, it is possible to retrieve sources labeled with a user-defined tag in the head or branch stream for a build action on the Build Level.

    Warning: This functionality requires strict adherence to the internal tagging conventions, as by manual tagging artifacts are no longer under the exclusive control of IKAN ALM. Tags may be defined before a build, but should remain consistent for the affected artifacts for their full Lifecycle.

    If tag-based builds are activated for the Project Stream, the Tag Template has no effect any more as the VCR Tag will be defined by the User during the Level Request creation process.

    Furthermore, when the IKAN ALM Scheduler notices that a Build Level is connected to a tag-based Project Stream, it will take no action since it has no reference to check for changes in the versioning system. Triggered builds (for example, after the creation of a tag in the VCR) can be activated via a hook script in the versioning system which will call the IKAN ALM command line to create a Level Request on the Build Level. Therefore, it is recommended to disconnect any Schedule from the Build Level of a tag-based Project Stream. If that is not possible (for example, because the Level is also used in another Project Stream), make sure that Accept Forced Build is set to Yes.

    If the Project Stream is Package-based, this field is unchangeably set to No, since Tag-Based Builds make no sense in a Package-based project: a Package created in IKAN ALM may be compared with a Tag created in the VCR: it contains one or more selected file revisions out of the Head (trunk) or Branch stream from the VCR.

    Build Type

    Select the Build type from the drop-down list.

    The following types are possible:

    • Full Build

    • Partial Build: only the sources that were modified since the last Build will be rebuilt.

    • Production-based Partial Build: only the sources that are different from the version on the Production Level will be rebuilt

    • Tag-based Partial Build: only the sources that are different from the selected Partial Build VCR Tag will be rebuilt.

      This option is absent when creating a Head or Branch Project Stream. It is only available when a successful Build Level Request exists.

    If the Project Stream is Package-based, this field is fixed to Full Build.

    Partial Build VCR Tag

    Select a VCR Tag from the drop-down list containing the Successful Build Level Requests for this Project Stream.

    This field is mandatory if the option Tag-based Partial Build has been selected asBuild Type. Only sources that are different from the selected VCR Tag will berebuilt.

    This option is absent when creating a Head or Branch Project Stream. It is onlyavailable when a successful Build Level Request exists.

    Highest Build Number

    In this field, enter the highest Build number for this Project Stream.

    This number is incremented automatically each time a Level Request is created.

    This number does not necessarily match the number of successful Builds. Refer to the Build section of the VCR Tag to view the number of successful Builds.

    If the Project Stream is Package-based, this field is not available.

    Partial Build VCR Tag

    Select a VCR Tag from the drop-down list of Successful Build Level Requests for this Project Stream.

    This field is mandatory if the option Tag-based Partial Build has been selected as Build Type. Only sources that are different from the selected VCR Tag will be rebuilt.

    This option is absent when creating a Head or Branch Project Stream. It is only available when a successful Build Level Request exists.

    Accept Forced Build

    Indicate whether or not the Project Stream accepts Forced Builds, i.e., Builds on the Build Level which overrule the Schedule connected to the Level.

    If the Project Stream is Package-based, this field is unchangeably set to No.

    A Force Build make no sense since it is not possible to set a Schedule on a Build Level in a Package-based Project.

    Tag Template

    In this field, enter the Template that should be used for tagging Builds generated in this Project Stream. The Tags will be used to display these Builds in the VCR.

    A template can be a combination of constants and variables.

    The following constants are allowed:

    • letters

    • numbers

    • underscores

    • hyphens

    • Some other characters (such as , ; $ @) may be illegal, depending on the VCR type.

    The following variables are available. They all have the format ${name}:

    • ${prefix}: This variable returns the Build Prefix defined for the Project Stream.

    • ${suffix}: This variable returns the Build Suffix defined for the Branch Stream. (If this variable is included in a Template for a Head Stream, it is ignored.)

    • ${streamType}: This variable returns the Type indication for a Stream: H for Head Stream or B for Branch Stream.

    • ${buildNumber}: This variable returns the number of the Build, so that the Build can be matched with its Tag.

    • ${projectName}: This variable returns the name of the IKAN ALM Project.

    • ${vcrProjectName}: This variable returns the VCR name of the Project.

    • $\{dateTime(dateformat)}: This variable returns the timestamp of the Building action in the indicated format. yyyy-MM-dd is a valid format. For other valid formats, refer to http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

    • ${packageName}: This variable returns the name of the package in a Package-based Project Stream.

    Lifecycle

    Select the Lifecycle to be associated with this Project Stream.

    VCR Branch ID

    For Branch Streams, enter in this field the VCR Branch ID. The same ID must be available in the VCR linked to the Project.

    For Head Streams belonging to a Team Foundation VC Project, enter the name of the Main Branch ID.

    For Head Streams belonging to other Project types, this field is not available.

  3. Click Create to create the new Project Stream.

    You can also click:

    • Check Branch ID in the VCR to check if the Branch ID is available in the VCR linked to the Project.

    • Reset to clear the fields and restore the initial values.

  4. Additional Information

    Underneath the Create Branch Project Stream panel, you will find an overview of the existing Project Streams in the Project.

    For more information, refer to The Project Streams Overview Screen.

Project Streams Overview

The Project Streams Overview screen lets you verify and change the information concerning Project Streams. The following actions are possible:

The Project Streams Overview Screen

  1. In the Project Administration context, select Project Stream > Overview.

    The Project Streams Overview screen is displayed:

    ProjAdmin ProjMgt ProjectStream Overview

    At the bottom of the screen, the Project Streams Overview panel displays the currently defined Project Streams for the selected Project.

    For a detailed description of the fields and the links, refer to Creating a Branch Project Stream.

  2. Depending on your access rights, the following links may be available:

    edit

    Edit

    This option is available to IKAN ALM Users with User or Project Administrator Access Rights. It allows viewing or editing the selected Project Stream definition.

    delete

    Delete

    This option is available to IKAN ALM Users with Project Administrator Access Rights. It allows deleting the selected Project Stream. Deleting a Project Stream

    lock / unlock

    Lock / Unlock

    This option is available to IKAN ALM Users with Project Administrator Access Rights. It allows locking or unlocking the selected Project Stream. Locking/Unlocking a Project Stream

    hide / show

    Hide / Show

    This option is available to IKAN ALM Users with Project Administrator Access Rights. It allows hiding or showing the selected Project Stream.

    Hiding/Showing a Project Stream

    history

    History

    This option is available to all IKAN ALM Users with Project User Access Rights. It allows to display the History of all create, update and delete operations performed on a Project Stream.

    Viewing the Project Stream History.

Viewing Project Stream Settings

  1. In the Project Administration context, select Project Stream > Overview.

  2. Click the edit Edit link in front of the required Project Stream.

    The Edit Project Stream screen is displayed:

    ProjAdmin ProjectStreams View
  3. Verify the settings.

    For a description of the fields, refer to Creating a Branch Project Stream.

  4. Click Back to return to the Project Streams Overview screen.

Editing Project Stream Settings

  1. In the Project Administration context, select Project Stream > Overview.

  2. Click the edit Edit link in front of the required Project Stream.

    The Edit Project Stream screen is displayed:

    ProjAdmin ProjectStreams View
  3. Click the Edit button on the Project Stream Info panel to edit the fields.

    ProjAdmin ProjMgt ProjectStream Edit EditProjectStream

    For a description of the fields, refer to Creating a Branch Project Stream.

  4. Click Save to save your changes.

    You can also click:

    • Refresh to retrieve the settings from the database.

    • Cancel to return to the previous screen without saving the changes

Deleting a Project Stream

  1. In the Project Administration context, select Project Stream > Overview.

  2. Click the delete Delete link on the Projects Streams Overview panel.

    The following screen is displayed:

    ProjAdmin ProjMgt ProjectStream Delete
  3. Verify if you really want to irrevocably delete the Project Stream.

  4. Click Delete to confirm the deletion.

    You can also click Back to return to the previous screen without deleting the Project.

Locking/Unlocking a Project Stream

Locking a Project Stream means blocking all activity on that Project Stream, such as manual or scheduled Level Requests.

You may want to lock a Project Stream, if configuration parameters have changed, or if administrative actions are required on the VCR. Unlocking a Project Stream means reallowing these actions on a Project Stream

  1. In the Project Administration context, select Project Stream > Overview.

  2. Click the lock Lock or unlock Unlock link on the Project Streams Overview panel.

Hiding/Showing a Project Stream

Specifying that a Project Stream is “hidden”, adds an extra search attribute to that Project Stream. This can be very useful to leave out older Project Streams on the Overview panels

  1. In the Project Administration context, select Project Stream > Overview.

  2. Click the hide Hide link in front of the Project Stream you want to hide.

    The Project Stream will be hidden and disappears from the Project Streams Overview.

  3. To “unhide” a hidden Project Stream, set the Hidden criterion to Yes or All and click the show Show link.

    The Project Stream will become visible and the icon will be changed appropriately.

    A criterion has been added to the Search panels to specify whether or not you want to display hidden Projects. Click the Show advanced options link to display this criterion.

Viewing the Project Stream History.

  1. In the Project Administration context, select Project Stream > Overview.

  2. Click the history History link on the Project Streams Overview panel to display the Project Stream History View.

    For more detailed information concerning this History View, refer to the section History and Event Logging.

    Click Back to return to the previous screen.

Project Stream Dependencies

Project Stream dependencies allow the reuse of common Projects (e.g., libraries) by other Projects. When the code in the Parent Project Stream is built, the process will use the source code or the build result from the Child Project Stream(s), which is stored in the Source Environment in a new folder having the same name as the name of the Project in the VCR.

  1. In the Project Administration context, select Project Stream > Overview.

  2. On the Project Streams Overview, click the edit Edit link in front of the required Project Stream.

    The Edit Project Stream screen is displayed, containing the Project Stream Info and the Dependencies panels.

    ProjAdmin ProjectStream Dependencies

    The Dependencies panel contains:

    • the overview of the Project Streams whose results or sources the current Project Stream depends on,

    • the overview of the Project Streams using the results or sources of the current Project Stream, and

    • the Add Dependency link. Adding a Project Stream Dependency

    For each of the Project Streams on the Overviews, the following information is available:

Field Description

Project

This field displays the name of the Project to which the Project Stream belongs.

Type

This field displays the Project Stream Type. There are two possibilities:

  • Head

  • Branch

Prefix

This field contains the Build Prefix defined for this Project Stream.

Suffix

This field contains the Build Suffix for this Branch. It is empty for the Head Stream.

This suffix will be attached to the Build Prefix for easy identification of the Project Stream.

Description

This field contains the user-defined description of the Project Stream.

VCR Branch ID

This field contains the VCR Branch ID for this Project Stream.

This field remains empty for Head Project Streams.

Code Retrieval

This field indicates how the Child Project Stream code will be retrieved.

  • Latest tagged code from the VCR

  • Specific tagged code from the VCR: If this option has been selected, the selected tag is displayed in the VCR Tag field.

  • Latest tagged build from the Build Archive

  • Specific build from the Build Archive: If this option has been selected, the selected tag is displayed in the VCR Tag field.

  • Latest Production code from the VCR

  • Latest Production Build from the Build Archive

VCR Tag

This field contains the Project Stream VCR Tag used to retrieve the code. Refer to the Code Retrieval field explanation above.

  1. Use the links on the Project Stream XXX depends on the results or sources of the following Project Stream(s) Panel, if required.

    The following links may be available:

    There are no links available on the The result or sources of Project Stream XXX are used by the following Project Stream(s) panel. Switch to the Project Stream Dependency screen of these Parent Project Streams to edit their Dependency settings.

  2. Click Back to return to the previous screen.

Adding a Project Stream Dependency

  1. In the Project Administration context, select Project Stream > Overview.

  2. On the Project Streams Overview, click the edit Edit link in front of the required Project Stream.

  3. Click the dependency Add Dependency link on the Dependencies panel.

    The following pop-up screen is displayed:

    ProjAdmin ProjectStream AddDependency Step1
  4. Define search criteria on the Search Project Stream panel in case you do not immediately find the Project Stream you want to add.

    The list of elements displayed in the tree at the right, will be limited to the Project Streams matching these search criteria.

    Click the Reset button to clear the Search fields.

  5. Expand the tree for the corresponding Project using the ExpandProjectStream icon to display its Project Streams. Select the Project Stream you want to add and click Next.

    If a Project Stream can not be added, an error message will be displayed.

  6. Specify the Build results or sources to be used.

    ProjAdmin ProjectStream AddDependency Step2
    1. Select the Code Retrieval mode from the drop-down list.

      From the drop-down list, select the required code retrieval type. The following options are available:

      • Latest tagged code from the VCR

        Select this option, if you want to use the source code of the last successful Build of the Child Branch to build the code of the Parent Project.

      • Specific tagged code from the VCR

        Select this option, if you want to use the source code of the Child Branch tagged with the VCR tag selected in the VCR Tag field below to build the code of the Parent Project. The VCR Tag field is required.

      • Latest tagged build from the Build Archive

        Select this option, if you want to use the Build result of the last successful Build of the Child Branch to build the code of the Parent Project. The VCR Tag field must remain empty.

      • Specific build from the build archive

        Select this option, if you want to use the Build result of the Build of the Child Branch with the selected VCR Tag to build the code of the Parent Project. The VCR Tag field is required.

      • Latest Production code from the VCR

        Select this option, if you want to use the source code that was tagged with the VCR tag of the Build that is currently Active on the last Level (usually a Production Level) of the Lifecycle of the Child Project Stream to build the code of the Parent Project.

      • Latest Production Build from the Build Archive

        Select this option, if you want to use the Build result of the Build that is currently Active on the LAST Level of the Lifecycle of the Child Project Stream to build the code of the Parent Project.

    2. Select the VCR Tag from the drop-down list.

      From the drop-down list, select the required VCR Tag.

      The VCR Tag is only relevant if the Code Retrieval field is set to Specific tagged code from the VCR or Specific build from the Build Archive.

      Note: This option can only be used if a Build already exists as otherwise no VCR tag is available yet.

  7. Click Create to create the Project Stream Dependency.

    You can also click:

    • Cancel to clear the fields and restore the initial values.

    • Previous to return to the previous screen without saving the changes.

Editing a Project Stream Dependency

  1. In the Project Administration context, select Project Stream > Overview.

  2. On the Project Streams Overview, click the edit Edit link in front of the required Project Stream.

  3. Click the edit Edit link in front of the required Dependency.

    The Update Project Stream Dependency pop-up screen is displayed:

    ProjAdmin ProjectStream UpdateDependency
  4. Edit the Code Retrieval mode and VCR Tag, if required.

    For a description of these fields, refer to the section Adding a Project Stream Dependency.

  5. Click Save to save your modifications.

    You can also click:

    • Refresh to retrieve the settings from the database.

    • Cancel to return to the previous screen without saving the changes.

Deleting a Project Stream Dependency

  1. In the Project Administration context, select Project Stream > Overview.

  2. On the Project Streams Overview, click the edit Edit link in front of the required Project Stream.

  3. Click the remove Remove link in front of the required Dependency.

    A confirmation message appears to remove the Dependency. Click Yes if you want to remove the dependency or No if you want to cancel the action. When clicking Yes, the Project Stream will be immediately removed from the list.