From bf565a6e64d3a36d16e792a16d3db844bb3b042e Mon Sep 17 00:00:00 2001 From: Maksym Sadovnychyy Date: Sun, 28 Jun 2026 19:08:18 +0200 Subject: [PATCH] (build): wire repoutils release engine and refresh contributor docs, update dependencies --- .editorconfig | 17 + CHANGELOG.md | 22 +- CONTRIBUTING.md | 216 ++++------ README.md | 25 +- .../Controllers/PSScriptController.cs | 5 +- .../MaksIT.PSScriptGateway.csproj | 6 +- .../Models/ScriptExecutionResponse.cs | 7 - src/MaksIT.PSScriptGateway/Program.cs | 39 +- .../Services/IPSScriptGatewayService.cs | 3 +- .../Services/PSScriptGatewayService.cs | 35 +- ...per.cs => ScriptExecutionResultFactory.cs} | 14 +- .../MaksIT.UScheduler.ScheduleManager.csproj | 5 +- .../MaksIT.UScheduler.Shared.csproj | 4 +- .../MaksIT.UScheduler.Tests.csproj | 4 +- .../MaksIT.UScheduler.csproj | 23 +- utils/Force-AmendTaggedCommit.bat | 3 + .../Force-AmendTaggedCommit.bat | 3 - .../Generate-CoverageBadges.bat | 3 - .../Generate-CoverageBadges.ps1 | 234 ----------- .../scriptsettings.json | 44 -- utils/Invoke-ReleasePackage.bat | 3 + utils/Invoke-TestEngine.bat | 3 + .../CorePlugins/DotNetPack.psm1 | 99 ----- .../CorePlugins/DotNetTest.psm1 | 72 ---- .../CorePlugins/QualityGate.psm1 | 119 ------ utils/Release-Package/CustomPlugins/.gitkeep | 1 - .../CustomPlugins/BundleCustomization.psm1 | 314 -------------- .../Release-Package/DotNetProjectSupport.psm1 | 110 ----- utils/Release-Package/EngineSupport.psm1 | 165 -------- utils/Release-Package/Release-Package.bat | 3 - utils/Release-Package/Release-Package.ps1 | 183 -------- utils/Release-Package/scriptsettings.json | 104 ----- utils/TestRunner.psm1 | 202 --------- utils/Update-RepoUtils.bat | 3 + utils/Update-RepoUtils/Update-RepoUtils.bat | 3 - utils/engines/test/Invoke-TestEngine.ps1 | 50 +++ utils/engines/test/custom/.gitkeep | 0 utils/engines/test/scriptSettings.json | 54 +++ utils/modules/ChangelogSupport.psm1 | 56 +++ utils/modules/Engine/EngineContext.psm1 | 225 ++++++++++ utils/modules/Engine/Import-EngineModules.ps1 | 35 ++ .../Engine}/PluginSupport.psm1 | 154 ++++--- utils/modules/Engine/ReleaseSupport.psm1 | 151 +++++++ utils/modules/Engine/TestSupport.psm1 | 38 ++ utils/{ => modules}/GitTools.psm1 | 24 +- utils/{ => modules}/Logging.psm1 | 0 utils/{ => modules}/ScriptConfig.psm1 | 2 +- utils/modules/TestRunner.psm1 | 392 ++++++++++++++++++ .../DotNet/DotNetCleanupArtifacts.psm1} | 17 +- .../DotNet/DotNetCreateArchive.psm1} | 45 +- utils/plugins/DotNet/DotNetDockerPush.psm1 | 245 +++++++++++ utils/plugins/DotNet/DotNetHelmPush.psm1 | 181 ++++++++ .../DotNet/DotNetNuGet.psm1} | 22 +- utils/plugins/DotNet/DotNetPack.psm1 | 128 ++++++ .../DotNet}/DotNetPublish.psm1 | 17 +- .../plugins/DotNet/DotNetReleaseVersion.psm1 | 41 ++ utils/plugins/DotNet/DotNetTest.psm1 | 99 +++++ utils/plugins/Npm/NpmBuild.psm1 | 89 ++++ utils/plugins/Npm/NpmJestTest.psm1 | 83 ++++ utils/plugins/Npm/NpmPublish.psm1 | 118 ++++++ utils/plugins/Npm/NpmReleaseVersion.psm1 | 99 +++++ utils/plugins/Platform/CoverageBadges.psm1 | 178 ++++++++ .../Platform}/GitHub.psm1 | 64 +-- utils/plugins/Platform/QualityGate.psm1 | 185 +++++++++ .../plugins/Platform/ReleasePublishGuard.psm1 | 167 ++++++++ .../Force-AmendTaggedCommit.ps1 | 15 +- .../scriptSettings.json} | 0 .../Update-RepoUtils/Update-RepoUtils.ps1 | 29 +- .../Update-RepoUtils/scriptSettings.json} | 7 +- 69 files changed, 3060 insertions(+), 2046 deletions(-) create mode 100644 .editorconfig delete mode 100644 src/MaksIT.PSScriptGateway/Models/ScriptExecutionResponse.cs rename src/MaksIT.PSScriptGateway/Services/{ResultMapper.cs => ScriptExecutionResultFactory.cs} (88%) create mode 100644 utils/Force-AmendTaggedCommit.bat delete mode 100644 utils/Force-AmendTaggedCommit/Force-AmendTaggedCommit.bat delete mode 100644 utils/Generate-CoverageBadges/Generate-CoverageBadges.bat delete mode 100644 utils/Generate-CoverageBadges/Generate-CoverageBadges.ps1 delete mode 100644 utils/Generate-CoverageBadges/scriptsettings.json create mode 100644 utils/Invoke-ReleasePackage.bat create mode 100644 utils/Invoke-TestEngine.bat delete mode 100644 utils/Release-Package/CorePlugins/DotNetPack.psm1 delete mode 100644 utils/Release-Package/CorePlugins/DotNetTest.psm1 delete mode 100644 utils/Release-Package/CorePlugins/QualityGate.psm1 delete mode 100644 utils/Release-Package/CustomPlugins/.gitkeep delete mode 100644 utils/Release-Package/CustomPlugins/BundleCustomization.psm1 delete mode 100644 utils/Release-Package/DotNetProjectSupport.psm1 delete mode 100644 utils/Release-Package/EngineSupport.psm1 delete mode 100644 utils/Release-Package/Release-Package.bat delete mode 100644 utils/Release-Package/Release-Package.ps1 delete mode 100644 utils/Release-Package/scriptsettings.json delete mode 100644 utils/TestRunner.psm1 create mode 100644 utils/Update-RepoUtils.bat delete mode 100644 utils/Update-RepoUtils/Update-RepoUtils.bat create mode 100644 utils/engines/test/Invoke-TestEngine.ps1 create mode 100644 utils/engines/test/custom/.gitkeep create mode 100644 utils/engines/test/scriptSettings.json create mode 100644 utils/modules/ChangelogSupport.psm1 create mode 100644 utils/modules/Engine/EngineContext.psm1 create mode 100644 utils/modules/Engine/Import-EngineModules.ps1 rename utils/{Release-Package => modules/Engine}/PluginSupport.psm1 (66%) create mode 100644 utils/modules/Engine/ReleaseSupport.psm1 create mode 100644 utils/modules/Engine/TestSupport.psm1 rename utils/{ => modules}/GitTools.psm1 (90%) rename utils/{ => modules}/Logging.psm1 (100%) rename utils/{ => modules}/ScriptConfig.psm1 (93%) create mode 100644 utils/modules/TestRunner.psm1 rename utils/{Release-Package/CorePlugins/CleanupArtifacts.psm1 => plugins/DotNet/DotNetCleanupArtifacts.psm1} (83%) rename utils/{Release-Package/CorePlugins/CreateArchive.psm1 => plugins/DotNet/DotNetCreateArchive.psm1} (53%) create mode 100644 utils/plugins/DotNet/DotNetDockerPush.psm1 create mode 100644 utils/plugins/DotNet/DotNetHelmPush.psm1 rename utils/{Release-Package/CorePlugins/NuGet.psm1 => plugins/DotNet/DotNetNuGet.psm1} (70%) create mode 100644 utils/plugins/DotNet/DotNetPack.psm1 rename utils/{Release-Package/CorePlugins => plugins/DotNet}/DotNetPublish.psm1 (79%) create mode 100644 utils/plugins/DotNet/DotNetReleaseVersion.psm1 create mode 100644 utils/plugins/DotNet/DotNetTest.psm1 create mode 100644 utils/plugins/Npm/NpmBuild.psm1 create mode 100644 utils/plugins/Npm/NpmJestTest.psm1 create mode 100644 utils/plugins/Npm/NpmPublish.psm1 create mode 100644 utils/plugins/Npm/NpmReleaseVersion.psm1 create mode 100644 utils/plugins/Platform/CoverageBadges.psm1 rename utils/{Release-Package/CorePlugins => plugins/Platform}/GitHub.psm1 (76%) create mode 100644 utils/plugins/Platform/QualityGate.psm1 create mode 100644 utils/plugins/Platform/ReleasePublishGuard.psm1 rename utils/{ => tools}/Force-AmendTaggedCommit/Force-AmendTaggedCommit.ps1 (93%) rename utils/{Force-AmendTaggedCommit/scriptsettings.json => tools/Force-AmendTaggedCommit/scriptSettings.json} (100%) rename utils/{ => tools}/Update-RepoUtils/Update-RepoUtils.ps1 (94%) rename utils/{Update-RepoUtils/scriptsettings.json => tools/Update-RepoUtils/scriptSettings.json} (74%) diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..54e2f07 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +root = true + +[*] +charset = utf-8 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.cs] +indent_size = 2 +indent_style = space +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_between_query_expression_clauses = true diff --git a/CHANGELOG.md b/CHANGELOG.md index 015b31e..092c00a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,21 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## v1.0.2 - 2026-03-01 +## [1.0.3] - 2026-06-28 + +### Added +- **RepoUtils release engine**: `utils/engines/release/` with `BundleCustomization` plugin for bundled ZIP releases +- **`.editorconfig`**: repo-wide C# formatting (2-space indent, MaksIT brace style) + +### Changed +- **PSScriptGateway**: MaksIT.Core logging/middleware, layered config, camelCase JSON, and `Result` → `ToActionResult()` flow +- **README** and **CONTRIBUTING**: RepoUtils test/release entry points, commit format, and coverage badge workflow + +### Fixed +- **Release packaging**: `utils/Invoke-ReleasePackage.bat` now targets a wired release engine (previously missing `utils/engines/release/`) +- **ScheduleManager version**: aligned with `MaksIT.UScheduler` at `1.0.3` + +## [1.0.2] - 2026-03-01 ### Fixed - **PowerShell module loading**: Scripts with module dependencies now execute correctly when running as Windows service @@ -14,7 +28,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Resolves "AuthorizationManager check failed" errors for modules downloaded from the internet - Supports `.psm1` and `.psd1` module files in script directory and subfolders -## v1.0.1 - 2026-02-15 +## [1.0.1] - 2026-02-15 ### Added - **CLI service management**: Added command-line arguments for service installation and management @@ -53,7 +67,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Background services use `Task.WhenAll` to launch all tasks simultaneously - **Unit test improvements**: Refactored tests to use `IOptionsMonitor` for better coverage and reliability -## v1.0.0 - 2025-12-06 +## [1.0.0] - 2025-12-06 ### Major Changes - Migrate of the Unified Scheduler Service in .NET 10 (previously .NET 8). @@ -78,7 +92,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0