Microsoft's Andrew Clinick, a group program manager in the Windows team who is involved with the development of the WinGet package manager, has tried to make good with the open-source community by publishing an acknowledgement of what was borrowed from the existing AppGet project.
A preview of WinGet was released by Microsoft during the recent virtual Build event, prompting the developer of AppGet, Keivan Beigi, to post about how he was approached by Microsoft in July 2019, supposedly to offer him help with development. He said he was questioned by the vendor in detail about his package management ideas, invited to apply for a job with Microsoft to work on an official version of AppGet, and then heard nothing until the moment before WinGet was launched.
Embrace and kill? AppGet dev claims Microsoft reeled him in with talk of help and a job – then released remarkably similar package managerREAD MORE
WinGet uses different code from AppGet, but is based on some of the same ideas about how a Windows package manager should work. Beigi was shocked first because his contribution was not acknowledged and second because he believed it made his own project immediately obsolete, and he has now closed it down. His bad experience with Microsoft's recruitment process was incidental.
Evidence indicates that the "Embrace, Extend, Extinguish" Microsoft remains alive and well, despite initiatives like the .NET Foundation, which oversees the open-source .NET technologies, or building the Linux kernel into Windows, or the company joining the Open Invention Network to "protect Linux and other important open source workloads".
When the story broke last week, the first reaction of Microsoft's PR machine was to treat it solely as a recruitment matter. "We regret to hear about this candidate's experience and are reviewing the circumstances internally," a spokesperson told us. This was missing the point, but now Clinick's post, optimistically entitled "winget install learning", goes some way towards setting the record straight.
"There are a number of qualities in AppGet that really helped us get to a better product direction for WinGet," said Clinick, identifying four features: scriptless installs, rich manifests, support for all types of Windows installers, and the application update mechanism.
In a separate discussion on GitHub, Clinick promised "an upcoming update to the readme.md on the main repo to provide credit" to Beigi. In the same thread, Clinick apologised for "how we handled the communication during the interview process."
Note that despite the impact on his own project, Beigi is not demanding anything beyond acknowledgement. "I just wanted us Windows users to have a great package manager like Homebrew or apt-get etc. And realistically there is a higher chance we'll have a more successful one (might not be necessary ideal) under Microsoft's name than AppGet," he said.
We can believe Clinick when he said that "the last thing that we want to do is alienate anyone." That said, Clinick's account falls short of a compete explanation of why Microsoft approached Beigi. If this was primarily to learn from his package management experience, why was it dressed up as an offer of help and then employment? Further, if the team was aware of the strong influence of AppGet on the WinGet design, what was the reason for barely mentioning it in the original launch post, which highlights Chocolatey, Scoop and Ninite above AppGet?
Also notable is that Clinick makes no mention of how Microsoft's actions resulted in the AppGet project being terminated. "We will be open sourcing our service code into our our WinGet repository on GitHub so that we can work together with Keivan and others," he wrote, as if that makes everything OK.
Questions remain then, but at least the company has acknowledged Beigi's contribution.®