Skip to content

Commit ab49b82

Browse files
HeyItsGilbertCopilot
authored andcommitted
chore(release): update CHANGELOG to follow Keep a Changelog format
1 parent 13827bd commit ab49b82

1 file changed

Lines changed: 111 additions & 190 deletions

File tree

CHANGELOG.md

Lines changed: 111 additions & 190 deletions
Original file line numberDiff line numberDiff line change
@@ -5,236 +5,157 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](http://keepachangelog.com/)
66
and this project adheres to [Semantic Versioning](http://semver.org/).
77

8-
## [2.0.0] - 2025-06-18
8+
## [2.0.0] 2025-06-18
99

10-
### Major Release - Plaster 2.0
10+
### Added
1111

12-
This is a major release that modernizes Plaster for PowerShell 7.x while
13-
maintaining full backward compatibility with existing templates and workflows.
12+
- Cross-platform compatibility with full support for Windows, Linux, and macOS
13+
- PowerShell 7.x optimization with improved performance and reliability
14+
- Enhanced error handling with comprehensive error handling and detailed logging
15+
- Modern PowerShell parameter validation attributes and type safety
16+
- Built-in logging system with configurable levels
17+
- Modern InvokeBuild-based build system replacing legacy psake
18+
- Pester 5.x support with updated test framework syntax
19+
- Cross-platform CI/CD with GitHub Actions workflow supporting all platforms
20+
- Integrated code coverage reporting with configurable thresholds
21+
- Enhanced PSScriptAnalyzer integration with modern rules
22+
- Parameter element now supports a condition attribute for conditional prompting
23+
- Better error messages with actionable guidance
24+
- Improved debug output and verbose logging
25+
- Better IntelliSense support with improved parameter completion and help text
26+
- Automatic path separator handling across platforms
27+
- Consistent UTF-8 encoding with BOM handling across platforms
28+
- Platform-specific defaults based on operating system
29+
- Proper handling of different line ending styles
30+
- Comprehensive test suite covering all platforms with integration and
31+
performance tests
32+
- Automated testing on Windows, Linux, and macOS
1433

15-
### BREAKING CHANGES
34+
### Changed
1635

17-
- **Minimum PowerShell Version**: Updated from 3.0 to 5.1
18-
- **Test Framework**: Updated to Pester 5.x (breaking change for test authors)
19-
- **Default Encoding**: Changed from 'Default' to 'UTF8-NoBOM' for better
36+
- Minimum PowerShell version updated from 3.0 to 5.1
37+
- Default encoding changed from 'Default' to 'UTF-8-NoBOM' for better
2038
cross-platform compatibility
39+
- Test framework updated to Pester 5.x (breaking change for test authors)
40+
- Module structure reorganized for better maintainability
41+
- Error handling centralized with improved logging
42+
- Platform-specific functionality abstracted for better cross-platform support
43+
- Optimized module loading and reduced startup time
44+
- Improved memory usage and garbage collection
45+
- Enhanced template processing performance on large projects
46+
- Improved file operations for different platforms
47+
- Better parameter completion and help text
2148

22-
### NEW FEATURES
23-
24-
#### PowerShell 7.x Full Support
25-
26-
- **Cross-Platform Compatibility**: Full support for Windows, Linux, and macOS
27-
- **PowerShell Core Optimization**: Improved performance and reliability on
28-
PowerShell 7.x
29-
- **Platform Detection**: Enhanced platform-specific functionality and path
30-
handling
31-
32-
#### Modern Development Practices
33-
34-
- **Enhanced Error Handling**: Comprehensive error handling with detailed
35-
logging
36-
- **Parameter Validation**: Modern PowerShell parameter validation attributes
37-
- **Type Safety**: Improved type safety using PowerShell classes and `using`
38-
statements
39-
- **Logging System**: Built-in logging system with configurable levels
40-
41-
#### Build and Development
42-
43-
- **Modern Build System**: InvokeBuild-based build system replacing legacy psake
44-
- **Pester 5.x Support**: Updated test framework with modern Pester 5.x syntax
45-
- **Cross-Platform CI/CD**: GitHub Actions workflow supporting all platforms
46-
- **Code Coverage**: Integrated code coverage reporting with configurable
47-
thresholds
48-
- **Static Analysis**: Enhanced PSScriptAnalyzer integration with modern rules
49-
50-
### IMPROVEMENTS
51-
52-
#### Performance
53-
54-
- **Faster Module Loading**: Optimized module loading and reduced startup time
55-
- **Memory Usage**: Improved memory usage and garbage collection
56-
- **Template Processing**: Enhanced template processing performance on large
57-
projects
58-
- **Cross-Platform I/O**: Optimized file operations for different platforms
59-
60-
#### Developer Experience
61-
62-
- **Better Error Messages**: More descriptive error messages with actionable
63-
guidance
64-
- **Enhanced Debugging**: Improved debug output and verbose logging
65-
- **IntelliSense Support**: Better parameter completion and help text
66-
- **Modern PowerShell Features**: Leverages PowerShell 5.1+ and 7.x features
67-
68-
#### Cross-Platform Enhancements
69-
70-
- **Path Normalization**: Automatic path separator handling across platforms
71-
- **Encoding Handling**: Consistent UTF-8 encoding with BOM handling
72-
- **Platform-Specific Defaults**: Smart defaults based on operating system
73-
- **Line Ending Normalization**: Proper handling of different line ending styles
74-
75-
### BUG FIXES
76-
77-
#### Core Issues
49+
### Fixed
7850

79-
- **XML Schema Validation**: Fixed .NET Core XML schema validation issues
51+
- XML schema validation issues on .NET Core
8052
([#107](https://github.com/PowerShellOrg/Plaster/issues/107))
81-
- **Constrained Runspace**: Resolved PowerShell 7.x constrained runspace
82-
compatibility
83-
- **Path Resolution**: Fixed absolute vs relative path handling across platforms
84-
- **Parameter Store**: Corrected parameter default value storage on non-Windows
85-
platforms
86-
87-
#### Template Processing
88-
89-
- **Variable Substitution**: Fixed edge cases in parameter substitution
90-
- **Conditional Logic**: Improved reliability of condition evaluation
91-
- **File Encoding**: Resolved encoding issues with template files
92-
- **Directory Creation**: Fixed recursive directory creation on Unix systems
93-
94-
#### Module Loading
95-
96-
- **Import Errors**: Resolved module import issues on PowerShell Core
97-
- **Dependency Resolution**: Fixed module dependency loading order
98-
- **Resource Loading**: Improved localized resource loading reliability
99-
100-
### MIGRATION GUIDE
101-
102-
#### For Template Authors
103-
104-
1. **No Changes Required**: Existing XML templates work without modification
105-
2. **Encoding**: Consider updating templates to use UTF-8 encoding
106-
3. **Testing**: Update any custom tests to use Pester 5.x syntax
107-
108-
#### For Template Users
109-
110-
1. **PowerShell Version**: Ensure PowerShell 5.1 or higher is installed
111-
2. **Module Update**: Use `Update-Module Plaster` to get version 2.0
112-
3. **Workflows**: No changes required to existing Invoke-Plaster usage
113-
114-
#### For Contributors
115-
116-
1. **Build System**: Use `./build.ps1` instead of psake commands
117-
2. **Tests**: Update to Pester 5.x syntax and configuration
118-
3. **Development**: Follow new coding standards and use modern PowerShell
119-
features
120-
121-
### INTERNAL CHANGES
122-
123-
#### Code Quality
124-
125-
- **PSScriptAnalyzer**: Updated to latest rules and best practices
126-
- **Code Coverage**: Achieved >80% code coverage across all modules
127-
- **Documentation**: Comprehensive inline documentation and examples
128-
- **Type Safety**: Added parameter validation and type constraints
53+
- PowerShell 7.x constrained runspace compatibility issues
54+
- Absolute vs relative path handling across platforms
55+
- Parameter default value storage on non-Windows platforms
56+
- Edge cases in parameter substitution
57+
- Condition evaluation reliability
58+
- Template file encoding issues
59+
- Recursive directory creation on Unix systems
60+
- Module import issues on PowerShell Core
61+
- Module dependency loading order
62+
- Localized resource loading reliability
63+
64+
## [1.1.4] Unreleased
12965

130-
#### Architecture
66+
### Added
13167

132-
- **Module Structure**: Reorganized for better maintainability
133-
- **Error Handling**: Centralized error handling and logging
134-
- **Resource Management**: Improved resource cleanup and disposal
135-
- **Platform Abstraction**: Abstracted platform-specific functionality
68+
- None
13669

137-
#### Testing
70+
### Changed
13871

139-
- **Test Coverage**: Comprehensive test suite covering all platforms
140-
- **Integration Tests**: Added end-to-end integration testing
141-
- **Performance Tests**: Benchmarking for performance regression detection
142-
- **Cross-Platform Tests**: Automated testing on Windows, Linux, and macOS
72+
- Updated PSScriptAnalyzerSettings.psd1 template file to sync with latest in
73+
vscode-powershell examples
74+
- Text parameter with default value where condition evaluates to false now
75+
returns default value
14376

144-
### ACKNOWLEDGMENTS
77+
### Fixed
14578

146-
Special thanks to the PowerShell community for their patience during the
147-
transition and to all contributors who helped modernize Plaster for the
148-
PowerShell 7.x era.
79+
- Write destination path with Write-Host so it doesn't add extra output when
80+
-PassThru specified [#326](https://github.com/PowerShell/Plaster/issues/326)
14981

150-
### COMPATIBILITY MATRIX
82+
## [1.1.1] 2017-10-26
15183

152-
| PowerShell Version | Windows | Linux | macOS | Status |
153-
|--------------------|---------|-------|-------|---------------------|
154-
| 5.1 (Desktop) |||| Fully Supported |
155-
| 7.0+ (Core) |||| Fully Supported |
156-
| 3.0-5.0 |||| No Longer Supported |
84+
### Fixed
15785

158-
---
86+
- Added $IsMacOS variable to constrained runspace
87+
[#291](https://github.com/PowerShell/Plaster/issues/291)
88+
- Added missing .cat file from 1.1.0 release
89+
[#292](https://github.com/PowerShell/Plaster/issues/292)
15990

160-
## 1.1.4 - (Unreleased - Legacy)
91+
## [1.1.0] 2017-10-25
16192

162-
### Fixed
93+
### Added
16394

164-
- Write destination path with Write-Host so it doesn't add extra output when
165-
-PassThru specified [#326](https://github.com/PowerShell/Plaster/issues/326).
95+
- Constrained runspace cmdlet: Out-String
96+
[#235](https://github.com/PowerShell/Plaster/issues/236)
97+
- Constrained runspace variables: PSVersionTable and on >= PS v6 IsLinux,
98+
IsOSX and IsWindows [#239](https://github.com/PowerShell/Plaster/issues/239)
99+
- Parameter element now supports a condition attribute so that prompting for
100+
parameters can be conditional based on environmental factors (such as OS) or
101+
answers to previous parameter prompts. This allows template authors to build a
102+
"dynamic" set of prompts
103+
- Constrained runspace cmdlet: Compare-Object
104+
[#286](https://github.com/PowerShell/Plaster/issues/287)
166105

167106
### Changed
168107

169-
- Updated PSScriptAnalyzerSettings.psd1 template file to sync w/latest in
170-
vscode-powershell examples.
171-
- Text parameter with default value where condition evaluates to false returns
172-
default value.
173-
174-
## 1.1.1 - 2017-10-26
108+
- Simplified New Module Script template user choices (removed prompt for adding
109+
Pester test; the test is now always added)
175110

176111
### Fixed
177112

178-
- Added $IsMacOS variable to constrained runspace
179-
[#291](https://github.com/PowerShell/Plaster/issues/291).
180-
- Added missing .cat file from 1.1.0 release
181-
[#292](https://github.com/PowerShell/Plaster/issues/292).
113+
- Fixed prompt errors when prompt text is null or empty
114+
[#236](https://github.com/PowerShell/Plaster/issues/236)
115+
- Fixed New Module Script template's Test task which fails to run on x64 Visual
116+
Studio Code
117+
- Fixed Test-PlasterManifest on non-Windows running .NET Core 2.0 which failed
118+
with path using \ instead of /. Thanks to
119+
[@elmundio87](https://github.com/elmundio87) via PR
120+
[#282](https://github.com/PowerShell/Plaster/pull/282)
182121

183-
## 1.1.0 - 2017-10-25
122+
## [1.0.1] 2016-12-16
184123

185124
### Fixed
186125

187-
- Fixed prompt errors when prompt text null or empty
188-
[#236](https://github.com/PowerShell/Plaster/issues/236).
189-
- Fixed New Module Script template's Test task which fails to run on x64 Visual
190-
Studio Code.
191-
- Fixed Test-PlasterManifest on non-Windows running .NET Core 2.0 failed with
192-
path using \ instead of /. Thanks to
193-
[@elmundio87](https://github.com/elmundio87) via PR
194-
[#282](https://github.com/PowerShell/Plaster/pull/282)
126+
- Fixed issue with the use of `GetModule -FullyQualifiedName` on PowerShell v3
127+
128+
## [1.0.0] 2016-12-16
195129

196130
### Added
197131

198-
- Added constrained runspace cmdlet: Out-String
199-
[#235](https://github.com/PowerShell/Plaster/issues/236).
200-
- Added constrained runspace variables: PSVersionTable and on >= PS v6 IsLinux,
201-
IsOSX and IsWindows [#239](https://github.com/PowerShell/Plaster/issues/239).
202-
- The parameter element now supports a condition attribute so that prompting for
203-
parameters can be conditional based on environmental factors (such as OS) or
204-
answers to previous parameter prompts. This allows template authors to build a
205-
"dynamic" set of prompts.
206-
- Added constrained runspace cmdlet: Compare-Object
207-
[#286](https://github.com/PowerShell/Plaster/issues/287).
132+
- First official release shipped to the PowerShell Gallery
208133

209-
### Changed
134+
## [0.3.0] 2016-11-05
210135

211-
- Simplified New Module Script template user choices i.e. removed prompt for
212-
adding Pester test. The test is now always added.
136+
### Added
213137

214-
## 1.0.1 - 2016-12-16
138+
- Build script with support for building help from markdown files, building
139+
updatable help files and generating file catalog
215140

216-
- Fixed issue with the used of `GetModule -FullyQualifiedName` on PowerShell v3
141+
## [0.2.0] 2016-07-31
217142

218-
## 1.0.0 - 2016-12-16
143+
### Added
219144

220-
- First official release shipped to the PowerShell Gallery!
145+
- New directive `<templateFile>` that implicitly expands the specified file(s),
146+
allowing the template author to set the target file encoding. This new
147+
directive supports a wildcard source specifier like the `<file>` directive
221148

222-
## 0.3.0 - 2016-11-05
149+
### Changed
223150

224-
- Updated build script with support for building help from markdown files,
225-
building updatable help files and generating file catalog.
226-
- Initial release shows the basics of what this module could do.
151+
- `<file>` directive no longer supports template expansion
152+
- Removed `template` and `encoding` attributes from `<file>` directive
153+
- Restructured the module source to follow best practice of separating
154+
infrastructure from module files
227155

228-
## 0.2.0 - 2016-07-31
156+
### Fixed
229157

230-
- Introduced new directive `<templateFile>` that implicitlys expands the
231-
specified file(s), allowing the template author to set the target file
232-
encoding. This new directive supports a wildcard source specifier like the
233-
`<file>` directive. With this change, `<file>` no longer supports template
234-
expansion and as result the `template` and `encoding` attributes have been
235-
removed.
236-
- Restructured the module source to follow best practice of separating
237-
infrastructure from module files.
238-
- Fixed #47: How to create empty directories. The `<file>` directive supports
239-
this now.
240-
- Fixed #58: File recurse does not work anymore.
158+
- How to create empty directories: the `<file>` directive supports this now
159+
([#47](https://github.com/PowerShell/Plaster/issues/47))
160+
- File recurse does not work anymore
161+
([#58](https://github.com/PowerShell/Plaster/issues/58))

0 commit comments

Comments
 (0)