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.
- Null-coalescing operators replaced with PS5.1-compatible syntax in Write-PlasterLog to fix PowerShell 5.1 compatibility (#442)
- Cross-platform compatibility with full support for Windows, Linux, and macOS
- PowerShell 7.x optimization with improved performance and reliability
- Enhanced error handling with comprehensive error handling and detailed logging
- Modern PowerShell parameter validation attributes and type safety
- Built-in logging system with configurable levels
- Modern InvokeBuild-based build system replacing legacy psake
- Pester 5.x support with updated test framework syntax
- Cross-platform CI/CD with GitHub Actions workflow supporting all platforms
- Integrated code coverage reporting with configurable thresholds
- Enhanced PSScriptAnalyzer integration with modern rules
- Parameter element now supports a condition attribute for conditional prompting
- Better error messages with actionable guidance
- Improved debug output and verbose logging
- Better IntelliSense support with improved parameter completion and help text
- Automatic path separator handling across platforms
- Consistent UTF-8 encoding with BOM handling across platforms
- Platform-specific defaults based on operating system
- Proper handling of different line ending styles
- Comprehensive test suite covering all platforms with integration and performance tests
- Automated testing on Windows, Linux, and macOS
- Minimum PowerShell version updated from 3.0 to 5.1
- Default encoding changed from 'Default' to 'UTF-8-NoBOM' for better cross-platform compatibility
- Test framework updated to Pester 5.x (breaking change for test authors)
- Module structure reorganized for better maintainability
- Error handling centralized with improved logging
- Platform-specific functionality abstracted for better cross-platform support
- Optimized module loading and reduced startup time
- Improved memory usage and garbage collection
- Enhanced template processing performance on large projects
- Improved file operations for different platforms
- Better parameter completion and help text
- XML schema validation issues on .NET Core (#107)
- PowerShell 7.x constrained runspace compatibility issues
- Absolute vs relative path handling across platforms
- Parameter default value storage on non-Windows platforms
- Edge cases in parameter substitution
- Condition evaluation reliability
- Template file encoding issues
- Recursive directory creation on Unix systems
- Module import issues on PowerShell Core
- Module dependency loading order
- Localized resource loading reliability
- None
- Updated PSScriptAnalyzerSettings.psd1 template file to sync with latest in vscode-powershell examples
- Text parameter with default value where condition evaluates to false now returns default value
- Write destination path with Write-Host so it doesn't add extra output when -PassThru specified #326
- Added $IsMacOS variable to constrained runspace #291
- Added missing .cat file from 1.1.0 release #292
- Constrained runspace cmdlet: Out-String #235
- Constrained runspace variables: PSVersionTable and on >= PS v6 IsLinux, IsOSX and IsWindows #239
- Parameter element now supports a condition attribute so that prompting for parameters can be conditional based on environmental factors (such as OS) or answers to previous parameter prompts. This allows template authors to build a "dynamic" set of prompts
- Constrained runspace cmdlet: Compare-Object #286
- Simplified New Module Script template user choices (removed prompt for adding Pester test; the test is now always added)
- Fixed prompt errors when prompt text is null or empty #236
- Fixed New Module Script template's Test task which fails to run on x64 Visual Studio Code
- Fixed Test-PlasterManifest on non-Windows running .NET Core 2.0 which failed with path using \ instead of /. Thanks to @elmundio87 via PR #282
- Fixed issue with the use of
GetModule -FullyQualifiedNameon PowerShell v3
- First official release shipped to the PowerShell Gallery
- Build script with support for building help from markdown files, building updatable help files and generating file catalog
- New directive
<templateFile>that implicitly expands the specified file(s), allowing the template author to set the target file encoding. This new directive supports a wildcard source specifier like the<file>directive
<file>directive no longer supports template expansion- Removed
templateandencodingattributes from<file>directive - Restructured the module source to follow best practice of separating infrastructure from module files