Skip to content

PVM v2.7.0 — Scripts, Sounds & Performance

Latest

Choose a tag to compare

@drissboumlik drissboumlik released this 09 Aug 14:23
· 288 commits to master since this release

v2.7.0 - Release Notes

🎉 Major Features

🔊 Sound Notifications

  • Added optional sound notifications for command completion, test results, and failures
  • Added the SOUNDS_DISABLED environment flag to toggle notifications
  • Added --mute to temporarily disable sounds for individual test and run commands
  • Sounds are automatically disabled in subprocess mode

📜 Test Scripts

  • Added the new run command for executing reusable project scripts, similar to npm or Composer scripts
  • Added support for custom files in the run command
  • 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-SpinnerWhileJob for 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-Noun convention
  • Refactored related helpers and wrappers for improved consistency
  • Improved code consistency and maintainability

⚙️ Configuration & Data Handling

  • Added Copy-ObjectDeep for 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 info command with environment and PVM configuration data

🐛 Bug Fixes

  • Fixed PVMConfig values being unintentionally overridden through shallow copies
  • Improved error handling for run scripts
  • Fixed argument handling for older PowerShell versions
  • Fixed child processes not being terminated when the parent process exits

📝 Documentation

  • Updated documentation for the new run command 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.