How can I automatically create Azure DevOps Release Notes and how can I publish them?

A question I am often asked when consulting on Azure DevOps is ‘how can I automatically create release notes and how can I publish them?’. Well it is for just this requirement that I have written a set of Azure DevOps Pipeline Tasks Release Note Generator - to generate release notes. I strongly recommend this Cross-platform Node-based version. I plan to deprecate my older PowerShell version in the not too distant future as it uses ‘homegrown logic’, as opposed to standard Azure DevOps API calls, to get associated items. Wiki Updater - to upload a page tot a WIKI. WIKI PDF Generator - to convert a generated page, or whole WIKI, to PDF format. So lets deal with these tools in turn ...

September 15, 2020 · 4 min · Richard Fennell

Restarting VS Code fixed NPM INSTALL intermittent EPERM issues

Whilst doing some NPM build work for VSTS Extensions I kept getting intermittent EPERM errors about renaming Windows files during NPM install (as discussed on GitHub)l. When you get this it completely blocks any development. As the Github issue discusses there are many possible reasons for this issue, and many proposed potential solutions. However the only one that worked for me was to restart VS Code; as this appeared to be locking the node_modules folder somehow. This was even though I could delete it via Windows Explorer without any problems. ...

June 26, 2017 · 1 min · Richard Fennell

Duplicate project GUID blocking SonarQube analysis of Windows 10 Universal Projects

I have working on getting a Windows 10 Universal application analysed with SonarQube 6.x as part of a VSTS build. The problem has been that when the VSTS task to complete the SonarQube analysis ran I kept getting an error in the form WARNING: Duplicate project GUID: "8ace107e-8e3c-4a1b-9920-e76eb1db5e53". Check that the project is only being built for a single platform/configuration and that that the project guid is unique. The project will not be analyzed by SonarQube. Project file: E:Build1\_work58sBlackMarble.Victory.Common.Module.csproj … plus loads more similar lines. The exclude flag has been set so the project will not be analyzed by SonarQube. Project file: E:Build1\_work58sBlackMarble.Victory.Ux.Common.csproj … plus loads more similar lines. WARNING: Duplicate project GUID: "1e7b2f4e-6de2-40ab-bff9-a0c63db47ca2". Check that the project is only being built for a single platform/configuration and that that the project guid is unique. The project will not be analyzed by SonarQube. 2017-06-09T15:50:41.9993583Z ##\[error\]No analysable projects were found but some duplicate project IDs were found. Possible cause: you are building multiple configurations (e.g. DEBUG|x86 and RELEASE|x64) at the same time, which is not supported by the SonarQube integration. Please build and analyse each configuration individually. Generation of the sonar-properties file failed. Unable to complete SonarQube analysis. Turns out the issue was that even though my CI build was only set to create an x86|Debug build the act of creating the .APPX package was causing both x64 and ARM builds to be build too, this was too much for SonarQube as it though I had a multiplatform build.. ...

June 9, 2017 · 2 min · Richard Fennell

Book your free place at a Global DevOps Bootcamp venue for the 17th June 2017 event

Are you enthused by the all news at Build 2017? Do you want to find out more about VSTS, DevOps and Continuous Delivery? Well why not take the chance to join us on June 17th at Black Marble, or one of the over 25 other venues around the world for the first Global DevOps Bootcamp? The Global DevOps Bootcamp is a free one-day event hosted by local passionate DevOps communities around the globe. Find your local venue on the Global DevOps Bootcamp website or search for Global DevOps Bootcamp on EventBrite ...

May 11, 2017 · 1 min · Richard Fennell

Debugging Typescript in Visual Studio Code

This is one of those posts I do as a reminder to myself. I have struggled to get debugging working in VSCode for Typescript files. If I set breakpoints in the underlying generated JavaScript they worked, but did not work if they were set in the Typescript source file. There are loads of walkthroughs and answers on Stackoverflow, but all with that vital little bit (for me) missing. So this is what I needed to do for my usage scenario… ...

May 4, 2017 · 2 min · Richard Fennell

Two new tasks in my Manifest Version VSTS Extension

I have just released a new version of my VSTS Manifest Version Extension (1.5.22). This adds two new tasks to the set of versioning tasks in the extension. The complete set now is VersionAssemblies - sets the version in the assemblyinfo.cs or .vb (used pre build) VersionDotNetCoreAssemblies - sets the version in the *.csproj (used pre build) - cross platform VersionAPPX - sets the version in the Package.appxmanifest (used pre build) VersionVSIX - sets the version in the source.extension.vsixmanifest (used pre build) VersionDacpac - sets the version in a SQL DACPAC (used post build) VersionNuspec - sets the version in a Nuget Nuspec file (used pre packing) VersionSharePoint - sets the version in a SharePoint 2013/2016/O365 Add-In VersionWix - sets the version in a Wix Project As with all the other tasks, these new tasks aim to find files recursively to update with a version number extracted from the build number ...

May 2, 2017 · 2 min · Richard Fennell

401.1 Permission error with on-premises TFS when accessing the API with a PAT

Background If you are creating VSTS build extensions you will need to get the build or release’s PAT token if you wish to call the VSTS REST API. This is done using a call like this (Node) import tl = require('vsts-task-lib/task'); var auth = tl.getEndpointAuthorization('SYSTEMVSSCONNECTION', false); if (auth.scheme === 'OAuth') { var token = auth.parameters\['AccessToken'\]; or (PowerShell) $vssEndPoint = Get-ServiceEndPoint -Name "SystemVssConnection" -Context $distributedTaskContext $personalAccessToken = $vssEndpoint.Authorization.Parameters.AccessToken You pop the resultant PAT into the headers of your REST web request and you are away and running. ...

April 29, 2017 · 2 min · Richard Fennell

Rik and my ‘Living the Dream - real world DevOps’ session available on YouTube

Rik Hepworth and myself have been doing our ‘Living the Dream – Real world DevOps with VSTS and ARM’ at a good few events over the past few months. We now, at last, have a recording of a version of it up on Black Marble YouTube Channel’s DevOps Playlist Enjoy….

April 28, 2017 · 1 min · Richard Fennell

Still spaces available for the Leeds venue of the Global DevOps Bootcamp

There are still spaces available at the Black Marble hosted venue for the Global DevOps Bootcamp on the 17th of June If you are interested register here

April 25, 2017 · 1 min · Richard Fennell

Presenting at an event in Leeds - Making it easy to migrate your ALM process to the Cloud

Do you find your TFS server gets forgotten? It is not owned by the IT department and the Development team don’t have the time to support it fully, it never gets patched or upgrades? Or maybe you are adopting a cloud first strategy for all you systems? Well maybe it is time to consider moving your on-premises TFS instance to VSTS? On the 9th of May at the Crowne Plaza Hotel in Leeds I will be presenting at a Black Marble /Microsoft event where we will be looking at Microsoft’s new high fidelity VSTS database import tools that can be used to move a TFS instance to VSTS. ...

April 25, 2017 · 1 min · Richard Fennell