I recently received a Tweet:
I hope you don't mind me saying, but Chocolatey has a pretty confusing structure. one of the reasons I feel hesitant to report issues on github repos is that I'm not sure were to put them. the one I have just opened is for example in the wrong place :(— Foad Sojoodi Farimani (@fsfarimani) January 10, 2019
Which got me thinking... There are 35 repositories in the GitHub Organisation for Chocolatey, and if you are new to Chocolatey, it can daunting to know which repository is for what. So I thought I would go through each repository, providing a short description about what it is. In the absence of anything better, I have ordered the list based on how many stars it has on GitHub.
Let's get started...
This is the main GitHub Repository for Chocolatey. It contains the source code for the Chocolatey CLI, which can be downloaded and installed using the instructions on this page. If you encounter any problems with Chocolatey, this is likely the first place to come to see if it is a known issue, or to create a new one. If you are going to raise an issue, please ensure that you read the issue templates to see where the best place to get an answer to your question is.
This is the original GitHub Repository for the Chocolatey project. The first version of Chocolatey was written using PowerShell. In 2014, Chocolatey was rewritten in C# and the decision was taken to create a new repository. In all likelihood, you should never need to use this repository, and likely any issue that is created on this repository will need to be moved to the other repository mentioned above. It has been left active/visible for reference only.
This repository houses the source code for the Boxstarter project. Boxstarter is built on top of Chocolatey, and it brings with it repeatable, reboot resilient Windows environment installations. This project was originally started in 2012 by Matt Wrock, but in 2018 this project moved under the Chocolatey GitHub Organisation. You would use this repository for anything related to the Boxstarter project.
This repository houses the source code for the Chocolatey GUI project. Chocolatey GUI is a WPF application that works alongside Chocolatey, and provides a visual interface to interact with Chocolatey. This includes the ability to list/install/upgrade/uninstall Chocolatey Packages. As well as the ability to add/remove Chocolatey Sources, and enable/disable Chocolatey features.
This repository houses the source code for the Chocolatey Community Repository, i.e. chocolatey.org. This is an ASP.NET MVC application, and you would use this repository to ask any questions about the website itself. NOTE: You should not use this repository to report problems with a particular Chocolatey package. That should be done by following up with the package maintainer directly.
This repository houses the source code for all the packages on chocolatey.org that are maintained by the chocolatey user. This repository is maintained by a dedicated set of volunteers. It makes use of the AU updating system. As a result, all packages in this repository are checked for new versions every 6 hours, meaning that hundreds of packages are constantly kept up to date.
This repository houses the source code for the Chocolatey DSC Resource. This allows you to easy install Chocolatey packages while making use of DSC.
This repository used to house the official module for working with Chocolatey in Puppet, however, this has since been forked and is now maintained here. As a result, there should be no need to interact with this repository, and at some point, it will likely be archived. This module allow the installation of Chocolatey, management of Chocolatey config and features, and also install/update of packages.
This repository is a clone of the Wiki that is available here. This allows us to accept contributions to the Wiki in a way that can be administrated. The contents of this repository are ultimately rendered in the website here. If you want/need to change any documentation in this section of the website, this is where a PR would be raised, or issue created.
This repository houses the local Chocolatey Test Environment, which is essentially a vagrant setup which allows you to test your Chocolatey packages. This is the same test environment that is used by the automated moderation process when you submit a package to chocolatey.org. If you are running into any issues with packages failing when you push them to chocolatey.org, this is the recommended way to figure out what is going on. For more information about the moderation process for chocolatey.org you can watch this video:
This repository houses the source code for the OneGet (a.k.a Package Management) Provider for Chocolatey. If you are interested in helping with this provider, this is where you would start, as we are looking for help with this provider. Please take note of the warnings in the readme of this repository.
One of the tools that ships with Chocolatey is called shimgen. Shimgen is a tool that makes batch redirection not suck so much by generating shims that point to target executable files. Shimgen is a commercial tool provided by RealDimensions Software, LLC (RDS) for free use with the Chocolatey client. This repository serves as a location to raise any issues with the shimgen tool. It does not house the source code for this tool.
There is no source code in this repository. Rather, this repository houses a list of issues for software applications that people would like to see added to chocolatey.org. The idea is that anyone interested in helping with the creation of a Chocolatey package can select one from this list.
This is an older repository that houses a set of warmup templates for creating Chocolatey packages. As of today, creating a Chocolatey package is best done using the choco new, so most likely you will not need to use it.
This repository houses the source code for a website known as the Chocolatey Simple Server, which is also known as chocolatey.server. This is an application that you can use to house Chocolatey packages locally in your environment, rather than using chocolatey.org. This is similar to applications like Nexus, Artifactory or ProGet. However, this is a very basic application, that doesn't have all the features of these other applications.
If you are interested in maintaining your own Chocolatey Packages, this repository houses a sample for how to setup your own repository. The idea would be that you fork this repository, and tailor it to your own needs. This repository has the suggested setup for both ketarin and AU, both of which are described here. As of today, the main recommendation for automatic packaging is AU, as such, if you are starting your own repository, perhaps best to start with this template.
This repository houses the source code for the package-validator windows service. This is one of the automatic moderation processes that all packages submitted to chocolatey.org go through. For more information on this, see the video further up in this blog post. You would raise issues here if you find any problems with this service.
This repository houses the source code for the package-verifier windows service. This is one of the automatic moderation processes that all packages submitted to chocolatey.org go through. For more information on this, see the video further up in this blog post. You would raise issues here if you find any problems with this service.
This repository houses a copy of the NuGet Source Code. Chocolatey is built on top of the NuGet Client libraries, and as such, it maintains a copy of those libraries, as some changes had to be made to make it work for Chocolatey. As changes are made in the upstream NuGet Source Code, the relevant changes will be pulled into this repository so that they can be used in Chocolatey.
This repository houses the source code for a Puppet Module that can be used to automatically install/configure the chocolatey.server package. This means, assuming you are using Puppet, you can very quickly get up and running with this application.
This is the source code for a hands on lab that was hosted at PuppetConf 2013 regarding the chocolatey provider.
There is no source code in this repository. Instead, this houses a list of issues that have been raised against the licensed versions of Chocolatey. This gives a means of allowing people interested in issues raised with the licensed versions to follow when these issues have been resolved.
Within the various Gitter rooms that exist for Chocolatey, for example the main one, there is a Hubot instance running. This is really just a little bit of fun, as the Hubot instance doesn't actually have any automation capabilities. This repository contains the source code for the Hubot instance.
Have you ever had to deal with a really hard application to package as a Chocolatey Package? Or, have you ever been very happy with the outcome of a package that you created? If so, and you are willing to share that work with others, this repository is a place to show them off. At the time of writing, this repository houses examples of how to package Office 365 and Visual Studio 2017.
This repository houses the source code for the package-cleanup windows service. This is one of the automatic moderation processes that all packages submitted to chocolatey.org go through. For more information on this, see the video further up in this blog post. You would raise issues here if you find any problems with this service.
Similar to the shimgen repository, this repository houses an issues list for the chocolatey-package-updater tool. This tool is closed source, but free to use for maintaining Chocolatey packages. This is normally used when using the ketarin application to update packages. NOTE: Currently, the recommended way to create automatically updating Chocolatey packages is to use AU. As a result, it is unlikely, unless you are already using ketarin, that you will need to use this repository.
This is a deprecated repository, that no longer is used, and is kept around for reference only. It used to house the source code for a documentation site for Chocolatey, however, this is replaced with the docs site.
This repository hasn't really seen much traffic yet. The idea was that this repository would house a walkthrough book on house to use Chocolatey. If you are interested in helping with this effort, then definitely reach out.
Prior to making the decision to fork the NuGet Gallery to create the Chocolatey Community Repository, this repository was going to hold the source code for it. Originally, FubuMVC was being considered as the basis for the Chocolatey Community Repository. As you can see, it doesn't house much and is probably something we should move into an archive.
This is a reasonably new repository. The intention is that this will house example vagrant environments that can be used to test out the various parts of Chocolatey. The first example environment in this repository shows you how to setup a system for automated package internalization in your own environment.
Simple Server actually needs this repository for building up the binaries that it uses. This is a Chocolatey-specific fork to add enhancements to that repository so they can be used with Chocolatey Simple Server.
This is similar to the chocobot-gitter repository. The only difference being that this Hubot instance is for Slack, rather than Gitter.
In order to ensure that everyone that contributes to Chocolatey has signed the CLA that we have in place, we run this CLA assistant.
chocolatey-webhooks acts as a relay from GitHub and other services to Jira and Trello, so that events on a Github project automatically create and update Jira issues or Trello cards. This is a work in progress repository, and isn't currently actively being used.comments powered by Disqus