v2.7.0 - Release Notes
🎉 Major Features
🔊 Sound Notifications
- Added optional sound notifications for command completion, test results, and failures
- Added the
SOUNDS_DISABLEDenvironment flag to toggle notifications - Added
--muteto temporarily disable sounds for individual test and run commands - Sounds are automatically disabled in subprocess mode
📜 Test Scripts
- Added the new
runcommand for executing reusable project scripts, similar to npm or Composer scripts - Added support for custom files in the
runcommand - Scripts can be defined and customized through
storage/data/templates/scripts.json - Added visual feedback with a spinner during script execution
⚡ Background Jobs & Performance
- Added background jobs for long-running operations such as PHP version and extension data fetching
- Added
Show-SpinnerWhileJobfor visual feedback during long-running operations - Improved job serialization and data handling
- Improved responsiveness during network-bound operations
🔧 Improvements
🧹 PowerShell Naming Convention
- Renamed functions to use approved PowerShell verbs and the
Verb-Nounconvention - Refactored related helpers and wrappers for improved consistency
- Improved code consistency and maintainability
⚙️ Configuration & Data Handling
- Added
Copy-ObjectDeepfor proper deep-copy operations - Added filtering of invalid arguments and flags
- Improved extension search with description property checking
- Improved caching for PHP versions and extension data, including cache validation and duplicate-file handling
🧪 Testing & Quality
- Expanded test coverage for new features and refactored components
- Improved compatibility across Windows PowerShell 5.1 and PowerShell 7+
- Added support for testing against multiple Pester versions, including Pester 5.7 and 6
- Improved test execution across different PowerShell/Pester combinations
- Added tests for
setFakePaths, sound notifications, wrappers, and new helpers - Improved test data validation with
Test-HasData - Added total test count reporting
✨ User Experience
- Refactored the help section and improved help output
- Improved color selection and output formatting
- Sorted extensions list before printing
- Enhanced
infocommand with environment and PVM configuration data
🐛 Bug Fixes
- Fixed
PVMConfigvalues being unintentionally overridden through shallow copies - Improved error handling for
runscripts - Fixed argument handling for older PowerShell versions
- Fixed child processes not being terminated when the parent process exits
📝 Documentation
- Updated documentation for the new
runcommand and test scripts - Added documentation for sound notifications and configuration
- Updated profile examples and configuration files
- Improved command help and usage information
🙏 Credits
Thank you to the following contributors: @faissaloux
Full Changelog: Commits since v2.6.0
Summary: v2.7.0 introduces reusable project scripts through the new run command, optional sound notifications, and background jobs for long-running operations. It also improves PowerShell and Pester compatibility, test coverage, caching, error handling, and overall CLI consistency.