All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Future support for Chocolatey v2
- Install Chocolatey v1.2.1 by default if Chocolatey is not already installed
- Support for package parameters/arguments that start with dashes via separate cmdlet dynamic parameters
- Thanks to @jberezanski for the contribution
- Duplicate legacy logic has been tightened up in the following areas:
- package name checks
- package version parsing and checks
- prompt bypass flag checks
- parameter/argument parsing
- resolving package source information
- Always use exact package name in searches, unless the package name contains a wildcard character
- Upgraded unit tests to Pester v5 format, and added static code analysis tests with PSScriptAnalyzer
- Including dependent packages during package uninstalling must now be explicitly requested
- Thanks to @jberezanski for the suggestion
- Install Chocolatey 0.11.2 by default if Chocolatey is not already installed
- Thanks to @jberezanski for the suggestion
- Due to exact package search behavior mentioned above, support for the CHOCO_NONEXACT_SEARCH environment variable has been removed
- Chocolatey once again will be installed automatically if not already present
- No longer using Native API method for interacting with choco.exe due to a compatibility issue between the Chocolatey API and Chocolatey.org
- ChocolateyGet CLI integration with Choco.exe is now based on the Foil PowerShell Crescendo module
- The AdditionalArgs parameter will now only pass package argument/parameter-related values to Choco.exe
- The dependency on Foil (and Crescendo) means ChocolateyGet is no longer supported with PowerShell 5.0 and below
- Change default search to use exact package name if both package name and required version are specified (#20)
- Requires downgrade to Chocolatey 0.10.13 due to a Chocolatey defect until 0.10.16 is released
- AppVeyor builds no longer fail due to change in build image permissions
- Version min/max comparison should now work properly
- Searching/installing/managing multiple Chocolatey sources (#5)
- DSC Compatibility, including additional package arguments
- 'Upgrade' packages using the 'latest' required version keyword (#14)
- Thanks to @matthewprenger for help with this
- Package and Choco.exe installation can run without confirmation prompts by passing the
-AcceptLicense
flag (#17)- Thanks to @Gregoorio for the idea
- Support for CoreCLR-based PowerShell (7.0.1 or higher) (#18)
- Thanks to @sgryphon for bringing this up
- Availability via PSGallery on CoreCLR-based PowerShell (#18)
- To facilitate readability, broke up main module file into several function files
- Grouped by 'public' functions used by PackageManagement vs 'private' functions that contain much of the shared logic for interacting with Chocolatey
- Common logic, such as building commands, sending them to Chocolatey, and parsing results, are consolidated across multiple PackageManagement cmdlets into a single set of helper functions
- Choco.exe installed automatically without any user prompts if -Force flag is passed
- Uninstall behavior to also remove all unnecessary dependencies
- Invokes Chocolatey via native API by default under PowerShell 5.1 and below for significant performance gains
- Thanks to @jirkapok for the inspiration
- Get-Package no longer lists 'chocolatey' twice (#12)
- Improved performance when downloading large packages with embedded installers
- Choco.exe once again installs automatically after TLS 1.2 changes to chocolatey.org (#16)
- Thanks to @kendr1ck for help with this
- Suppress Choco prompts during uninstall and upgrade actions
- With Chocolatey-managed upgrades via the provider now available, the package provider no longer unilaterally upgrades Chocolatey on invocation if already installed
- No longer displays progress bars in order to simplify passing data between functions via the pipeline in a way that's idiomatic to PowerShell
Initial release