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 8 and type the answer here:
  • Post
  • Is the addition of the Tags field the only difference between Update 1 and Update 2? I'm at a shop running Update 1 right now and these transitions look familiar to me.

    Will there be official guidance concerning the Update 1 -> Update 2 upgrade path?

  • @Alex Boesel, that is correct. We have added only the Tags to the Product Backlog in the AgileConfiguration.

  • Hi,

    Strange, I don't need to add transitions in my Scrum templace...

  • @Mickaël, the transitions were shipped in the Update 1 Process Templates already, but we did not blog those changes (shame on us...) The only differences between Update 1 and Update 2 are the added Tags columns. So it might be that you created the team project from the Scrum 2.1 template.

  • I also had the error about the closeddate not existing for both the bug and pbi.  The solution of also adding the field worked in both cases.

  • We are using TFS 2010 with SQL 2008 express.

    Why TFS 2012 Upgrade 2 does not upgrade existing TFS 2010 automatically. Why we have to uninstall it first and then import old databases into SQL 2012? It is scary and I am not comfortable doing this. I really want to upgrade to TFS 2012 but can somebody put me to the easy and right direction.  

  • @Upgrade - If you are using SQL 2008 then you will have to do a manual uninstall of TFS and import your data into a newer version as you stated.  In TFS 2012 we dropped support for SQL 2008 and only support SQL 2008 R2 and SQL 2012.  Sorry, there is no "easy" way around it.  For each release of TFS we have to make difficult decisions around what we're able to support, and SQL 2008 did not make that list this time.

  • From where can i download the latest version of Process template? I have downloaded VS 2012 update2 & TFS update 2, I didn't find the latest Kanban support template in my Process Template manager list?

    My Mail ID sebastin.saji@gmail.com

  • After installing VS2012 update 2 & TFS update 2 the new process templates (scrum 2.2 / cmmi ...) are not listed in Process Template Manager. Anyone faces the same issue? Is there any fix? work around?

  • I had the issue as well with the ClosedDate field not existing.

  • Is this tagging supposed to be available in Visual Studio 2012 Update 2 as well? Because the field does appear on TFS Web Access, but not in Visual Studio.

  • @Dennis; In VS Update 2 tagging is available to you as a web-only feature. Adding the ability to add tags in VS is high on our backlog though, and it will be available in the near term.

  • Okay, this article is awesome! thanks, but *now* it begs the question, will a similar process catch all of the changes in process templates when moving from TFS 2012 to 2013.. ? or are there more significant issues that need to be addressed between those versions?

  • @Jeff, I am planning to write an additional blog post to describe the changes between TFS 2012 Update 2 and TFS 2013 RTM.

    The major changes are: to support Agile Portfolio Management:

    1. We have merged CommonConfiguration and AgileConfiguration into ProcessConfiguration

    2. We have added backlog sections to the ProcessConfiguration

    3. We have added the Feature work item type

    More details will follow in the blog post.

  • Yeah,

    1. We have merged CommonConfiguration and AgileConfiguration into ProcessConfiguration

    I'm really struggling with at this point.  That configuration is in the WorkItems.xml .. but I don't see how to export/import that particular file in order to make the change on an existing project.  I see that there are witadmin commands to import export the configuration files themselves, but how do I get the Project to utilize the new ProcessConfiguration?

Page 2 of 3 (34 items) 123