Yesterday afternoon, we enabled a new feature for both the NuGet gallery and the Visual Studio client (for NuGet >= 2.7) which will display the list of license names for a package in addition to simply providing a link to the license text. The big idea behind this feature is that it will aid in the decision making process over whether or not to use a package.
While displaying text such as “MIT” may seem like a trivial problem, there is a significant amount of complexity involved in determining the name from a license document. In this feature, license names are determined as a result of analyzing the license text itself.
For this analysis, NuGet has partnered with Sonatype and leveraged the power of their component lifecycle management (CLM) system. You may remember that in early 2012, Sonatype began enabling polyglot development shops to manage both their Java and .NET components with one repository when they included NuGet support in their Nexus repository. As such, when Sonatype released CLM, it seemed only natural that we leverage our partnership to bring some of the power of that system to the NuGet community.
While there’s a lot happening behind the scenes, browsing license names shows up in some pretty simple ways in the NuGet clients.
On the gallery, you can see license names in search results or package listings:
Or on an individual package details page:
In Visual Studio, the license name shows up just beneath the existing license link:
In the event that a license URL was not provided in the source package, or if the license could not be determined, no license name will be displayed. Finally, as the owner of a package, the NuGet gallery provides control over whether or not the analyzed license information should be displayed to users.
We plan to continue exploring ways that we can reduce friction around package selection by incorporating more of these kinds of “package intelligence” capabilities into the NuGet client and server. If you have a specific scenario that you think would be helpful here, let us know!