Why we broke generator-vsts-ext and created generator-team-services-extension

If you were excited by Generate Team Services extension starter kit with the Yeoman generator VSTS-EXT and have downloaded the generator artefacts, you should read on.

I’m sorry for any inconvenience we’ve caused with the recent hotfixes. We’re dog fooding our own solutions and we feel your frustration! We’re intentionally release gap-fillers as quickly as possible, deliver value, get actionable feedback, and react with a more valuable solution. 

Reasons for the flurry of hotfixes

You can peek at aka.ms/vsarreleases for a detailed list of changes included in each hotfix release.

  • Release 1.0.15 (hotfix 1) contained tons of changes. We actioned a lot of your feedback, primarily in terms of simplifying and aligning the generated codebase with best practices.
  • Release 1.0.20 (hotfix 2) contained a lot less changes, but broke the generator-vsts-ext solution.


Hotfix 2 was based on a seemingly small feedback from our product owner: “I have two suggestions on naming/consistency. The ship may have already sailed on this … but, it’s worth exploring if it hasn’t”.


Looking at the Yeoman directory, the naming pattern for generators, repos, and their NPM package is generally:

foo // name of the generator

generator-foo // name of the repo on GitHub

generator-foo // name of the NPM package

Ours was:

vsts-ext // name of the generator

Yeoman-extension-code-generator // name of the repo on GitHub

generator-vsts-ext // name of the package

Ours is now:

team-services-extension // name of the generator *BREAK*

generator-team-services-extension // name of the repo on GitHub

generator-team-services-extension // name of the package *BREAK*

But why image

  • It’s now more obvious from the repo name that this generator is for Team Services extensions
  • Spelling out vsts to Team Services made the names a lot clearer
  • We’re now consistent with the other generators

Will we make further breaking changes?

We reflect and learn from these breaking changes, with a vision of reducing impact, but maximising value of our gap-filling solutions. While I feel obliged to say sorry to users who were impacted, I must congratulate and thank the team for driving innovation, reflecting, and delivering value at an increasingly quicker cadence.

In terms of the new generator-team-services-extensions we’re not expecting any more breaking changes, but tons of innovation.


How could we do this better?

We need your feedback! Here are some ways to connect with us:

  • Add a comment below
  • Ping us on twitter image