Last week, Microsoft released its new Windows Package Manager, called WinGet. But as it turns out, they stole it: Keivan Beigi, the creator of a popular package manager called AppGet, describes how Microsoft wooed him last year and discussed employing him, only to later ghost him and release WinGet, which he says is basically identical to AppGet.
As a result, Beigi is killing AppGet.
“Microsoft released WinGet (Not to be mistaken with AppGet) earlier this week as part of their Build 2020 announcements,” he writes. “I’m no longer going to be developing AppGet. The client and backend services will go into maintenance mode immediately until August 1, 2020, at which point they’ll be shut down permanently.”
Here’s what he says happened.
In July 2019, Microsoft contacted him to discuss AppGet and package managers in person, and that meeting finally took place in August. He told Microsoft about the ideas behind AppGet, what he thought was broken about package managers in Windows, and what he planned for the future of AppGet.
After the meeting, Microsoft discussed the possibility of Beigi coming to work for the software giant.
“My team is … looking to make some significant changes to the way that we enable software distribution on Windows and there’s a great opportunity … to help define the future of Windows and app distribution throughout Azure/Microsoft 365,” an email from Microsoft explains. “With that in mind have you considered spending more time dedicated to appget and potentially at Microsoft?”
After a bit of discussion, Beigi agreed to what he called an “acqui-hire” where Microsoft would hire him and pay him to keep working on AppGet, and Microsoft would decide whether it wanted to rename the product.
Months passed. Beigi was told that the hiring process would take “a very long time” and Microsoft offered to “to speed up the process [and] just to hire [Beigi] with a ‘bonus’ and then work on migrating the code ownership after the fact.” He agreed.
Beigi interviewed at Microsoft all day on December 5, meeting with four different people. He thought it went well.
“And then, I didn’t hear anything back from anyone at Microsoft for six months,” he writes. Six. Months.
On the eve of Build 2020, Beigi finally did hear back, however. And Microsoft had some bad news.
“I’m sorry that the [Program Manager] position didn’t work out,” the email reads. “I wanted to take the time to tell you how much we appreciated your input and insights. We have been building the Windows Package Manager and the first preview will go live tomorrow at Build. We give AppGet a call out in our blog post too since we believe there will be space for different package managers on windows. You will see our package manager is based on GitHub too but obviously with our own implementation etc. Our package manager will be open source too so obviously we would welcome any contribution from you.”
Beigi wasn’t all that surprised by this given the six months of silence. But when he examined the WinGet repositories on GitHub, he was surprised to see that it was just a copy of AppGet, but called WinGet.
“The core mechanics, terminology, the manifest format and structure, even the package repository’s folder structure, are very inspired by AppGet,” he writes. “The part that hurts the most was the announcement. AppGet, which is objectively where most ideas for WinGet came from, was only mentioned as another package manager that just happened to exist; While other package managers that WinGet shares very little with were mentioned and explained much more deliberately … Do you want to know how Microsoft WinGet works? go read the article I wrote 2 years ago about how AppGet works.”
This is a stunning f$%^ you from Microsoft, not just to Beigi, but to the open-source community.
And it comes at a bizarre time in which the software giant isn’t just embracing open source but appears to be subsumed by it. This isn’t 1992 when this kind of behavior was common at Microsoft, and it led to sweeping antitrust charges in the late 1990s. It’s 2020. This should never happen now. Never.
I can’t explain this behavior. But I hope whoever he interacted with at Microsoft—he lists the name only as “Andrew,” and/or whoever OK’ed this behavior and strategy is summarily fired. This is inexcusable.
OK, Microsoft. It’s your turn. Respond. Set this right.