DCSIMG
February 2009 - Posts - SRL Group

SRL Group

This blog is about Team System, QA and Development methodologies and more...

VSTS Resources

Team System Bloggers

February 2009 - Posts

The connection between Software Configuration Management and Environments Management

Many times when I make SCM plan for customers they confuse the Software Configuration Management (SCM) with environments management.

When I talk about environments management I talk about the Dev, Test, Staging, Production etc.

So why is it so confusing?

The main reason that it is so confusing is in the fact that there are very similar actions taken when I manage configuration, for example when I do a Feature Freeze I like to create a test branch that doesn’t mean that I am installing this version on the Test environment it means that no new features will be entered to this version.

It is very important not to mix between the two in order to understand that when I manage my code it doesn’t mean that I manage my environments and backwards.

Good development management includes both environment management and configuration management.

Have fun!!!

How To: Rebuild the Team System Cube

There are times when you need to rebuild the Team System cube, the common scenarios are: whenever you move, restore, rename, or fail over the data-tier server.

The Team System cube is what the Reporting Services is using in order to create the Team System reports.

To perform these procedures, you must have the following permissions in SQL Server:

  • You must be a member of the sysadmin security group for the database instance for Team Foundation and for the Analysis Services database instance of the Team System data warehouse.

  • You must be a user of the TfsWarehouse relational database.

  • You must be a member of the TFSEXECROLE database role.

Also, you must be a member of the Team Foundation Administrators security group, or the server-level Administer warehouse permission must be set to Allow.

Open a command line and change the directory to: Drive:%Program Files%\Microsoft Visual Studio 2008 Team Foundation Server\Tools

Now run is command in one line, make sure to change the bold  parameters to your parameters:

SetupWarehouse.exe -o –s DataTierServerName -d TFSWarehouse -c warehouseschema.xml -ra TFSReportServiceAccount -a TFSServiceAccount -mturl http://ApplicationTierServerName:8080

Have fun!!!

How To Add Users To A Team Project

A customer asked me: how do I add users to my team project?

Because this is a task that you need to do in every project you create I will show the basics in this post.

So where to start?

Just right click the project, point on “Team Project Settings” and click on “Group Membership”

Choose add to group

Note: You can add users from the “Team Members” tab in the Team Explorer too but I will cover that in a future post.

A window is opened at that point with 4 groups, these are the basic team project groups, you can add new groups if you like (not covered in this post).

Groups Window

The basic groups are:

  1. Readers: Put here the users that you like to view only, the users located in this group will not be able to make any changes in the project.
  2. Project Administrators: Put here only the users that you like to be the administrators of the project, users located in this group will have all the security rights open, they can also give security rights to other users so use this group with grate caution!
  3. Contributors: Put here the “regular” users that you like to contribute to your project, users located in this group can add information and use the project for the day to day actions to complete there work.
  4. Build Services: Put here the users that you like to administrator your automated builds.

A user can be a member of more than one group so the security rights he will get are the sum of the two groups.

Note: In case a user is in the Project Administrators group adding him to other groups can only reduce his security rights.

Double click the group you like to open, a window will pop up.

Add user from active directory

In order to add users choose the “Windows User or Group” radio button and click the “Add” button.

Check Name

 

 

Enter the Name, user name or a group name of the user or group you like to add to the Team Project from your Active Directory and click the “Check Names” button.

You can add more than one user name or group by using the [;] mark.

Click the “OK” when finished, you will see the user names or group names added to your Team Project group.

Have Fun!!!

New Sites for Team System Code Examples (API)

There is a NEW site for Team System API usage called TFS Examples located here that is worth checking!!!

In the site you can find API examples in different categories, you will be able to find some very good resources and documentation in different subjects related to the Team System.

The site is very simple and easy to use the navigation thru the different subjects is friendly.

Have fun!!!

TF30224 error when creating a new team project

Hi

While using Team explorer on the TFS machine, we tried to create a new team project and got error TF30224 :
"Failed to retrieve projects from the report server. Please check that the SQL Server Reporting Services Web and Windows services are running and you have sufficient privileges for creating a project."

So we followed the recomendations and validated the privileges and that services are running.

We followed instructions from this link: http://social.msdn.microsoft.com/Forums/en-US/tfsgeneral/thread/cda9e94a-b330-47b0-99ad-d1c73bee4a16/
(David Jung - thanx for correcting me with that URL) we checked that we have a "content manager" permission in reporting services,
that we have  DBCreator role in SQL Server - But still - cannot create team project.

What caused the problem was the installation of TFS 2008 service pack 1.
This service pack must be installed *after* installing service pack 1 for Team Explorer 2008 on the machine.

It is mentioned in the instructios in the download page of  TFS 2008 service pack 1:
http://www.microsoft.com/downloads/details.aspx?familyid=9e40a5b6-da41-43a2-a06d-3cee196bfe3d&displaylang=en
"Additionally, if you plan to install this service pack on a server that has a client for Team Foundation also installed on it, you must install SP1 for Visual Studio 2008 on that server before you install SP1 for Team Foundation Server".

If we wish to solve the problem, we must uninstall the service packs and re-install them in right order,
or we can use a great workaround (thanks to Shahar Bracha for this):
We will create the team project using Team explorer on a *Different machine*, not on the TFS server.

It Works.

How To Disable Pre/Post Build Events When Using Team Build

Some times you like to create Pre or Post build events in your project and you don’t like it to be executed when doing a build using the automation build system, so what can you do?

There is a property called “SkipPostBuild” in the build’s targets file, setting it to true will only result with skipping the Team Build post events and not the project post event.

In order to skip the project pre/post build events do the following:

Step 1: Open the proj file of the project in notepad or any text or XML editor.

Step 2: Find the “PropertyGroup” holding the property “PreBuildEvent” or “PostBuildEvent” looking like that:

<PropertyGroup>

<PostBuildEvent>Some text…</PostBuildEvent>

</PropertyGroup>

or…

<PropertyGroup>

<PreBuildEvent>Some text…</PreBuildEvent>

</PropertyGroup>

Modify the file with the following for Post Build Events:

You need to make an extra copy first and than add condition to each property group, see that when the condition of the property contains a value the inner property is empty means do nothing.

<PropertyGroup Condition=" ' $(TeamBuildConstants) ' == ' '>

<PostBuildEvent>Some text…</PostBuildEvent>

</PropertyGroup>

<PropertyGroup Condition=" ' $(TeamBuildConstants) ' == '_TEAM_BUILD_ '>

<PostBuildEvent></PostBuildEvent>

</PropertyGroup>

Modify the file with the following for Pre Build Events:

You need to make an extra copy first and than add condition to each property group, see that when the condition of the property contains a value the inner property is empty means do nothing.

<PropertyGroup Condition=" ' $(TeamBuildConstants) ' == ' '>

<PreBuildEvent>Some text…</PreBuildEvent>

</PropertyGroup>

<PropertyGroup Condition=" ' $(TeamBuildConstants) ' == '_TEAM_BUILD_ '>

<PreBuildEvent></PreBuildEvent>

</PropertyGroup>

Have Fun!!!