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.
- Windows PowerShell 5.1 support — module manifest now declares
PowerShellVersion = '5.1'andCompatiblePSEditions = @('Desktop', 'Core'), making the module officially compatible with both Windows PowerShell and PowerShell 7+. - TLS 1.2 enforcement —
WinEOL.psm1now sets[Net.ServicePointManager]::SecurityProtocolto include TLS 1.2 at module load time, ensuring HTTPS API calls succeed on PS5.1 systems that default to TLS 1.0/1.1.
- API calls modernized — all
Invoke-WebRequest ... | ConvertFrom-Jsonpatterns replaced withInvoke-RestMethod, which handles JSON natively and is more idiomatic PowerShell. Affected files:Get-WinEOLAllProductInfo.ps1,Get-WinEOLAllProductsByCategory.ps1,Get-WinEOLAllProductsByTag.ps1. -UseBasicParsingadded to allInvoke-RestMethodcalls acrossGet-WinEOL.ps1andAdd-ArgumentCompleters.ps1. This parameter is required on PS5.1 in environments where Internet Explorer is not initialized (e.g. Server Core, automation). It is silently ignored by PS7.- Pester tests refactored for cross-edition compatibility with Pester v5:
- Removed
InModuleScope(caused PS7 discovery failures). - All mocks now use
-ModuleName WinEOLto correctly intercept calls from within the module's scope. - Test script now strips any installed
WinEOLcopies from$env:PSModulePathbefore importing the local development copy, preventing "Multiple script or manifest modules" errors. - Assertions updated for PS5.1 compatibility (e.g.
@($res).Countinstead of$res.Count).
- Removed
- Interactive documentation via DeepWiki.
- Removed local caching to simplify logic (credit: /u/vim_vs_emacs).
- Initial release of WinEOL with auto-detection, smart filtering, and rich output objects.