Microsoft finally gives credit to AppGet for inspiring its WinGet package manager
When Microsoft launched its Linux-style package manager WinGet, there were immediate comparison to the rival tool AppGet. While AppGet is an open source project, developer Keivan Beigi was unhappy that Microsoft had essentially copied much of his work, and failed to give him credit.
His accusations were not without basis, as he had met with a Microsoft manager to discuss "how we can make your life easier building appget". Now Microsoft has conceded that it did not credit the influence and work of Beigi, and has taken steps to remedy this.
- How to use Windows Package Manager to streamline and automate app installation
- Microsoft launches Linux-style Windows Package Manager Preview
- How to force your computer to download the Windows 10 May 2020 Update
When WinGet was released last week, Beigi wrote online about how this meant that AppGet was now dead. He also explained how he had been contact by Microsoft because of interest in his work, but after various discussions and meetings, no job was forthcoming. Beigi was shocked, however, when AppGet rival WinGet appeared.
He was surprised to see that "the core mechanics, terminology, the manifest format and structure, even the package repository’s folder structure, are very inspired by AppGet". He went on to say:
But 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.
He also notes:
I'm not even upset they copied me. To me, that's a validation of how sound my idea was. What upsets me is how no credit was given.
But Microsoft knows it was in the wrong. A group program manager from the company, Andrew Clinick, has now published a post in which he admits failing to credit Beigi:
Last week we announced a package manager preview for Windows. Our goal is to provide a great product to our customers and community where everyone can contribute and receive recognition. The last thing that we want to do is alienate anyone in the process. That is why we are building it on GitHub in the open where everyone can contribute. Over the past couple of days we've listened and learned from our community and clearly we did not live up to this goal. More specifically, we failed to live up to this with Keivan and AppGet. This was the last thing that we wanted.
The desire to use GitHub as the basis for our package manager germinated as a way to lean into how developers are building their apps. GitHub allows us to have an open repository and a way to integrate with DevOps pipelines for app publishing etc.
This GitHub based approach led us to AppGet and Keivan. We talked with Keivan last summer about potential opportunities to work together to deliver the Windows Package Manager. During those conversations we were impressed with Keivan's insights into the package management world on Windows and with his desire for there to be a great package management experience on Windows.
There are a number of qualities in AppGet that really helped us get to a better product direction for WinGet:
- No scripts during install – something that we completely agreed with and don’t allow with MSIX
- Rich manifest definition within GitHub – the power of being open combined with rich declarative meta data about the app is so important to meet goal #1
- Support all types of Windows applications installers
- Seamless updates for applications in the repository
I want to take this opportunity to thank Keivan for his thoughtful approach to AppGet and working with us. 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 to enable a better WinGet repository listing service.