Today we released Release Candidate 2 of Team Foundation Server 2015. I believe this release is VERY close to the final bits we will ship. I’d encourage people to try out upgrades on production backups, pre-production environments and, production environments. We will support you regardless of the path you choose.
Download: TFS 2015 RC2
Be aware that this TFS RC2 cannot be installed on the same machine as VS 2015 RC. It can be accessed by the VS RC just fine, but not installed on the same machine – this has to do with some versioning issues on some files that are shared between the two releases.
Team Foundation Server 2015 is the biggest release we’ve shipped in a long while. On one hand, it’s a very nice update over TFS 2013 Update 4. On the other hand Team Project rename and some pre-work we’ve done to enable Team Project isolation (move, archive/restore, etc.) in the future has involved significant evolution in the schema and data access layers.
Significant schema changes bring some challenges:
- Data migration – We have a huge number of customers with a wide variety of TFS instances – some relatively new, some migrated version to version from TFS 2005, and some, I’m sad to say, hand tweaked by an overzealous DBA. Our schema transformation scripts have to be tolerant of many, many things and behave reasonably in every case. First and foremost, we can’t find ourselves in a position where we lose any data in the transformation and secondly we have to work hard to make sure no customer gets part way through and upgrade and finds themselves blocked.
- Query plan tuning – TFS operates at insanely large scale. The largest internal TFS database is nearly 30TB. I don’t even know what our largest external database is but I know it’s in the same ballpark. When databases become very large, they are very sensitive to suboptimal query plans. A schema change means retuning all the query plans to the changes.
For the past several weeks, we have been dedicated to driving “real-world” upgrades of production TFS systems to TFS 2015 – both internally and externally. We’ve been working through upgrades on our 70 or so large, internal instances. We’ve also been working with MVPs and key customers to do many dozens of additional mission critical upgrades. Along the way, we’ve found a lot of interesting/unexpected data shapes. We’ve learned a lot and we’ve fixed a bunch of bugs.
Our plan had been that the Release Candidate we shipped at the end of April would be our last public pre-release and that mid-July would be our RTM date. About a week ago, I made the decision to change the plan. Instead, we are shipping a “Release Candidate 2” now and will RTM as soon as we are ready after that.
I’ve been watching the bugs that have been coming in as a result of our upgrade testing – the severity, the causes and the rate. I’m just not quite happy with where we are. Once an upgrade is complete and working, the product is very high quality, but we’ve continued to find, every week, a few more bugs in the upgrade process. The latest set were discovered as a result of some spurious network errors in the middle of an upgrade. This led us to realize that we had some remaining bugs in our upgrade retry/recovery process. As a result, we are executing a full regimen of “torture testing”/fault injection testing to force random infrastructure failures during upgrades and ensure that recovery is always complete.
In the end, getting quality right is more important than hitting any date. As I write this, I actually don’t know of any bugs that would keep us from declaring this TFS 2015 RC2 build as RTM. We’ve fixed everything we’ve found. It’s just that I don’t feel certain that we’ve found everything yet. Before we call this RTM and tell the world that everyone should go upgrade their TFS servers, I want to get some more upgrades done, complete the fault injection testing and see the newly discovered bugs trail off to zero. This RC2 has many bug fixes, dozens of which are fixes for bugs we’ve uncovered in upgrade testing. At this point, we’ve upgraded well over 100 TB of TFS databases and this RC2 has fixes for every issue we hit along the way. Over the next few weeks, we are going to drive many more upgrades and, assuming the bug tail ends as we expect, we’ll prepare a final build and release TFS 2015 RTM.
I apologize for any confusion given that we announced last week that TFS would release on July 20th with Visual Studio and .NET. Given what I outlined above we wanted to take a little extra time to ensure a seamless upgrade to TFS 2015 at RTM. However we will still ship Visual Studio 2015 and .NET 4.6 on July 20th and ship TFS 2015 as soon as we are ready after that.
In addition to confusing the messaging, delaying the TFS release will make it a little harder to track our releases. We generally try to synchronize our VS, TFS and .NET major releases all on the same day so the story is super simple for customers. Because TFS 2015 RTM is delayed the story will be a little more complex. The only thing we are delaying is the TFS 2015 server RTM and the associated Project Server connector. All other TFS related deliverables – Team Explorer, Microsoft Test Manager, Team Explorer Everywhere, Test Agents, etc. will all RTM on or before July 20th. All of these will work just fine with your TFS 2013 server if you decide to start using them before getting the TFS 2015 RTM.
Again, I’m sorry for the confusion and annoyance this creates. I encourage you to try out the RC2. While I’m not quite ready to call it RTM, it is very close and has stood the test of MANY upgrades at this point.