Upgrade your 2012 team project from RTM to Update 2

Upgrade your 2012 team project from RTM to Update 2

Rate This
  • Comments 34

In our effort to bring continuous improvements to the product, we have made improvements to the stock process templates in VS Update 2. If you have an account on our hosted service or when you create a new team project, your team projects are already updated with these changes. However if you have an on premises installation of TFS, the existing team projects are not updated automatically. This blog post explains the steps to add the same improvements between VS 2012 RTM and VS 2012 Update 2 to your existing team projects.

The last section of this post explains which of these changes apply when you upgraded from VS 2012 Update 1

Overview of the changes

Before we dive deep in the steps to update your team project, let’s start with an overview of the improvements we made.

TFS ships with three templates (Agile, Scrum and CMMI). If you are not sure what process template was used when you created the team project, then go to the team home page

image

  • If the backlog contains “Product Backlog Item” and “Bug” work items, you used the Scrum process template
  • If the backlog contains “User Story” work items, you used the Agile process template
  • If the backlog contains “Requirement” work items, you used the CMMI process template
From Scrum 2.0 to Scrum 2.2
  1. Add the Tags column by default on the product backlog
  2. Add missing transitions to the Bug and PBI
From Agile 6.0 to Agile 6.2
  1. Add the Tags column by default on the product backlog
  2. Add the missing transitions to the User Story
  3. Set the values in the ResolvedBy and ResolvedDate fields in the transition “Active –> Closed”
  4. Update the reasons in the transitions “Active –> New” and “Active –> Closed”
From CMMI 6.0 to CMMI 6.2
  1. Add the Tags column by default on the product backlog
  2. Set the value of the ResolvedBy and ResolvedDate fields in the transition “Active –> Closed”
  3. Set the value of the ActivatedBy, ActivatedDate, ResolvedBy and ResolvedDate fields in the transition “Proposed –> Closed”  

Note: You need to apply these steps to all team projects. Applying the steps to one team project do not automatically apply them to all team projects.

Update your team project if it was created by the Scrum Template

Add the Tags column by default on the product backlog

When you create a new team, the columns on the team’s backlog get defaulted to a set of columns. Each individual can later modify the columns in the view, so this setting only applied to the initial set of columns. With the introduction of tagging, we have added the Tags column to the initial set of columns on the product backlog.

  1. Download the agile configuration with the command witadmin exportagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
  2. Open the downloaded file in notepad and update the ProductBacklog section to include the highlighted text

      <ProductBacklog>
        <Columns>
          <Column refname="System.Title" width="400" />
          <Column refname="System.State" width="100" />
          <Column refname="Microsoft.VSTS.Scheduling.Effort" width="50" />
          <Column refname="System.IterationPath" width="200" />
          <Column refname="System.Tags" width="200" />
        </Columns>

  3. Save and close the file
  4. Import the updated configuration with the command witadmin importagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
Add missing transitions to the Bug and PBI
  1. Download the Product Backlog Item work item type with the witadmin exportwitd /collection:<CollectionURL> /p:<Project> /n:"Product Backlog Item" /f:%TEMP%\PBI.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the </TRANSITIONS> element in the xml
  4. Add the highlighted text to the section

        <TRANSITION from="Removed" to="New">
          <REASONS>
            <DEFAULTREASON value="Reconsidering backlog item" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Approved" to="New">
          <REASONS>
            <DEFAULTREASON value="Moved to the backlog" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Committed" to="New">
          <REASONS>
            <DEFAULTREASON value="Moved to the backlog" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Done" to="New">
          <REASONS>
            <DEFAULTREASON value="Moved to the backlog" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Done" to="Approved">
          <REASONS>
            <DEFAULTREASON value="Additional work found" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Approved" to="Done">
          <REASONS>
            <DEFAULTREASON value="Work finished" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
          </FIELDS>
        </TRANSITION>
      </TRANSITIONS>
    </WORKFLOW>

  5. Save and close the file
  6. Import the updated Product Backlog Item work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\PBI.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  7. Repeat the same steps for the Bug work item type

Update your team project if it was created by the Agile Template

Add the Tags column by default on the product backlog

When you create a new team, the columns on the team’s backlog get defaulted to a set of columns. Each individual can later modify the columns in the view, so this setting only applied to the initial set of columns. With the introduction of tagging, we have added the Tags column to the initial set of columns on the product backlog.

  1. Download the agile configuration with the command witadmin exportagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
  2. Open the downloaded file in notepad and update the ProductBacklog section to include the highlighted text

      <ProductBacklog>
        <Columns>
          <Column refname="System.Title" width="400" />
          <Column refname="System.State" width="100" />
          <Column refname="Microsoft.VSTS.Scheduling.StoryPoints" width="50" />
          <Column refname="System.IterationPath" width="200" />
          <Column refname="System.Tags" width="200" />
        </Columns>

  3. Save and close the file
  4. Import the updated configuration with the command witadmin importagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProc (see Managing Process Configuration [witadmin] for more details on this command)
Add the missing transitions to the User Story
  1. Download the User Story work item type with the witadmin exportwitd /collection:<CollectionURL> /p:<Project> /n:"User Story" /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the </TRANSITIONS> element in the xml
  4. Add the highlighted text to the section

        <TRANSITION from="Removed" to="New">
          <REASONS>
              <DEFAULTREASON value="Reconsidering the User Story" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Resolved" to="New">
          <REASONS>
            <DEFAULTREASON value="Moved to the backlog" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Closed" to="New">
          <REASONS>
            <DEFAULTREASON value="Moved to the backlog" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="New" to="Closed">
          <REASONS>
            <DEFAULTREASON value="Acceptance tests pass" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <SERVERDEFAULT from="currentuser" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
              <SERVERDEFAULT from="currentuser" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <SERVERDEFAULT from="currentuser" />
            </FIELD>
          </FIELDS>
        </TRANSITION>
      </TRANSITIONS>
    </WORKFLOW>

  5. Save and close the file
  6. Import the updated User Story work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command) 
Set the values in the ResolvedBy and ResolvedDate fields in the transition “Active –> Closed”
  1. Again download the User Story work item type with the witadmin exportwitd /collection:CollectionURL /p:Project /n:"User Story" /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the following xml node

    <TRANSITION from="Active" to="Closed">

  4. Replace the section 

    <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
      <READONLY />
    </FIELD>
    <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
      <ALLOWEXISTINGVALUE />
      <READONLY />
    </FIELD>

    With 

    <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
      <SERVERDEFAULT from="clock" />
    </FIELD>
    <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
      <SERVERDEFAULT from="currentuser" />
    </FIELD>

  5. Save and close the file
  6. Import the updated User Story work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
Update the reasons in the transitions “Active –> New” and “Active –> Closed”
  1. Again download the User Story work item type with the witadmin exportwitd /collection:CollectionURL /p:Project /n:"User Story" /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the following xml node

    <TRANSITION from="Active" to="New">
      <REASONS>
          <DEFAULTREASON value="Implementation halted" />
      </REASONS>
    </TRANSITION>

  4. Replace it with

    <TRANSITION from="Active" to="New">
      <REASONS>
        <DEFAULTREASON value="Moved to the backlog" />
        <REASON value="Implementation halted" />
      </REASONS>
    </TRANSITION>

  5. Locate the following xml node

    <TRANSITION from="Active" to="Closed">
      <REASONS>
          <DEFAULTREASON value="Rejected" />
          <REASON value="Abandoned" />
          <REASON value="Out of scope" />
      </REASONS>
    </TRANSITION>

  6. Replace it with

    <TRANSITION from="Active" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Acceptance tests pass" />
          <REASON value="Rejected" />
          <REASON value="Abandoned" />
          <REASON value="Out of scope" />
      </REASONS>
    </TRANSITION>

  7. Save and close the file
  8. Import the updated User Story work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)

Update your team project if it was created by the CMMI Template

Add the Tags column by default on the product backlog

When you create a new team, the columns on the team’s backlog get defaulted to a set of columns. Each individual can later modify the columns in the view, so this setting only applied to the initial set of columns. With the introduction of tagging, we have added the Tags column to the initial set of columns on the product backlog.

  1. Download the agile configuration with the command witadmin exportagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
  2. Open the downloaded file in notepad and update the ProductBacklog section to include the highlighted text

      <ProductBacklog>
        <Columns>
          <Column refname="System.Title" width="400" />
          <Column refname="System.State" width="100" />
          <Column refname="Microsoft.VSTS.Scheduling.StoryPoints" width="50" />
          <Column refname="Microsoft.VSTS.CMMI.RequirementType" width="50" />
          <Column refname="System.IterationPath" width="200" />
          <Column refname="System.Tags" width="200" />
        </Columns>

  3. Save and close the file
  4. Import the updated configuration with the command witadmin importagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
Set the value of the ResolvedBy and ResolvedDate fields in the transition “Active –> Closed”
  1. Download the Requirement work item type with the witadmin exportwitd /collection:CollectionURL /p:Project /n:"Requirement" /f:%TEMP%\Requirement.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the following xml node

    <TRANSITION from="Active" to="Closed">

  4. Add the highlighted text to the transition 

    <TRANSITION from="Active" to="Closed">
      <REASONS>
        <REASON value="Abandoned" />
        <REASON value="Out-of-scope" />
        <DEFAULTREASON value="Split" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>

        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>

  5. Save and close the file
  6. Import the updated Requirement work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\Requirement.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
Set the value of the ActivatedBy, ActivatedDate, ResolvedBy and ResolvedDate fields in the transition “Proposed –> Closed”
  1. Again download the Requirement work item type with the witadmin exportwitd /collection:CollectionURL /p:Project /n:"Requirement" /f:%TEMP%\Requirement.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the following xml node

    <TRANSITION from="Proposed" to="Closed">

  4. Add the highlighted text to the transition 

    <TRANSITION from="Proposed" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Rejected" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>

  5. Save and close the file
  6. Import the updated Requirement work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\Requirement.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)

What changes apply if I upgraded from VS 2012 Update 1 to VS 2012 Update 2?

Between Update 1 and Update 2, we only added the Tags field to the list of columns on the Product Backlog in the Agile Configuration Settings. The steps are equal for all process templates, which are

  1. Download the agile configuration with the command witadmin exportagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
  2. Open the downloaded file in notepad and update the ProductBacklog section to include the highlighted text

      <ProductBacklog>
        <Columns>
          <Column refname="System.Title" width="400" />
          <Column refname="System.State" width="100" />
          <Column refname="Microsoft.VSTS.Scheduling.StoryPoints" width="50" />
          <Column refname="Microsoft.VSTS.CMMI.RequirementType" width="50" />
          <Column refname="System.IterationPath" width="200" />
          <Column refname="System.Tags" width="200" />
        </Columns>

  3. Save and close the file
  4. Import the updated configuration with the command witadmin importagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)

Resources

Leave a Comment
  • Please add 4 and 7 and type the answer here:
  • Post
  • importing the modified agile template fails:

    The following element contains an error: ProductBacklog. TF400529: This element

    defines the columns that appear on your product or iteration backlog. You must s

    et all values to fields that exist in at least one of the work item types belong

    ing to the category defined in: RequirementWorkItems. The following fields do no

    t exist in any of the work item types: System.Tags.

  • Did you install VS Update 2 on your TFS Server?

  • Thanks Ewald for taking the time to make this, it should be super easy to add this to our Customised Agile template - easier than 5.0 to 6.1 for sure :)

  • Thank you for your reply - yes I did upgrade VS and TFS as well.

  • The tags field is a system field. A system field is available in all the work item types, so it is strange that this is happening.

    When you open the work item form in Web Access, do you see the tag control as shown in this blog post - blogs.msdn.com/.../tfs2012-qu2-new-feature-work-item-tagging.aspx

  • Okay I double checked Update 2 is installed on my TFS as well - running the updater offers me two choices - uninstall and repair. So yes I installed it (and it installed without any complaints).

    Next I created a new project collection. And a new team project. I could choose among Scrum 2.0, Agile 6.0 and CMMI 6.0. Shouldn't there be 6.2 templates available - and Kanban?

    Regarding the blog post you pointed me to: I have no colum "tags" I could possibly add nor any filter settings or anything related to that. So I guess something went wrong :) I installed Update2 on top of Update1 (not RTM) but that shouldn't matter right?

  • I have the same problem as Venenum.

    Upgraded my 2012 Update 1 to 2012 Update 2. Running the installer again give me the same two options Uninstall and Repair. Looking in the Team Doundation Server Administration Console it does look like the installation went wrong because the version is still 11.0.51106.1 (Tfs2012.Update1).

  • Sorry!

    I found out what I did wrong: I installede the VS 2012 Update 2 on my server and not the TFS 2012 Update 2. For some reason the Visual Studio update installed on my server even though Visual Studio is not installed on it. Must be because the share some component.

  • Errrr... there is a TFS 2010 Update 2 package?

    In my MSDN subscriber downloads I could only see Visual Studio 2012 update 2 as well as TFS *with* Update 2 (already included): Visual Studio Team Foundation Server 2012 with Update 2 (x86 and x64) - DVD (English) - comes at more than 1GB.

    Can anyone point me to the on premise TFS 2012 Update 2 please? I cannot find it.

  • When attempting to upgrade the Scrum template from 2.0 to 2.2 I received the following error message.

    TF212018: Work item tracking schema validation error: TF26035: The definition for the field Microsoft.VSTS.Common.ClosedDate was not found. Add a definition for this field and try again.

  • @Venenum

    Visual Studio Team Foundation Server 2012 with Update 2 is what up need.  Run it and choose the "Upgrade" option from with the installer.

  • @Venenum - Sorry for the confusion.  "TFS 2012 with Update 2" is the update for TFS that gets installed on pre-existing instances as well as the package you'd use to do a fresh install.  The way the TFS update process works is that the update you install replaces the current TFS bits on your box.  It is a full layout rather than just a patch you install on top of a previous release (which means the update cannot be uninstalled or rolled back).  So you should download TFS 2012 with Update 2 and it will automatically uninstall your old TFS bits for you, install the new ones, and then pop up the upgrade wizard for you to get configured again and upgrade your data.  Hope that makes sense.

  • J: I double checked the PBI that we shipped in RTM, and it contains the Closed Date. So I don't know what happened over there.

    In your case, you can just add the field to the PBI with this definition:

         <FIELD name="Closed Date" refname="Microsoft.VSTS.Common.ClosedDate" type="DateTime" reportable="dimension">

           <WHENNOTCHANGED field="System.State">

             <READONLY />

           </WHENNOTCHANGED>

         </FIELD>

  • If it makes a difference I was upgrading from TFS 2012 to tfs 2012 Update 2 (skipping Update 1).

    I was able to Import succuessfully by removing the following:

    <FIELDS>

           <FIELD refname="Microsoft.VSTS.Common.ClosedDate">

             <SERVERDEFAULT from="clock" />

           </FIELD>

    </FIELDS>

    That being said, ideally I'd want any missing fields added to my templates.  Not sure why my Scrum 2.0 Templates are off...

  • @ Ewald Hofman - TFS Product Team

    I was able to follow your instructions and add the field.  I hope nothing else is missing from my Templates...

Page 1 of 3 (34 items) 123