Chocolatey Components Dependencies and Support Lifecycle

Chocolatey Components Dependencies and Support Lifecycle

Maintenance and Support Contract Considerations for Perpetual License Customers

Having a Maintenance and Support contract with Chocolatey Software, Inc. consists of two parts:

  • Maintenance - allows you to download newer versions of the licensed components of Chocolatey.
  • Support - allows you to submit issue tickets to our Helpdesk and also have access to our Support Team.

During the active period of the contract, you have access to both Maintenance and Support. Once that expires, you would simply need to purchase that contract again to continue access to newer versions of those components.

A Perpetual License means that you have a license which never expires and you are able to use the Chocolatey Licensed Extension with versions of Chocolatey CLI that are compatible. While your Maintenance contract is valid, you are able to download updates to the licensed components.

A Perpetual License customer that does not have an active Maintenance contract will not be in a position to upgrade to the latest version of Chocolatey Licensed Extension. This can cause problems when there is a dependency that exists between a new version of Chocolatey CLI and Chocolatey Licensed Extension.

:choco-info: NOTE

We added the dependency requirement to the release notes of v1.0.0 of Chocolatey CLI but some customers continued to experience the issue. In the v1.0.1 and the v1.1.0 releases of Chocolatey CLI we implemented changes to allow Chocolatey CLI to work with the latest version of Chocolatey Licensed Extension. There are no guarantees that these changes will be applied in the same way to future versions.

If you are in this position, we suggest that you take one of the following actions:

  • Request a Maintenance and Support contract renewal, upgrade the Chocolatey Licensed Extension to the latest version and then upgrade Chocolatey CLI.
  • Forego the Maintenance and Support contract renewal and stay with the version of Chocolatey CLI and Chocolatey Licensed Extension that you use. To prevent accidental upgrade of Chocolatey CLI we would suggest that you pin to the version you use and ensure you are using an internal repository.

If you have any questions about your Perpetual License or your Maintenance and Support contract, please reach out to the Sales team.

Chocolatey Component Package Dependencies

Some of the Chocolatey component packages have dependencies on other Chocolatey components. The following table aims to illustrate those dependencies, based on the latest shipped version of each component.

Package Name / Dependency chocolatey chocolatey.extension chocolateygui
chocolatey v1.1.0
chocolatey.extension v4.1.0 v1.0.0
chocolatey-agent v1.0.0 v4.0.0
chocolateygui v1.0.0 v1.0.0
chocolateygui.extension v1.0.0 v4.0.0 v1.0.0

:choco-warning: WARNING

Due the nature of how Chocolatey package dependencies work, we can ensure that all the required package versions are installed. For example, if you were to install chocolateygui.extension then it would make sure that the following tree of packages, with as a minimum these package versions, are installed:

Package Name Version
chocolateygui.extension v1.0.0
chocolateygui v1.0.0
chocolatey.extension v4.0.0
chocolatey v1.0.0

:choco-info: NOTE

Newer package versions may be available at the time of installation, and Chocolatey will pick the highest available that matches the defined dependency range.

However, there is nothing that can be done to ensure that indirect dependencies are satisfied. For example, if you currently have chocolateygui v0.18.1 installed along with chocolateygui.extension v0.2.1 and you first upgrade to chocolateygui v0.19.0, then you will see errors if you attempt to run Chocolatey GUI, since the chocolateygui.extension package also needs to be updated.

Based on the package releases, the recommended installation/upgrade order is the following:

  • chocolateygui.extension
  • chocolateygui
  • chocolatey-agent
  • chocolatey.extension
  • chocolatey

This will ensure that all dependencies, both direct and indirect, are installed.