chocolatey goodness: from fringe to mainstream #dotnetfringe

Post on 17-Jul-2015

625 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 }

top related