The Community TFS Build Manager (TBM) is an open source build management solution developed by the ALM rangers, the build manager simplifies the management of builds in medium to large Team Foundation Server environments. Some common limitations you may run into while dealing with builds through the Visual Studio Build Explorer are not being able to perform bulk operations on builds, create a relationship diagram of the build controller/agents, managing build process templates, etc. The community TFS build manager address that and many other such gaps you may encounter while managing builds through the visual studio build explorer. Since TBM is really an extension of the build explorer solution in Visual Studio it is available for download from the Visual Studio Extension Gallery. You can grab the source and read more about the project on CodePlex.
07 May 2012 - [TA] – The Community TFS Build Manager extension with the build notes functionality – version 18.104.22.168 has been released to the Visual Studio Extension Gallery now. Please download and install the extension from here.
30th April 2012 – [TA] – The change set 75829 includes Build Notes, this feature has not yet been released to Visual Studio Extension gallery. You can try build notes out by downloading the
executable from here and run TFSBuildManager.Application.exe. Please note, this is currently in Preview, if you run into any issues (which you most likely will :) please raise them here.
Build Notes - An Introduction
1. Feature Introduction - Build Notes
I have worked with several clients implementing Agile/Waterfall where release notes are created using the information available in builds (such as work items resolved, change sets included, etc) but this is done manually. This makes the process of creating release notes laborious and error prone. Lately I have been working on a feature for the TBM which will help you automate much of the release note creation process by allowing you to generate a summary document from the build summary.
Let me give you a very brief taste of the level of details included in the build notes,
But that’s not all, look at the deep dive for the entire template :-]
2. Deep Dive into Build Notes
When I started writing this feature I wanted to give the user the ability to easily include exclude sections from the build notes. I am sure that the DEV team will be more interested in the Build Configuration summary details section more than the QA team, by being able to easily exclude sections that the audience may not be interested in you can keep the information relevant to the audience.
Most of our customers use MS Word to distribute release notes across teams, hence Ms Word became the obvious choice for build notes. An interesting fact that came forward while I was still researching the requirements for this feature was that not all companies have ms word installed as part of the standard build which means that the build notes generation logic should not depend on ms word being installed on the machine where the notes are being generated and this is where Open XML SDK comes to the rescue.
Now that I was sure that I was using MS Word and Open XML SDK I needed to template what I wanted to distribute as part of the build notes. By extracting the build information from TFS using the TFS API and feeding that information into the standard word template I could generate the Build Notes.
The Build Notes Template
1. Header – The header includes the Build Number for which the notes has been generated
2. Introduction section – Includes images for build state and build retention state. Along with information on User who triggered the build, the build definition triggered and how it was triggered. How Long the build ran for, duration it was completed before. You also get to know the build URI (I know, I am working to make this a link, but wait this is still in progress), the source get version for the build, the shelve set name, the label name, build quality, drop location and location of the log file.
3. Latest Activity – Includes the name of the individual who last modified the build, when it was last modified and how long ago.
4. Build Configuration Summary – Includes information of the build platform, build flavour, no of errors, warnings, details of the solution(s) compiled by the build along with the error count, warning count and log file path.
5. Change set Details – The change set id, comment, when it was changed in and by whom it was checked in along with details of all the files included in the change set.
6. Work Item Details – The Work Item Id, Title, Type of work item, current state of the work item and the iteration path the work item is assigned to.
7. Footer – The footer includes the details of by who & when the build notes were generated.
8. Test Results – This feature has been highly requested by many customers. The customer does not want to download the trx file to see the list of tests that failed. Build notes not only gives you the information about the test run such as Test Result Id, Status, total test run, completed and Pass % it also parses the trx file to gives you a separate list of test passed, failed and inconclusive.
What more, you are not restricted to generating build notes for just one build, you can include as many builds as you want in one build notes, the template section is repeated for each build you choose to be included in the build notes. I have so far tested this for 25 builds in one go and it works just fine. Exciting or What? :-]
3. Feature Walkthrough
Enough of talk, let’s see this in action…
1. Fire up the Community Build Manager and select the team project collection you would like to work with. I am demoing this against my TFS preview team project collection https://geeks.tfspreview.com which is also using cloud Build Services.
2. Choose Builds from the show drop down list
3. From the completed builds tab right click any of the builds you would like to generate the build notes for, from the context menu choose ‘Experimental: Build Notes’. You can select random builds by holding the ctrl key or use the shift key to select sequential builds.
4. Select the Options you would like to include in the build notes document. By un-checking any of the options you can eliminate that from being included in the build notes. Click Generate to continue generating the build notes.
5. If all goes right you should get a build notes document, similar to the one below,
Build Summary VS Build Notes
On the left you can see the build summary in the visual studio build explorer and on the right you can see the build notes generated using the TFS Build Manager.
1. Where can I download the Community TFS Build Manager – Build Notes Preview from?
It is planned that this will be available for download from Visual Studio Gallery, but for now you can download it from here . Please refer to the update comments, the extension is available for download and can directly be installed from the visual studio extension gallery here.
2. Where can I download the source code for the Build Notes Preview?
Since this is part of the community build extension codeplex project, you can download the source code from here.
3. Where do I report bugs or request enhancements to the Build Notes Preview?
You can raise a bug or enhancement request here. Alternatively you can contact me directly.
4. Can I customize the build Notes template?
YES! Absolutely, the whole purpose of taking the template approach for build notes was giving the user the flexibility to easily modify the build notes template as per their needs. You can edit as much as you like, I’ll be discussing this in great detail in the next blog post.
5. Am I looking at the Latest Blog post on TBM - Build Notes?
You can follow all posts related to TBM – Build Notes from http://geekswithblogs.net/TarunArora/category/13622.aspx
Hope you like the feature enhancement, next I’ll be discussing ‘how to customize the build notes preview template’. Thank you for taking the time out and reading this blog post. If you enjoyed the post, remember to subscribe to http://feeds.feedburner.com/TarunArora. Special thanks to Mike Fourie, Jakob Ehn, Tiago Pascol, Anuthara Bharadwaj, Nivedita Bawa, Brian Keller and Ed Blankship for their great feedback. While I’ll be busy fixing the defects you raise, in case you have any feedback please feel free to leave a comment.