The Joy of Integration

The big work task for my team this week has been integrating the WinFX SDK content into the Windows SDK. This hasn't been nearly as painful as I expected it to be, but it still has been a complicated task.

Our builds are produced out of what we call the BOM, which is a database that lists from where files can be picked up, on our end, and to where they can be installed, on the user's end. Each SDK we build has its own BOM. The BOM database also lists the relationships between files and lists which custom install group they belong to. For instance, the BOM might list an andividual header file, that it should be installed to c:\program files\microsoft sdks\windows\v1.0\bin\x86, and that it is part of the set of headers that install on an x86 platform. The real pain of integration comes not from moving files from BOM to BOM, but with preventing duplicates from being installed and from reconciling directories that might have changed.

We had hoped to get this resolved internally by today, but instead it's slipped to early next week. There's absolutely no external user impact to this, and we always have an extra day or two built into our schedules (I learned to do that in my Project Management Basics class, so it's definitely something that lots of us are taught). Still, I'd anxious for us to move to our next tasks, which are getting the CMD and MSH shells to work correctly in this new setup. For the CMD shell, it should just require changes to a few lines of code, but Monad, or MSH, is a more complicated animal since pieces of it have only recently locked down. Internal developers use our SDK to develop samples (a classic case of Microsoft "eating our own dogfood"), so until these dev environments are available, we are blocked. Hopefully that can be complete by the middle of next week.

Once that's done, hopefully we can start working on easily taking drops of external MSIs for integration with our own MSIs. We had initially looked into the system than Visual Studio uses, code-named Cartman, but it's just not a good fit for our needs, so we're going to develop our own system. I'm looking forward to getting to play with that.

Everything is targeted to the Windows Vista Beta 2 release. Once that's out the door, all of us Program Managers get to start working on newer and better versions of our current projects. We have many wish list projects in mind that you users have asked for.