February 11th, 2021

Announcing Microsoft Teams App Generator (Yo Teams) version 3

We’re excited to release version 3.0 of the Microsoft Teams Apps generator – Yo Teams. It is over three years since version 2 was released and the Microsoft Teams platform has grown tremendously and the generator kept adding new features in the same structure and shape as when we only could create custom Tabs. So this release has been long overdue, but also carefully considered based on feedback and discussions in the community.

Yo Teams is used by developers from all the corners of the world and more than one new Microsoft Teams app is generated every hour. Thank you!

yo teams in Yeoman generator

What’s new

While there are plenty of great updates, which we will get back to shortly, there are two that are more significant than others.

Major updates

First of all we’ve made changes in how the scaffolded project is structured. Previous version was targeted for smaller solutions, and as mentioned starting with just Tabs, the reality is that full-scale solutions are built out using the generator requiring a better way to manage files and folders and to separate the client-side and server-side concerns better, and adopting a more common approach used by other open source solutions. The new folder structure also allows for better management of separate TypeScript, testing and linting based on your server and client-side requirements.

The new folder structure in Yo Teams v3

The second big change is that the default Gulp tasks are now moved into a separate and independent npm package, instead of all being in the gulp file for developers to maintain. This new package is called yoteams-build-core. This package allows for updates to the build system without either manual updates by the developers and/or complex update code in the generator. As a developer you still have full control of your packaging, through webpack, and you can still add custom Gulp tasks or even override the existing ones. The previous build system required updates to the scaffolded projects as soon as a new Teams schema was published or other features in the generator was added/changed.

And even more updates

Those were the two big updates, and what took most of the time and testing in creating this new version. But, we did of course not stop there and added quite a few quality of dev improvements.

Due to the growth of the Teams platform and the generator the number of questions asked when scaffolding a project became to much if you needed something up and running fast. We’ve added a new question called Quick scaffolding which allows you to, by default, get a simple set of questions. If you want all the advanced features you just opt-out of this new option.

We did already in version 2.17.1 introduce functional components over the old class based React implementation, and in this new release we’ve cleaned up the code even further and fixed some bugs discovered since that version.

And here are some other highlights:

  • Upgraded to ESLint from, the now deprecated, TSLint
  • Updated a few dependencies due to known vulnerabilities
  • Upgraded to Teams JS SDK 1.9
  • Added support for, upcoming, Microsoft Teams Schema 1.9
  • Made webpack configuration more slim and generic
  • …and the regular set of bug fixes

What’s gone?

Due to the major refactoring of the scaffolded project the generator does not any longer support being run again over a project that was created with earlier versions. We’ve also removed support for all Teams schemas earlier than 1.8. We have also removed a set of files related to publishing directly to Azure using Git.

What’s next?

The next release to come, shortly, will be a maintenance release, with updated documentation – these things can always get better. And things always get even better when the community is helping. So, here’s an opportunity for all the community – help with documentation and samples is greatly appreciated. Your contributions to the Microsoft Teams sample gallery build with yo teams would be more than welcome to help also others in the community.

We’re also planning on optimizing the build tasks for even better build performance. And now thanks to this independent build package this will be a seamless effort and upgrade for everyone using Yo Teams.

There’s also still quite a few, really great, suggestions in our Github issues list that we do want to make a reality. What would you like to see and what are you missing in the generator? How can we make creation of Microsoft Teams solutions easier for you? Let us know!

We’re also working together with the Teams Toolkit team to make the best developer tools out there for all flavors and minds!

“Sharing is caring!”


Microsoft 365 Patterns and Practices Team – 11th of February 2021

Author

We coordinate the Microsoft 365 Patterns and Practices (PnP) open-source and community activities.