March 7, 2022

Why Use the Puppet VS Code Extension?

Ecosystems & Integrations
Community & Open Source

It's time to move the Puppet VS Code extension to a home in the Puppet namespace in GitHub and in the VS Code Marketplace.

Table of Contents

The Puppet VS Code Story

The Puppet VS Code extension has been an open source project run with the community since inception in 2017, where it has been housed in the Lingua Pupuli organization in GitHub and in the VS Code Marketplace. The extension was started, and has succeeded, as a place to prove that an integrated developer experience was possible with Visual Studio Code and Puppet tooling.

Since it was proving new ground, it moved fast and had many experimental features. The main developers, James Pogran and Glenn Sarti, have determined that the extension is nearly ready for a 1.0 stable release. With that in mind, we thought it time to move the extension to a home in the Puppet namespace in GitHub and in the VS Code Marketplace.

Since 2017, we’ve added several features to the extension:

  • Syntax highlighting
  • Intellisense
  • Code navigation
  • Code formatting
  • Error checking and linting as-you-type

In the last year we have released 9 times with 22 major features, covering 106 issues and 167 pull requests. Here are a few of those newer features:

  • Automatic hash rocket alignment ← #1 most requested feature!
  • Automatic detection of PDK/Agent location and version
  • Microsoft Remote Container Extension support
  • Puppetfile resolver and validator

Plus, there’s a new feature we just added for the new extension. (More on that later.)

Who Uses the Puppet VS Code Extension?

People all over the world use the extension — from the United States to China, Ukraine, India, Ghana, Belgium, and the Dominican Republic. And they’re not using it just for Windows (that’s a common misconception) but for Linux and FreeBSD as well. Currently there are over 10,000 total active users for the last 30 days and on average there are 1,400 active users a day.

What Does the Move Mean?

All of the GitHub repos for the Puppet VS Code extension will be transferred from the Lingua Pupuli GitHub Organization to the Puppet GitHub Organization. The repository links will automatically forward and all documentation will be updated with the new links. For the most part, this move will be transparent to users of the extension.

The VS Code Marketplace does not transfer extensions between publishers, so a new extension will be made under the Puppet namespace. This means the existing extension jpogran.puppet-vscode will no longer be maintained after the transition and will be eventually deprecated in the marketplace, but will stick around for a while to aid the transition. The new extension puppet.puppet-vscode will be maintained and will receive all new features going forward.

How Do I Use the New Extension?

The new extension will live at the Puppet VS Code Marketplace. In order to use the new extension, you can install it using the normal installation methods: the Extension Manager in VS Code, the VS Code command line, or any of the other methods of installing VS Code extensions. Once you have added the new extension, it is safe to remove the jpogran.puppet-vscode extension.

What's New in the Extension?

While we worked on the transition we did include a new feature for the Puppet VS Code extension: a visualization update to the Puppet Node Graph Visualizer.

A visualization update to the Puppet Node Graph Visualizer.

We replaced the old visualization library with cytoscape.js. While this is a one-for-one replacement of the existing Node Graph feature, cytoscape.js is a powerful data visualization library that will allow us to make some useful visualizations of code in the future. Keep an eye on the next releases for more on this feature.

If you have any feedback on the extension, we’d love to hear it. Please let us know in the #office-hours or #puppet-dev channel in the Puppet Community Slack or by creating an issue in the Puppet VS Code GitHub repo.

James Pogran is a senior software engineer at Puppet, focusing on making Windows automation even better with Puppet. He wrote a book called Learning PowerShell DSC, which is in its second edition. James co-authored the Puppet Visual Studio Code extension, and contributes to several OSS projects on GitHub. 

Visit the Puppet Forge


Learn More