Skip to content

cChoco project will soon be archived. #192

@Windos

Description

@Windos

The cChoco project will be archived and made read-only by June 30, 2026.

Instead of using cChoco, we recommend transitioning to Chocolatey Module.

Below are a number of common tasks done using cChoco resources and their Chocolatey Module equivalents.

cChoco to Chocolatey Module Migration Examples

Installing Chocolatey CLI

When using cChoco to install Chocolatey CLI, you used the cChocoInstaller resource and must specify a path into which Chocolatey should be installed:

cChocoInstaller InstallChoco {
    InstallDir = 'C:\choco'
}

When using the Chocolatey Module, you install Chocolatey CLI using the ChocolateySoftware resource and the default install location is respected so you do not need to specify an installation directory.

ChocolateySoftware InstallChoco {
    Ensure = 'Present'
}

If required, you can still provide an installation directory as you previously did when using cChoco.

ChocolateySoftware InstallChoco {
    Ensure = 'Present'
    InstallationDirectory = 'C:\choco'
}

Installing a Package

To install a package using cChoco, you use the cChocoPackageInstaller resource.

cChocoPackageInstaller InstallGit {
    Ensure = 'Present'
    Name   = 'git'
}

The Chocolatey Module equivalent of this resource is ChocolateyPackage.

ChocolateyPackage InstallGit {
    Ensure = 'Present'
    Name   = 'git'
}

Uninstalling a Package

To uninstall a package using cChoco, you also use the cChocoPackageInstaller resource, just like during an install.

cChocoPackageInstaller UninstallGit {
    Ensure = 'Absent'
    Name   = 'git'
}

The Chocolatey Module equivalent of this resource is also ChocolateyPackage.

ChocolateyPackage UninstallGit {
    Ensure = 'Absent'
    Name   = 'git'
}

Installing Multiple Packages

To install multiple packages with one task using cChoco, you use the cChocoPackageInstallerSet resource.

cChocoPackageInstallerSet InstallMultiplePackages {
    Ensure = 'Present'
    Name = @(
        "git"
        "skype"
        "7zip"
    )
}

There is no direct equivalent of this in Chocolatey Module. Instead, you use the ChocolateyPackage resource inside a foreach loop.

$Packages = @(
    "git"
    "skype"
    "7zip"
)

foreach ($Pkg in $Packages) {
    ChocolateyPackage "Install_$Pkg" {
        Ensure = 'Present'
        Name   = $Pkg
    }
}

Adding a Custom Package Source

To manage sources using cChoco, you use the cChocoSource resource.

cChocoSource AddInternalRepo {
    Ensure = 'Present'
    Name   = 'InternalRepo'
    Source = 'https://internal-repo.local/api/v2/'
    Priority  = 1
}

The equivalent resource in Chocolatey Module is ChocolateySource.

ChocolateySource AddInternalRepo {
    Ensure    = 'Present'
    Name      = 'InternalRepo'
    Source    = 'https://internal-repo.local/api/v2/'
    Priority  = 1
}

Enabling a Chocolatey Feature

To manage Chocolatey Features with cChoco, you use the cChocoFeature resource.

cChocoFeature EnableGlobalConfirm {
    Ensure      = 'Present'
    FeatureName = 'allowGlobalConfirmation'
}

The equivalent resource in the Chocolatey Module is ChocolateyFeature.

ChocolateyFeature EnableGlobalConfirm {
    Ensure = 'Present'
    Name   = 'allowGlobalConfirmation'
}

Configuring a Chocolatey Setting

To configure Chocolatey Settings with cChoco, you use the cChocoConfig resource.

cChocoConfig SetCacheLocation {
    Ensure     = 'Present'
    ConfigName = 'cacheLocation'
    Value      = 'C:\Temp\Choco'
}

The equivalent resource in the Chocolatey Module is ChocolateySetting.

ChocolateySetting SetCacheLocation {
    Ensure = 'Present'
    Name   = 'cacheLocation'
    Value  = 'C:\Temp\Choco'
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions