Free Pack
Download BuildMaster Free Trial

It's Not a Bug – It's a Feature (or Can Be)

by The Inedo Team, on Oct 13, 2020 8:28:17 PM

ProGet problems? BuildMaster bugs? If you’ve spotted a problem, we’re are always standing by to answer support tickets and to contribute to Inedo Forums, usually within just a few hours.

We've designed our products to be great, but we're not all-knowing. There are plenty of times we get tickets that turn out not to be bugs but actually unexpected uses for the tool. Sometimes the solution to your "bug" is our next feature.

Want proof? Here's the story of how one user’s idea led to a new feature in ProGet 5.3 called package consumers.

The Bug: Slow Package Deployments

A longtime ProGet user, DevOps Engineer Fabrice Mejean, noticed that the “package deployments” page was running really slowly and delaying his team’s work, so he submitted a ticket.

This raised a lot of eyebrows on our end. There’s no good reason that specific page should run slowly. Upon further inspection, it was obvious what was wrong. They had thousands of deployment records per package version.

We never designed that page for thousands of records, just a handful. Why would anyone deploy a single package version thousands of times? Something seemed off.

Fabrice explained that it wasn’t for deployments per se, but to see what applications are using their different NuGet libraries. In other words, it was a sort of “reverse dependency” tracking.

At the time, ProGet had no way to track which of your applications consume which DLL packages (like NuGet, npm, PyPi), so Fabrice thought to use package deployments feature instead. And that’s what was causing ProGet to go incredibly slow.

The Feature: Package Consumers

Fabrice’s team was using the package deployments feature “wrong” but for a good reason. Like Fabrice, you use our tools every day, so we expect you’ll find unexpected ways to use them and places to improve. And unlike other companies, we want to work with you to make our tools better, fast.

We love spending our time coding as much as you do. Who doesn’t love the challenge of creating new functionality to fix an issue? That’s why our engineers answer your tickets, not less-skilled, first-tier support staff.

We worked closely with Fabrice to understand how they were tracking these reverse dependencies, and we threw together a low-risk, “stealth” feature (PG-1595), just for him. We worked together to develop a basic console application (now pgscan) to extract dependencies from PyPi, non, and .NET projects to populate the data in ProGet.

Once we were all confident the feature was ready for our general userbase, we gave the feature a name (package consumers), documented it, and released it to the public in ProGet 5.3.

Turn Your Bugs into Features

All of this is part of our open culture. We know our users are some of our most creative Inedo experts, and we like hearing how you’d change our tools.

How are you using our tools in "unexpected" ways? You might just be behind our next feature.

Submit Your Feature Request

Fabrice’s story is far from unique. Check out our case study with Symbotic, who helped use create ProGet’s Helm chart integration.

Topics:ProGetNuGetCustomer Service

Related Posts

About Inedo

Inedo is a software product company bringing you the "tech behind the tech."

Makers of Windows-first, enterprise DevOps tools BuildMaster CI/CD, ProGet private package management, and Otter IaC. Maximize developer time, minimize release risk, and empower stakeholders to bring their vision to life faster, all with the people and technology you have right now.

Follow us on social media

Follow Inedo on YouTube Follow Inedo on Facebook Follow Inedo Twitter New call-to-action

Free e-books

Free PowerShell Book NuGet for the Enterprise Guide Jenkins CICD Guide Free CICD Book Free dotnet book free IaC book