Announcement: Hello Project "Asp" · dotnet/aspnet-api-versioning · Discussion #807 (original) (raw)
This project started as a thought experiment about how take the ideas behind versioning a service, specifically RESTful
services, and implement them in a practical way. The API versioning principles and concepts weren't really anything new, but
applying them in a generic way had yet to be done. It took about 2 years of development and feedback with several projects at
Microsoft, but eventually a generic pattern and foundling framework emerged. 6 years ago I took that foundation to the
open source community in order to evolve the framework and, honestly, for my own selfish use for service projects outside
of Microsoft. It was beyond my wildest imagination that the project would be noticed or become as popular as it has.
The decision to release the project under the Microsoft organization on GitHub was primarily to follow company open source
policy. Despite the common misconception, I am not, nor have ever been, a part of the ASP.NET team. I have established a
report with various team members over the years which I continue to maintain, but nothing more ever came of it. This project
has never had any type of official company sponsorship or funding. Although there been a few external contributions and
design collaborations, I've mostly run this project as a one-man army.
2021 came with a bunch of changes and after 14 years, I decided to leave Microsoft. As the solitary steward of the project,
that left the state of affairs a in predicament. While I attempted to usher a smooth transition of the project and keep it
afloat, there were a number of challenges in doing so. It took several months, but it was ultimately decided that the best
course of action was to move the project out of the Microsoft organization and into the .NET Foundation. Look for this
formal announcement in the .NET Foundation news soon.
This is all well and good. You may have noticed that the repo is already under the .NET Foundation organization, even
though it isn't listed as a project. A couple of other issues have arisen. First and foremost, the project name
and NuGet packages all indicate that they are owned or managed by Microsoft. Since I was the team and there is no longer
any official Microsoft oversight, that has to change. I thought about just forking the repo and starting anew, but I came
to the conclusion that it would be too confusing for the community that has been built. Hence forth, the project will be known
as "Asp", but still retain the ASP.NET API Versioning nomenclature.
The second issue is the NuGet package identifiers. It was suggested that I just send out an advisory that the identifiers
would change and leave them behind. After 100 million downloads, I found that to be an unacceptable answer. It took many months
to track down the appropriate NuGet stakeholders to begin the process, but the package identifiers have now been transferred
to the api-versioning-team with dotnetfoundation as a co-owner. If you've wondered why you haven't seen any packages
published in a long time, that's why. Now that I have some level of control over the packages again, updates can resume
once more. There are some limitations though. Any expansion of features in new packages would not be able to continue to
be published under the Microsoft.*
prefix. Given this restriction and the previous possibility I might not have ever regained control
of the packages, I have already begun work in the next major release that will start using the Asp.Versioning.*
prefix without
any reference to Microsoft. The README.md
and repo will provide information indicating this transition. The existing packages
for v5.x
will continue limited servicing for existing issues before the long-term switch to the new packages.
I have no doubt that this transition will result in some level of confusion and disruption. I hope that this announcement will
provide some level of clarity as to the how and why it is happening. I'm really proud and honored to be a part of the
community that has been built around API Versioning, which is a big part of why I'm invested in continuing to actively support
it. It has also been many years since the project started and if there is to be a big disturbance now is the time to rip off
the proverbial band aid. The details of all these changes will be outlined in the v6.0
roadmap discussion.
Thank you to all that have supported and advocated for the project over the years.