Skip to content

An simple user interface for upgrading and downgrading Chocolatey packages.

License

Notifications You must be signed in to change notification settings

gameshowpro/ChocoVersionSelect

Repository files navigation

ChocoVersionSelect

ChocoVersionSelect icon

ChocoVersionSelect is a Windows user interface for Chocolatey (the Machine Package Manager for Windows). Unlike Chocolatey GUI, which has a broad set of features, ChocoVersionSelect is focused on managing the local installation of a single package. It does this by wrapping choco's list, search, and upgrade verbs.

Installation

You can install ChocoVersionSelect from the Chocolatey Community Respository. If you already have it enabled as one of your packages sources, you can install it like this:

choco install ChocoVersionSelect -y

Usage

ChocoVersionSelect requires commandline parameters. You can see a reminder of these by executing it with none.

ChocoVersionSelect <packageName> [--source=<sourceName>]

In the case where multiple sources are configured, including the source name parameter should speed up the search and upgrade operations. To end-user scenarios are envisaged:

  1. Clicking on a Windows shortcut that has been preconfigured with the appropriate parameters, name, and icon.
  2. Clicking on a button in another application that will launch ChocoVersionSelect to allow the parent application to be upgraded.

Features

  • Launched with commandline parameters specifying package name and source.
  • UI updates asynchronously as data is received from choco.exe.
  • All available versions of the package are shown, with focus on the current, latest, and previous.
  • Publish dates and ages are shown.
  • Upgrades and downgrades can be requested from the UI and confirmed on completion.
  • Runs without administrative access, requesting admin escalation for Chocolatey when required.
  • User's dark mode preferences from Windows are observed.

Possible future features

  • Full (but optional) support for runnning with administrative, allowing the console window to remaining hidden and possibly better feedback to be provided during upgrades.
  • Toast notifictions within the window to provide an additional layer of feedback, especially in an exception state.
  • Access to console session for troubleshooting purposes, e.g. forwarding to support staff.
  • Automatic refreshing and notification of new package availability using taskbar icon badge.
  • Multi-language support.

Why does this exist?

ChocoVersionSelect was created to address a specific use-case. Some users who are not comfortable using a command shell. Some users would be confused or endangered by the wide array of features in Chocolatey GUI. ChocoVersionSelect lets them achieve all the package management they need with a minimal learning curve.

Dependencies

ChocoVersionSelect does not have any build-time dependencies outside of the .NET 9.0 SDK. It won't do anything useful unless you already have Chocolatey installed and it can find choco.exe on the Windows path.

Source code notes

At the time of writing, this project was built for the lastest .NET Runtime (9.0) and C# (12.0). The UI is built with WPF using MVVM patterns.

Since this application is quite limited in size and scope, it could serve as a good example for developers looking for a working example of some recent .NET features:

Credits

Contributing

If you have an idea to improve existing code, feel free to send a pull request. If you want to add a new feature, it's probably worth opening a ticket first so we can discuss the specification in advance, to prevent wasted effort.

About

An simple user interface for upgrading and downgrading Chocolatey packages.

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 2

  •  
  •