Automatically generating release notes from TFS
Software configuration management application are in the centre of any Application Lifecycle Management solution. As part for Microsoft ALM offering, TFS does provides several different functionality that essentially is important in managing and executing
As part of continuous delivery, it’s important for software configuration managers and release managers to provide accurate information on release notes. Essentially, release notes includes information about enhancements and bugs that are supported
in a given release.
As part of integrated solution, TFS provides support for file version management, workitems management and build automation. Developers performing changes to source code should generally link their Changesets to WorkItems. This is considered as good practice
within TFS as it provides information about the approved WorkItems and associated impact on source code.
TFS ChangeLog application uses this Changesets and WorkItems link information for generating change log. It queries TFS repository in real-time to gather release notes information. Refer to following overview diagram for understanding overall process that
TFS ChangeLog application used behind the scene.
In the above diagram, it should be easy to understand relation between Main Branch, Integration Branch and Development Branch. All the triangles are representing TFS Changesets where as diamonds represents TFS WorkItems that are linked to Changesets.
TFS has support for different type of WorkItems based on process template that you use for your project. Generally, developers are working on smaller type of work items (i.e. task, small user stories, bugs, etc.) while they make changes in “Development
Branch”. Configuration managers then generally group such small changes together to support bigger type of WorkItem changes (i.e. Change Request, Enhancement Request, Epic User Story, Product Backlog Item, etc.) by merging them together from “Development
Branch” into “Integration Branch”. Again it’s possible to link WorkItem to such merge changeset in TFS. And finally, grouping various bigger WorkItems together from “Integration Branch” produces release that is merged into
In TFS ChangeLog application, users choose their branch along with starting point (starting changeset) and ending point (ending changest) based on which it generates release notes. So, if users choose “Development Branch” for generating release
notes then it will extract all the ChangeSet information along with information about associated smaller type of work items (i.e. task, small user stories, bugs, etc.). And if user chooses “Integration Branch” for generating release notes then
it will extract all the ChangeSet information along with information about associated bigger type of WorkItem changes (i.e. Change Request, Enhancement Request, Epic User Story, Product Backlog Item, etc.).
TFS ChangeLog application extracts data in XML format that has information about ChangeSets and associated WorkItems. Then it uses XSLT 2.0 to translate information from XML into HTML.
XSLT is very powerful tool at users disposal. Users can modify XSLT file that is provided out of the box with TFS ChangeLog application to customize output as per their requirements. This enables users to define their own style, filter, conditions and other
formatting that suits their requirements for generating release notes.
Documentation Table of Content :
Generating Release Notes Report from TFS
Generating File Difference Report from TFS