uscheduler/CHANGELOG.md
2026-02-08 22:21:55 +01:00

3.5 KiB

MaksIT.UScheduler Changelog

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.

v1.0.1 - 2026-02-02

Added

  • CLI service management: Added command-line arguments for service installation and management
    • --install, -i: Install the Windows service
    • --uninstall, -u: Uninstall the Windows service
    • --start: Start the service
    • --stop: Stop the service
    • --status: Query service status
    • --help, -h: Show help message
  • Relative path support: Script and process paths can now be relative to the application directory
  • OS guard: Application now checks for Windows at startup and exits with error on unsupported platforms
  • Release script enhancement: Example scripts are now automatically added to appsettings.json in disabled state during release build
  • Unit tests: Added comprehensive test project MaksIT.UScheduler.Tests with tests for background services and configuration

Changed

  • Default value for IsSigned in PowerShell script configuration changed from false to true for improved security
  • PSScriptService now implements IDisposable for proper RunspacePool cleanup
  • Method signatures updated: RunScriptRunScriptAsync, RunProcessRunProcessAsync
  • Service is now installed with start=auto for automatic startup on boot
  • Updated package dependencies:
    • MaksIT.Core: 1.6.0 → 1.6.1
    • Microsoft.Extensions.Hosting: 10.0.0 → 10.0.2
    • Microsoft.Extensions.Hosting.WindowsServices: 10.0.0 → 10.0.2
    • System.Diagnostics.PerformanceCounter: 10.0.0 → 10.0.2

Removed

  • Install.cmd and Uninstall.cmd files (replaced by CLI arguments)

Fixed

  • Parallel execution: Restored parallel execution of PowerShell scripts and processes (broken during .NET Framework to .NET migration)
    • PSScriptService now uses RunspacePool (up to CPU core count) for concurrent script execution
    • Background services use Task.WhenAll to launch all tasks simultaneously

v1.0.0 - 2025-12-06

Major Changes

  • Migrate of the Unified Scheduler Service in .NET 10 (previously .NET 8).
  • New solution and project structure under MaksIT.UScheduler.
  • Added support for scheduling and running both PowerShell scripts and console applications as Windows services.
  • Strongly typed configuration via appsettings.json and Configuration.cs.
  • Improved logging with configurable log directory.
  • New background services:
    • PSScriptBackgroundService for PowerShell script execution.
    • ProcessBackgroundService for process management.
  • Enhanced PowerShell script execution with signature validation and script unblocking.
  • Improved process management with restart-on-failure logic.
  • Added install/uninstall scripts (Install.cmd, Uninstall.cmd) for service management (removed in v1.0.1).
  • Added comprehensive README with usage, configuration, and scheduling examples.
  • MIT License included.

Breaking Changes

  • Old solution, project, and service files removed.
  • Configuration format and service naming conventions updated.
  • Scheduling logic for console applications is not yet implemented (runs every 10 seconds).