![Page 1: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/1.jpg)
Developing a Community and
Ecosystem with NuGet Phil Haack, Jeff Handley, Howard Dierking
![Page 2: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/2.jpg)
How did we get here?
![Page 3: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/3.jpg)
![Page 4: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/4.jpg)
![Page 5: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/5.jpg)
![Page 6: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/6.jpg)
![Page 7: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/7.jpg)
NPack
![Page 8: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/8.jpg)
NuPack
![Page 9: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/9.jpg)
Nuget
![Page 10: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/10.jpg)
![Page 11: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/11.jpg)
![Page 12: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/12.jpg)
The Core Team
• Funded by Microso; • 13 People
• 6 developers • 4 testers • 3 overhead (Howard, Jeff, Ranjini)
![Page 13: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/13.jpg)
The Scope of NuGet
• NuGet client • NuGet.Core • Visual Studio add in – runs in VS 2010, VS 2012, and beyond
• nuget.exe • WebMatrix client
• NuGet Gallery • Gallery applicaRon code • hSp://nuget.org operaRons
• NuGet docs (hSp://docs.nuget.org) • NuGet blog (hSp://blog.nuget.org)
![Page 14: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/14.jpg)
Some Numbers
![Page 15: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/15.jpg)
Usage
• ConsumpRon • 4,648,997 Visual Studio client downloads (4.5/5 stars)
• 270,877 downloads of NuGet 2.5 (released 13 days ago) • 68,093,144 package downloads
• Package authoring • 12,566 unique packages • 94,070 total packages
hSp://nuget.org
![Page 16: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/16.jpg)
NuGet Client (http://nuget.codeplex.com)
• 3,570 commits • 95 contributors • 61,086 LOC • Stable YOY commit rate • 48 contributors in the last 12 months (+26% YOY) • 4 new contributors in the last 30 days
hSp://www.ohloh.net/p/nuget
![Page 17: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/17.jpg)
NuGet Gallery (https://github.com/nuget/nugetgallery)
• 1,314 commits • 27 contributors • 51,768 LOC • Stable YOY commit rate • 18 contributors in the last 12 months (+20% YOY)
hSp://www.ohloh.net/p/nugetgallery
![Page 18: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/18.jpg)
NuGet Docs (https://github.com/nuget/nugetdocs)
• 524 commits • 62 contributors • Decreasing YOY commit rate • 3 new contributors in the last 30 days • 32 contributors in the last 12 months (-‐15% YOY)
hSp://www.ohloh.net/p/nugetdocs
![Page 19: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/19.jpg)
NuGet Docs (https://github.com/nuget/nugetdocs)
• 524 commits • 62 contributors • Decreasing YOY commit rate • 3 new contributors in the last 30 days • 32 contributors in the last 12 months (-‐15% YOY)
hSp://www.ohloh.net/p/nugetdocs
This _might_ be related
![Page 20: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/20.jpg)
Day to Day
![Page 21: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/21.jpg)
We’ve Learned a few things
• With Visual Studio 2012, NuGet shipped "in the box" with every SKU of Visual Studio
• Shipping in Visual Studio added some overhead
• This shi;ed focus onto the NuGet client at the expense of the gallery
• This reduced community engagement
• Not surprisingly, contribuRons decreased
“ask mode”
“tell mode”
“escrow”
“tenets”
“SDL”
“PoliCheck” “ZBB”
“ZRB” “APIScan”
“RI” “FI”
![Page 22: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/22.jpg)
Lessons Learned • A more balanced focus between client and server
• Make it easy and worthwhile to engage
• Recognize contributors
• Split the core team into 2 crews: client and gallery
• Updated and publicized our triage process
• Created “up for grabs”
• Added acknowledgements.txt to source
• Recognize contributors in release notes
![Page 23: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/23.jpg)
Updated triage
![Page 24: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/24.jpg)
These have produced positive results
NuGet Client
NuGet Gallery
![Page 25: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/25.jpg)
Planning
![Page 26: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/26.jpg)
We have more to learn here..
• 2 inputs to planning • A roadmap that originates from the core team – generally ~12mo into the future
• Ideas and issues that are submiSed to the project sites • Sorted based on votes
![Page 27: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/27.jpg)
Planning Challenges
• Engaging with the community on the roadmap • Balancing the smaller enhancements and fixes with the larger roadmap items
• 757 open issues for NuGet client • 164 open issues for NuGet gallery
• Guarding against “death by success”
![Page 28: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/28.jpg)
Improving our planning
• Develop specificaRons in the open • Document project governance model • Create a community-‐driven governance board • Schedule weekly calls, hangouts, etc.
![Page 29: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/29.jpg)
“Are we there yet?”
![Page 30: Developing a Community and an Ecosystem with NuGet](https://reader034.vdocument.in/reader034/viewer/2022042815/5563846fd8b42a20358b510e/html5/thumbnails/30.jpg)
TODO: a few examples • API v3 • Social IntegraRon • Discovery/Search • Trust • Enterprise – companies, not just their developers, 'get' package management
• Global package installaRon (machine-‐level: e.g. npm -‐g Foo) • Deeper VS integraRon • Package creaRon -‐ NuGet packages are the natural product of build and the natural unit of reference
• Community-‐moderated gallery