OneGet and Chocolatey - What's the connection?


With all the writing about OneGet that everyone's been doing lately, I thought it might be a good time to explain exactly what OneGet and Chocolatey's relationship is.

When we built the OneGet prototype that first shipped with the WMF 5.0 preview last April, the only provider that was even around was the hastily-written prototype Chocolatey provider that I built. Re-using the existing Chocolatey implementation at the time wasn't really feasible, as it would have meant shelling out to an external process, parsing the results and pulling them back in and then adapting that output to the format that the OneGet provider API was expecting.

At the time of that release, I knew Rob was planning on a new version of Chocolatey that would be build from-scratch implementation that cleans up a lot of the issues with the original as well as making it consumable as a library (chocolatey.core). 

Which is kinda why, over the last several months, I've delayed doing anything significant with my prototype implementation, or fixing many bugs with it.

Now, that new foundation for Chocolatey is becoming available.

This means that I can finally drop my prototype implementation into the bit-bucket and we can build a new provider based on the same code as the official Chocolatey client is using.  This will very shortly become 'THE' Official Chocolatey provider for OneGet; we're not going to fragment the ecosystem by continuing with a separate implementation.

Just to make that clear: We're not re-implementing Chocolatey. We're not forking Chocolatey. We're not taking control of Chocolatey. We're helping connect the official Chocolatey implementation into OneGet.

The new Chocolatey Provider project has been already created on github, the ever-so-illustrious PowerShell MVP @Jaykul is leading the development of the new provider. I'll be helping out with that, making contributions when I can too.

I'm hoping that we can get that up and running within a few weeks, and replace the existing provider fairly quickly. This will ensure that all future Chocolatey behavior in OneGet is heavily tied to the official Chocolatey, and we should see incompatibilities dry up completely.

If you'd like to contribute, head on over to the Chocolatey Provider Project on Github.