I have a project that I don't remember the process template version I'm using because I didn't pay attention to the version on creation. How can I check the process template version of a project hosted on Team Foundation Service (http://visualstudio.com)?
I was able to find the differences between the process templates themselves:
http://msdn.microsoft.com/en-us/library/vstudio/ms400752%28v=vs.110%29.aspx
http://msdn.microsoft.com/en-us/library/vstudio/ms400752%28v=vs.120%29.aspx
But I was unable to find a comparison of the individual process template versions. Can someone point the diferences between Microsoft Visual Studio Scrum from version 1 through version 3 for example?
The process template is automatically upgraded to latest. So whatever version you started with, the current process template is latest. Currently,
If Scrum, 3.0
If MSF for Agile, 7.0
If MSF for CMMI, 7.0
btw, IF you don't know the process template then, It can be known by observation.
The ProcessGuidance option works only if you have integration with Sharepoint.
So if you don't have the integration you can use the sql query in this link to find out the process template. You need to run it against the TFS db.
Under Documents/ProcessGuidance there is a document called ProcessGuidance.html click on it and it will say what type it is.
Related
I have been responsible for administrate our TFS projects and have started to investigate the current configurations. I found the following link for determining which process our team projects are connected to: How to determine what Process template an existing TFS 2012 project is configured with?
When using the rest API described in the article above, it seems like the projects depend on a process template called "Microsoft Visual Studio Scrum 2013". When reading this article: Scrum process it seems to me that the process is outdated and should be upgraded to use the "Scrum" template.
I have searched the internet for knowledge on how to upgrade the project to use the new Scrum process but had no luck of finding an answer. Does anyone have an idea of how to update the projects to depend on a newer process? Maybe the whole question is wrongly put as I may lack some obvious knowledge about how these things are meant to work. All I want is to ensure our projects are updated to use the latest TFS technology.
We use Visual Studio 2017 and did recently upgrade our TFS server to TFS 2018.
In general, some new features will be introduced when upgrade from old to new version of TFS.
Generally if you haven't made any changes to the original process template, upgrading is quite easy. Just enable new features by running the Configure Features Wizard in your team projects configuration page.
If it can’t upgrade automatically, you need to apply updates manually. See Add updates to team projects manually.
If you customized the process template, then you can follow the steps mentioned in this link to Update a customized process template to access new features.
To update the existing projects, a not so nice but easy way is to remove all work items and process data from your project and then add the newest items. Martin Hinshelwood has some great guidance on how to do this.
Doing the upgrade from TFS 2010 to TFS 2012 (to go after at TFS 2015). No problem during the migration. I'm now at the step to configure features for each project and the verify button give me this error:
Value cannot be null.
Parameter name: stream
Information that can help figure out the problem. We are using the template "EMC - Scrum for team system" and that template was changed a little for our need. Only have 3 work items for that project.
How can I know what to look for to fix this error?
We want to change the template and use the new Agile template from TFS 2015 at the upgrade is done from TFS 2012 to 2015. How can I change from one template to another one inside a TFS project?
thanks
The configure features wizard is not going to be able to do its magic on a customised SfTS3 process template so you're going to be configuring features manually.
Add Features Using a Manual Update Process
It will be a reasonable amount of work but can be done. However, if you plan to migrate to the Agile process (I prefer to use the Scrum process, personally) then you may as well get busy doing that.
Options:
Create a new project with the Agile template and migrate your Work Items/Code (Excel/Integration Platform/etc.)
Start bending the SfTS template into the shape of the Agile template
Migrating Scrum for Team System 3.x to MS Scrum 2.0 /
Migrate a TFS project to another process template
I updated to Visual Studio 2015 when it was released last week. Resharper suggested that I might like to update the following string using string.Format:
string filePath = HttpContext.Server.MapPath(string.Format("~/App_Data/{0}.xlsx", Guid.NewGuid()));
To use string interpolation:
string filePath = HttpContext.Server.MapPath($"~/App_Data/{Guid.NewGuid()}.xlsx");
I did this, and all is well.
However I've broken the build on TFS:
Controllers\MyController.cs (224):
Unexpected character '$'
So it seems like the new features in C# 6 can't be compiled by our older, non-updated version of TFS.
The project is still targeted at using the Framework 4.5 however, I have not targeted 4.6. I (wrongly) assumed that still targeting the old framework would mean it could be built by other team members still using VS2013 along with our TFS build server.
So it looks like our TFS needs an update of... something.
What do I need to install on the TFS server to have it compile this new syntax? The latest version of the .NET Framework or something else?
Install .NET Framework 4.6 and Build Tools 2015 on your build server.
Then override the ToolsVersion (/tv:14.0) in MSBuild arguments.
Unfortunately, there doesn't appear to be an easy way to get older versions of TFS working with C# 6.0 without installing VS2015 on the TFS build server. If you can do that, I would suggest that. If, for whatever reason, you cannot, then the following worked for me:
I followed the instructions of the other answer, but that alone didn't work. I also had to edit the default TFS build process template (which in my case is found in $//BuildProcessTemplates) and change the ToolPath properties of the "Run MSBuild for Project" nodes to the location of MSBuild 14.0 (which usually is C:\Program Files (x86)\MSBuild\14.0\Bin).
You will then need to update your build definitions to use the new build template (if you had copy/edited a new one vs editing the original one).
At this point, you should be able to build C# 6 projects with TFS, but if you're trying to do web deployment/packaging as well, then there are still a few more steps.
On the build server, at C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0, there should be a Typescript folder and nothing else. On your local machine with VS2015, go to the same path. There should be a Web and WebApplications folder. Copy those over to the server's folder. You should now be able to package/deploy web projects as well.
Please check to see if "Run MSBuild for Project" exists more than once within your TFS Build process template. In my case it existed twice and took me awhile to figure out why the change for ToolPath was not taking the desired effect.
When you upgrade your tfs server does it automatically update the scrum template your using for existing projects or do you have to do that manually? If manually what is involved?
The team project we are working on was defined in 2012 RTM but our server is now # 2013.3. We haven't used the work items that much at this point (at little bit initially for a pilot project) but we are to push harder for our organization to use scrum so we want to make sure we are on the latest/greatest template before we start.
Your process template is not automatically updated. As long as you haven't made any changes to the original process template, upgrading is quite easy.
You enable new features by running the Configure Features Wizard in your team projects configuration page.
If the automatic update fails, you will get a message describing the errors it encountered. Now you will have to apply those updates manually which is also described on MSDN but is a bit harder.
A not so nice but easy way is to remove all work items and process data from your project and then add the newest items. Martin Hinshelwood has some great guidance on how to do this.
I have an TFS server installation that through time has gone through upgrades from TFS 2005 to TFS 2008 and then to TFS 2010.
During the lifetime of the installation a lot of projects have been created and different project templates have been used. MSF Agile 4.0, 4.1, 4.2 and 5.0. and a few MSF CMMI ones.
What I would like to do is "replace" the project template used for all these projects to use a new one common one: Microsoft Visual Studio Scrum 1.0.
I am aware that TFS project templates are used as templates for creating new projects and cannot modify the tfs projects definitions after creation.
Uptil now only the version control and build server part of TFS have been used and there are no existing work item types.
Additionally all projects and build scripts are depending on the source code paths stay the same.
As I see it I have the following options:
Create new TFS projects using the correct project template and then move/branch the source code to the new project.
All code is moved to a temporary team project.
The old project is deleted
New project with the original name and correct process template is created
Code is moved to the new team project
Temporary team project is deleted
All the build definitions needs to be to recreated which is not an option.
The source code move/branch will "mess up" the versioning history
By messing up the versioning history I mean that when you move source code it will behind the scenes do a delete + source rename on the original location and the history will still be located in the old project. This will make searching in the history difficult and if I actually delete the old project I will loose all the history before the source code move.
This is really not an option for me since there is years of code change history that is needed to for supporting the different applications being built.
Use the TFS migration tools to migrate to another TFS project
This has the same downsides as the first solution
Replace/import work item types, install new reports, create new SharePoint sites
For each tfs project
Delete existing work item definitions using "witadmin deletewitd"
Import each work item definition from the new process template using "witadmin importwitd"
Import work item categories using "witadmin importcategories"
Delete old reports in project folder in report server
Upload the report definitions from the new process template
Modify data sources used for the reports using the report manager to point to the correct shared data sources (TfsReportDS and TfsOlapReportsDS)
Modify the report parameter ExplicitProject default value to "" (empty string) and disable prompt user option.
Export the documents in the old SharePoint site using stsadm
Delete the old SharePoint site
Recreate the sharepoint site using the TFS2010 Agile Dashboard site template
Activate site feature "Team Foundation Server Scrum dashboard"
In TFS Project Settings -> Project Portal Settings: Enable "team project portal" and ensure the url is correct. Enable "reports and dashboards refer to data for this team project"
And finally..
Process the Warehouse
Process the Analysis Database
Even though that this involves a lot of small steps this looks more appealing because
this option will not force me to move the source code and my existing build definitions will be intact.
My question:
Are there other ways to achieve the replacement of work item types that I haven't mentioned?
And/or am I missing any steps in last solution?
Given that you aren't using any existing work item types, your final proposal looks like the best option.
After deleting the old reports and exporting the SharePoint documents (you could also use Windows Explorer instead of stsadm), there are actually two commands in 'tfpt' that will help you. This will reduce it from 14 steps down to 5 or 6 steps.
tfpt addprojectreports Add or overwrite reports for an existing team project
tfpt addprojectportal Add or move portal for an existing team project
tfpt addprojectreports /collection:http://yourtfs:8080/tfs/YourCollection /teamproject:"Your Team Project" /processtemplate:"Microsoft Visual Studio Scrum 1.0" /verbose
tfpt addprojectreports /collection:http://yourtfs:8080/tfs/YourCollection /teamproject:"Your Team Project" /processtemplate:"Microsoft Visual Studio Scrum 1.0" /verbose
Your first option is IMHO your best shot.
You can branch the sources from the old team project to the new team project. With TFS 2010 you can see the history also from the branched location. So you don't loose functionality in here.
The Build is just an msbuild file which is stored in source control. The only thing you have to do is actually copy the build definitions. You can do that either manually, or you can create a little app that does that for you.