Upload
rob-reynolds
View
624
Download
2
Tags:
Embed Size (px)
Citation preview
Chocolatey Goodness : From Fringe To MainstreamRob ReynoldsSenior Software Engineer | Puppet Labs@ferventcoder
Rob Reynolds• Developer at Puppet Labs• Creator of Chocolatey• All around nice guy• Making your Windows world
a better place for automation• .NET MVP (whatever that means)
Agenda• What Is It?• How Did Choco Begin?• Fringe / Success / Mainstream• “Fringe-y” Demos on Creating
Packages & Hosting Your Own Package Server
Is there anyone in the room that doesn’t know of Chocolatey?
Anyone? Bueller? Bueller?
Package Manager for Windows• Behaves much like yum• Microsoft validated• Technologies: PowerShell
+ NuGet packaging framework• Does not violate distribution
rights
Chocolatey
chocolatey.org• Community feed• Community maintained• Trust issues?• Recommendation: A
business should run
their own internal feed12 Million Downloads!
How Did Chocolatey Begin?
It started as a thought experiment.
Seriously, did you ever look at the source?!
What I Wanted in 2011
• Pairing / troubleshooting experience - No Notepad++?
• Experience with silent installers
• Existing?
• How to globalize?
Experiment in March 2011
• Building onto NuGet
• Packages tagged “chocolatey” on nuget.org (until Sep 2011)
• Concepts of KISS packaging
• Building on an existing ecosystem
• Focus on UX
The Experiment Was Built In PowerShell• PowerShell?!
• Built with PowerShell as a programming language
• Always felt like I was relearning it
There were some good parts• Added Mocking to Pester
• Defined some ideas of semi-maintainable PowerShell source code
• I learned PowerShell this time for real. Maybe.
And… Community• Somewhere along the line came the community
• Design or Sheer Luck?
• Maybe it was the semi-okay Documentation?
• 1. Gnomes. 2. ??? 3. Profit!
Microsoft Got Involved• Validated the idea
• Adding/added OneGet or whatever it’s called today to Windows 10.
• Chocolatey is semi-builtin to next version of Windows!
That Seems Successful• Microsoft Involvement, Sort of Getting Into
Windows
• Except POSH code…
• …and not meeting user wants and needs
Long Overdue Rewrite• Started around March 2014.
• C# - b/c I already learned about writing production code in a language I didn’t know that well.
• But addressing longer term existence of choco?
Kickstarter • Started planning in June, live in October
Kickstarter • Over 1,000 folks said yes!
• Overfunded by 25%
• We made changes over the Kickstarter
Now What?
Where Is Choco Going? • Enhance packaging - NVRA
• Try to keep KISS while adding more complex scenarios
• Package signing (GPG)
• Pro Version - Kickstarter Enhancements (Stability / Virus Checking)
Host Your Own Chocolatey Package Server
Host Chocolatey Packages• Now it’s easy to set up
your own package feed• Make it custom/internal for
business purposes.• chocolatey.server package
• Beta• Simple server
Creating Packages
packagename.nuspec• This is a nuget
packaging specification
• Later: choco adding infrastructure, os versions, etc
chocolateyInstall.ps1• Helpers / Functions• Reduce work• PowerShell, you
can do anything
• Function reference http://bit.ly/chocolateyfunctionreference
Create Packages Visually• Nuget Package Explorer
(choco install nugetpackageexplorer)
• Ignore its warnings, it is geared towards NuGet proper
• NO content folder
Demo
Questions?• Join the newsletter for announcements -
https://chocolatey.org/#newsletter • ferventcoder { twitter, github, gmail }