Update a Customized Process Template to Access New Features

You must manually update process template files that you have customized so that your existing team projects can access the new features provided with Visual Studio Team Foundation Server 2012. Once you have completed this update, you can upload the customized process template to Team Foundation Server. You can then use the Configure Features wizard to update upgraded team projects to access new features or create team projects that will have access to the new features.

Important

This topic addresses manual updates to make to a process template based on a version 5.0 Microsoft process template or the Scrum 1.0 process template.

For more information about the new features, see What's New in Planning and Tracking.

Note

After your application-tier server is upgraded to Visual Studio Team Foundation Server 2012, you can use the Process Template Manager to access version 6.0 MSF process templates in addition to your existing process templates.

In this topic

  • Tips for performing a manual update

  • Updates to access new features

  • Optional updates

  • Post-upload steps

Note

You can perform some of the procedures described below using Process Editor, a power tool add-in for Visual Studio which you can download and install. Located under the Tools menu, Process Editor provides a graphical user interface for customizing Team Foundation Server process templates. You can use this tool to import and export work item types and modify the contents of the process template. For more information, see the following page on the Microsoft website: Team Foundation Server Power Tools.

Tips for performing a manual update

  • Before you perform the manual update, you might want to review the information that is provided in Working with Process Template Files and Step-by-Step Customization Process.

  • Do not remove a file or a task in order to upload a file unless you know what the file is and that you will have no use for it.

  • To locate the customizations that you have made, you can perform a diff operation on comparable files that exist in the two templates. However, you could receive some false positives because the sequence of element definitions might have changed between two versions.

  • You can search for the dependency element across all plug-in files to learn what tasks depend on other tasks that are being completed. For example, Microsoft Test Manager and Lab Management require the SharedSteps and TestCase work item types, the SharedSteps and TestedBy links types, and categories. See Define Dependencies for Task Groups and Tasks in Plug-in Files.

Updates to access new features

You will copy or add files from the folder of the latest version of process template that you download to the corresponding folder containing your customized process template definitions.

  1. Download the latest version of the Microsoft process template from your upgraded server. See Download the Latest Version of the Process Templates.

  2. Copy the following files to the TypeDefinitions folder: CodeReviewRequest, CodeReviewResponse, FeedbackRequest, and FeedbackResponse.

  3. Copy the following file to the Query folder: Feedback.wiq.

  4. Copy the Process folder and its two process configuration files to the WorkItem Tracking folder.

    Important

    The following types of customization to your work item types may require you to customize the process configuration files:

    • Renamed or removed the work item types assigned to the Requirements Category and Task Category as defined in the latest version of the Categories file for your process template.

    • Renamed states or customized the workflow defined for tasks or work item types defined for the Requirements Category. The state assignments must map to the metastates defined for the common configuration of the process template. Metastates define how planning tools treat each workflow state. At least one workflow state must map to the InProgress and to the Completed metastates as described in Customize the Backlog and Board Pages Using Process Configuration.

    • Changed the field defined in the backlog item used to capture the level of effort, such as Story Points for Agile (Microsoft.VSTS.Scheduling.StoryPoints) and Effort for Scrum (Microsoft.VSTS.Scheduling.Effort). For CMMI v5.0, Original Estimate (Microsoft.VSTS. Scheduling.OriginalEstimate) was used, and for CMMI v6.0 Scheduling Size (Microsoft.VSTS.Scheduling.Size) is used.

    • Changed the field defined in those work item types defined for the Requirements Category, such as Stack Rank (Microsoft.VSTS.Common.StackRank), or for Scrum, Backlog Priority (Microsoft.VSTS.Common.BacklogPriority).

    • Changed the field used to capture the Activity assigned to task items, such as Activity (Microsoft.VSTS.Common.Activity) or Discipline (Microsoft.VSTS.Common.Discipline).

    • Changed the field used to capture Remaining Work(Microsoft.VSTS.Scheduling.RemainingWork).

    To learn more, see Customize the Backlog and Board Pages Using Process Configuration.

  5. Replace the Process Guidance folder, located under Windows SharePoint Services folder, with the contents of the latest folder. These files provide forward links to the latest process guidance content. See Define the Project Portal Plug-in for a Process Template.

  6. Add new categories to the categories file.

  7. Add tasks to the WorkItems plug-in file.

  8. Add team settings to the groups and permissions plug-in file.

  9. Add the version statement to the ProcessTemplate file.

  10. Upload the process template and verify your changes. See Manage process templates for a team project collection.

Add new categories to the categories file

Add this code snippet to the Categories file located in the WorkItem Tracking folder:

<CATEGORY name="Code Review Request Category" refname="Microsoft.CodeReviewRequestCategory">
    <DEFAULTWORKITEMTYPE name="Code Review Request" />
  </CATEGORY>
  <CATEGORY name="Code Review Response Category" refname="Microsoft.CodeReviewResponseCategory">
    <DEFAULTWORKITEMTYPE name="Code Review Response" />
  </CATEGORY>
  <CATEGORY name="Feedback Request Category" refname="Microsoft.FeedbackRequestCategory">
    <DEFAULTWORKITEMTYPE name="Feedback Request" />
  </CATEGORY>
  <CATEGORY name="Feedback Response Category" refname="Microsoft.FeedbackResponseCategory">
    <DEFAULTWORKITEMTYPE name="Feedback Response" />
  </CATEGORY>
  <CATEGORY name="Task Category" refname="Microsoft.TaskCategory">
    <DEFAULTWORKITEMTYPE name="Task" />
  </CATEGORY>
  <CATEGORY name="Hidden Types Category" refname="Microsoft.HiddenCategory">
    <DEFAULTWORKITEMTYPE name="Code Review Request" />
    <WORKITEMTYPE name="Code Review Response" />
    <WORKITEMTYPE name="Feedback Request" />
    <WORKITEMTYPE name="Feedback Response" />
    <WORKITEMTYPE name="Shared Steps" />
  </CATEGORY>

Add tasks to the WorkItems plug-in file

  1. Open the WorkItems plug-in file and add this code snippet to the <WORKITEMTYPES> section:

    <WORKITEMTYPE fileName="WorkItem Tracking\TypeDefinitions\CodeReviewRequest.xml" />
            <WORKITEMTYPE fileName="WorkItem Tracking\TypeDefinitions\CodeReviewResponse.xml" />
            <WORKITEMTYPE fileName="WorkItem Tracking\TypeDefinitions\FeedbackRequest.xml" />
            <WORKITEMTYPE fileName="WorkItem Tracking\TypeDefinitions\FeedbackResponse.xml" />
    
  2. Replace the Permission statement for Builders with this code snippet in the <QUERIES> section:

    <Permission allow="Read" identity="[$$PROJECTNAME$$]\Build Administrators" />
    
  3. Add this code snippet to the <QUERIES> section:

    <Query name="Feedback" fileName="WorkItem Tracking\Queries\Feedback.wiq" />
    
  4. Add this code snippet right as the last task within the <tasks> section:

    <task id="ProcessConfiguration" name="Process Configuration" plugin="Microsoft.ProjectCreationWizard.WorkItemTracking" completionMessage="Process configuration uploaded">
        <dependencies>
          <dependency taskId="WITs" />
          <dependency taskId="Categories" />
        </dependencies>
        <taskXml>
          <PROCESSCONFIGURATION>
            <CommonConfiguration fileName="WorkItem Tracking\Process\CommonConfiguration.xml"/> 
            <AgileConfiguration fileName="WorkItem Tracking\Process\AgileConfiguration.xml"/>
          </PROCESSCONFIGURATION>
        </taskXml>
    </task>
    
  5. Save and close the file.

Add team settings to the groups and permissions file

You can predefine a set of iteration paths using the iterationPath element within teamSettings as shown in the examples below. Also, by adding the default team as a member of the Contributors group, you automate the assignment of Contributor permissions to team members. You can customize these definitions as needed.

  • For Scrum process templates: Add this code snippet as the first <group> within the <groups> section:

    <group name="@defaultTeam">
       <permissions>
          <permission name="GENERIC_READ" class="PROJECT" allow="true" />
       </permissions>
       <members>
          <member name="@creator"/>
       </members>
       <teamSettings areaPath="Area">
          <iterationPaths backlogPath="Iteration">
             <iterationPath path="Release 1\Sprint 1" />
             <iterationPath path="Release 1\Sprint 2" />
             <iterationPath path="Release 1\Sprint 3" />
             <iterationPath path="Release 1\Sprint 4" />
             <iterationPath path="Release 1\Sprint 5" />
             <iterationPath path="Release 1\Sprint 6" />
          </iterationPaths>
       </teamSettings>
    </group>
    
  • For Agile and CMMI process templates: Add this code snippet as the first <group> within the <groups> section:

    <group name="@defaultTeam">
       <permissions>
          <permission name="GENERIC_READ" class="PROJECT" allow="true" />
       </permissions>
       <members>
          <member name="@creator"/>
       </members>
       <teamSettings areaPath="Area">
          <iterationPaths backlogPath="Iteration">
             <iterationPath path="Iteration 1" />
             <iterationPath path="Iteration 2" />
             <iterationPath path="Iteration 3" />
          </iterationPaths>
       </teamSettings>
    </group>
    
  • For all process templates: Add the <members>…<</members> code snippet at the end of the <group> that defines Contributors within the <groups> section:

    <group name="Contributors" description="Members of this group can add, modify, and delete items within the team project.">
       <permissions>
          <permission name="GENERIC_READ" class="PROJECT" allow="true" />
          <permission name="DELETE_TEST_RESULTS" class="PROJECT" allow="true" />
          <permission name="PUBLISH_TEST_RESULTS" class="PROJECT" allow="true" />
          <permission name="VIEW_TEST_RESULTS" class="PROJECT" allow="true" />
          <permission name="GENERIC_READ" class="CSS_NODE" allow="true" />
          <permission name="WORK_ITEM_READ" class="CSS_NODE" allow="true" />
          <permission name="WORK_ITEM_WRITE" class="CSS_NODE" allow="true" />
          <permission name="MANAGE_TEST_PLANS" class="CSS_NODE" allow="true" />
          <permission name="MANAGE_TEST_ENVIRONMENTS" class="PROJECT" allow="true" />
          <permission name="MANAGE_TEST_CONFIGURATIONS" class="PROJECT" allow="true" />
       </permissions>
       <members>
          <member name="@defaultTeam"/>
       </members>
    </group>
    

Add the version statement to the ProcessTemplate plug-in

The Configure Features wizard uses the version statement to determine which process template within a category is the latest version and automatically selects that version. Prior to the upgrade, the version statement wasn't included in the ProcessTemplate plug-in file, so you must add it. You must also make sure that you specify a version number that is higher than the corresponding value assigned to the default process template that was added during the upgrade of Team Foundation Server.

Important

If the version statement is not present, the Configure Features wizard cannot select the process template for updating a team project. Also, if more than one process template has been uploaded to Team Foundation Server that specifies the same highest version number, then none of these process templates can be selected for updating a team project.

  • Open the ProcessTemplate plug-in file. Add the code snippet after the description element. Your choice of code snippet is based on the template category that you are updating:

    Category

    Version statement

    Agile

    <version type="ADCC42AB-9882-485E-A3ED-7678F01F66BC" major="6" minor="20"/>

    CMMI

    <version type="27450541-8E31-4150-9947-DC59F998FC01" major="6" minor="20"/>

    Scrum

    <version type="6B724908-EF14-45CF-84F8-768B5384DA45" major="2" minor="20"/>

Optional updates

The following table summarizes additional updates made to Microsoft process templates from the previous release. Based on your needs, you may want to make updates to your customized process template with the changes listed. For information about how to customize each of these files, see Customize Functional Areas within a Process Template.

Files

Changes

Build.xml

DefaultTemplate.11.xaml

DefaultTemplate.11.1.xaml

UpdateTemplate.xaml

The Build plug-in file has been updated to upload the new default templates defined for the current version, and to assign permissions to additional administrators. You can update your customized process template by replacing your Build folder with the latest version. Permissions defined for project-level Builders are now set for project-level Build Administrators – a change in the role name. Additional permissions are defined for team project collection administrators for the roles of Build Service Group and Build Administrator Group.

Also, the Upgrade template contains minor updates around what gets logged. When you upgrade Team Foundation Build, new build definitions are automatically upgraded to build definitions for the current release by using the upgrade build process template.

Classification.xml

A new property statement has been added to the Classification plug-in file that specifies the name of the process template. The following example is taken from the Scrum 2.0 process template:

<property name="Process Template" value="Microsoft Visual Studio Scrum 2.0 - "Preview 2" />

GroupsAndPermissions.xml

Permissions defined for project-level Builders are now set for project-level Build Administrators – a change in the role name. The new group statement is:

<group name="Build Administrators" description="Members of this group can create, modify and delete build definitions and manage queued and completed builds.">

Lab.xml

LabDefaultTemplate.11.xaml

The Lab plug-in file has been updated to upload the new default template defined for the current version, and to assign permissions to additional administrators. You can update your customized process template by replacing your Lab folder with the latest version.

One new permission, ManageTestMachines, has been added to the tasks to configure the initial security permissions that are assigned to identities for Visual Studio Lab Management.

ReportsTasks.xml (no changes)

Review the Reports folder for changes that you may want to incorporate.

testmanagement.xml (no changes)

Settings for the testconfiguration and testvariable files have been updated to include support for Windows 8 and Internet Explorer 9.

These settings are used by Microsoft Test Manager.

VersionControl.xml

Permissions defined for project-level Builders are now set for project-level Build Administrators – a change in the role name. Configuration of check-in notes has been removed. Also, the three checkin_note statements have been removed in the current version.

Post-upload steps

After you have uploaded the updated process template, you can use the Configure Features wizard to update a team project that was created based on that process template. Choose the Configure Features link that appears on the administration panel for the team project. For more information, see Configure features after a TFS upgrade.

See Also

Concepts

Configure features after a TFS upgrade

Working with Process Template Files

Manage process templates for a team project collection

Customize Process Templates