From e1220385083aeab9a4d4d30ab0ac95758dfc60b7 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Thu, 19 Feb 2026 01:35:40 +0100 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=93=A6=EF=B8=8F=20updated=20NuGet=20p?= =?UTF-8?q?ackage=20definition?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../Cuemon.AspNetCore/PackageReleaseNotes.txt | 6 ++++++ .../Cuemon.Core.App/PackageReleaseNotes.txt | 6 ++++++ .nuget/Cuemon.Core/PackageReleaseNotes.txt | 21 ++++++++++++++++++- .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .nuget/Cuemon.Data/PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 16 ++++++++++++++ .../PackageReleaseNotes.txt | 12 +++++++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 9 ++++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 12 +++++++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .nuget/Cuemon.IO/PackageReleaseNotes.txt | 6 ++++++ .nuget/Cuemon.Net/PackageReleaseNotes.txt | 6 ++++++ .../Cuemon.Resilience/PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../PackageReleaseNotes.txt | 6 ++++++ .../Cuemon.Threading/PackageReleaseNotes.txt | 6 ++++++ .nuget/Cuemon.Xml/PackageReleaseNotes.txt | 6 ++++++ 42 files changed, 291 insertions(+), 1 deletion(-) diff --git a/.nuget/Cuemon.AspNetCore.App/PackageReleaseNotes.txt b/.nuget/Cuemon.AspNetCore.App/PackageReleaseNotes.txt index 0fcc64de..874794bf 100644 --- a/.nuget/Cuemon.AspNetCore.App/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.AspNetCore.App/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.AspNetCore.Authentication/PackageReleaseNotes.txt b/.nuget/Cuemon.AspNetCore.Authentication/PackageReleaseNotes.txt index 47f60722..91c88979 100644 --- a/.nuget/Cuemon.AspNetCore.Authentication/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.AspNetCore.Authentication/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.AspNetCore.Mvc/PackageReleaseNotes.txt b/.nuget/Cuemon.AspNetCore.Mvc/PackageReleaseNotes.txt index f71eee89..f54188d2 100644 --- a/.nuget/Cuemon.AspNetCore.Mvc/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.AspNetCore.Mvc/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.AspNetCore.Razor.TagHelpers/PackageReleaseNotes.txt b/.nuget/Cuemon.AspNetCore.Razor.TagHelpers/PackageReleaseNotes.txt index 0fcc64de..874794bf 100644 --- a/.nuget/Cuemon.AspNetCore.Razor.TagHelpers/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.AspNetCore.Razor.TagHelpers/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.AspNetCore/PackageReleaseNotes.txt b/.nuget/Cuemon.AspNetCore/PackageReleaseNotes.txt index 91b21cd6..60091d29 100644 --- a/.nuget/Cuemon.AspNetCore/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.AspNetCore/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.Core.App/PackageReleaseNotes.txt b/.nuget/Cuemon.Core.App/PackageReleaseNotes.txt index f67548e2..3276b51a 100644 --- a/.nuget/Cuemon.Core.App/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Core.App/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Core/PackageReleaseNotes.txt b/.nuget/Cuemon.Core/PackageReleaseNotes.txt index b965b466..a68bdb82 100644 --- a/.nuget/Cuemon.Core/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Core/PackageReleaseNotes.txt @@ -1,3 +1,22 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  +# New Features +- ADDED AssemblyContext class in the Cuemon.Reflection namespace that provides filtered discovery of assemblies in the current application domain, with optional traversal of referenced assemblies +- ADDED AssemblyContextOptions class in the Cuemon.Reflection namespace that provides configuration options for AssemblyContext filtering and traversal +- ADDED StackDecoratorExtensions class in the Cuemon.Collections.Generic namespace with TryPop extension method for IDecorator +- ADDED Patterns class in the Cuemon namespace with two new methods: IsFatalException and IsRecoverableException +  +# Improvements +- CHANGED Patterns class in the Cuemon namespace so TryInvoke overloads apply exception filters via IsFatalException and IsRecoverableException +- CHANGED World class in the Cuemon.Globalization namespace where StatisticalRegions now returns IEnumerable +  +# Bug Fixes +- FIXED AssemblyContextOptions class in the Cuemon.Reflection namespace to safely handle recoverable reflection exceptions while inspecting exported types +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   @@ -203,4 +222,4 @@ Availability: .NET 9, .NET 8 and .NET Standard 2.0 - EXTENDED Validator class in the Cuemon namespace with five new methods: ThrowIfContainsReservedKeyword, ThrowIfNotDifferent, ThrowIfDifferent, ThrowIfContainsAny and ThrowIfNotContainsAny - CHANGED Validator class in the Cuemon namespace to comply with RSPEC-3343 - EXTENDED Decorator class in the Cuemon namespace with an additional method: RawEnclose -  \ No newline at end of file +  diff --git a/.nuget/Cuemon.Data.Integrity/PackageReleaseNotes.txt b/.nuget/Cuemon.Data.Integrity/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Data.Integrity/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Data.Integrity/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Data.SqlClient/PackageReleaseNotes.txt b/.nuget/Cuemon.Data.SqlClient/PackageReleaseNotes.txt index efaf92e8..e27c713a 100644 --- a/.nuget/Cuemon.Data.SqlClient/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Data.SqlClient/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Data/PackageReleaseNotes.txt b/.nuget/Cuemon.Data/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Data/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Data/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Diagnostics/PackageReleaseNotes.txt b/.nuget/Cuemon.Diagnostics/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Diagnostics/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Diagnostics/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.AspNetCore.Authentication/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.AspNetCore.Authentication/PackageReleaseNotes.txt index 0fcc64de..874794bf 100644 --- a/.nuget/Cuemon.Extensions.AspNetCore.Authentication/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.AspNetCore.Authentication/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json/PackageReleaseNotes.txt index b74b0dd6..b46a2fcd 100644 --- a/.nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/PackageReleaseNotes.txt index 0e7a9569..da86eaac 100644 --- a/.nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.Extensions.AspNetCore.Mvc.RazorPages/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.AspNetCore.Mvc.RazorPages/PackageReleaseNotes.txt index 0fcc64de..874794bf 100644 --- a/.nuget/Cuemon.Extensions.AspNetCore.Mvc.RazorPages/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.AspNetCore.Mvc.RazorPages/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.Extensions.AspNetCore.Mvc/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.AspNetCore.Mvc/PackageReleaseNotes.txt index ee4cb0cc..c36b38ae 100644 --- a/.nuget/Cuemon.Extensions.AspNetCore.Mvc/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.AspNetCore.Mvc/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.Extensions.AspNetCore.Text.Json/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.AspNetCore.Text.Json/PackageReleaseNotes.txt index 1c01acc4..706f6792 100644 --- a/.nuget/Cuemon.Extensions.AspNetCore.Text.Json/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.AspNetCore.Text.Json/PackageReleaseNotes.txt @@ -1,3 +1,19 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  +# New Features +- ADDED MinimalJsonOptions class in the Cuemon.Extensions.AspNetCore.Text.Json namespace that maps JsonFormatterOptions to ASP.NET Core JsonOptions for minimal APIs +- ADDED ServiceCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Text.Json namespace with AddMinimalJsonOptions method +  +# Improvements +- CHANGED ServiceCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Text.Json.Formatters namespace so AddJsonFormatterOptions uses TryConfigure to avoid duplicate option registrations +  +# Bug Fixes +- FIXED duplicate IConfigureOptions registrations when AddJsonFormatterOptions is called multiple times +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.Extensions.AspNetCore.Xml/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.AspNetCore.Xml/PackageReleaseNotes.txt index 072feb0e..6d638343 100644 --- a/.nuget/Cuemon.Extensions.AspNetCore.Xml/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.AspNetCore.Xml/PackageReleaseNotes.txt @@ -1,3 +1,15 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  +# Improvements +- CHANGED ServiceCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Xml.Formatters namespace so AddXmlFormatterOptions uses TryConfigure to avoid duplicate option registrations +  +# Bug Fixes +- FIXED duplicate IConfigureOptions registrations when AddXmlFormatterOptions is called multiple times +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.Extensions.AspNetCore/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.AspNetCore/PackageReleaseNotes.txt index 27d7803a..d329d437 100644 --- a/.nuget/Cuemon.Extensions.AspNetCore/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.AspNetCore/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10 and .NET 9   diff --git a/.nuget/Cuemon.Extensions.Collections.Generic/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Collections.Generic/PackageReleaseNotes.txt index 2fac3178..c5893b34 100644 --- a/.nuget/Cuemon.Extensions.Collections.Generic/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Collections.Generic/PackageReleaseNotes.txt @@ -1,3 +1,12 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  +# New Features +- ADDED StackExtensions class in the Cuemon.Extensions.Collections.Generic namespace with TryPop extension method for Stack on compatible target frameworks without native Stack.TryPop +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Collections.Specialized/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Collections.Specialized/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Extensions.Collections.Specialized/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Collections.Specialized/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Core/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Core/PackageReleaseNotes.txt index f4f2860e..b42913b9 100644 --- a/.nuget/Cuemon.Extensions.Core/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Core/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Data.Integrity/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Data.Integrity/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Extensions.Data.Integrity/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Data.Integrity/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Data/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Data/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Extensions.Data/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Data/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.DependencyInjection/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.DependencyInjection/PackageReleaseNotes.txt index 2fac3178..aa6ad239 100644 --- a/.nuget/Cuemon.Extensions.DependencyInjection/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.DependencyInjection/PackageReleaseNotes.txt @@ -1,3 +1,15 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  +# Improvements +- CHANGED ServiceCollectionExtensions class in the Cuemon.Extensions.DependencyInjection namespace to use TryConfigure in Add/TryAdd overloads that accept Action to avoid duplicate option registrations +  +# Bug Fixes +- FIXED duplicate IConfigureOptions registrations when using Add/TryAdd overloads repeatedly with configuration delegates +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Diagnostics/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Diagnostics/PackageReleaseNotes.txt index edf11189..a8f7a461 100644 --- a/.nuget/Cuemon.Extensions.Diagnostics/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Diagnostics/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Hosting/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Hosting/PackageReleaseNotes.txt index 0f4ba1bf..066fb2a6 100644 --- a/.nuget/Cuemon.Extensions.Hosting/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Hosting/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.IO/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.IO/PackageReleaseNotes.txt index a41fc4d5..d53d564c 100644 --- a/.nuget/Cuemon.Extensions.IO/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.IO/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9, .NET Standard 2.1 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9, .NET Standard 2.1 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Net/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Net/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Extensions.Net/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Net/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Reflection/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Reflection/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Extensions.Reflection/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Reflection/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Runtime.Caching/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Runtime.Caching/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Extensions.Runtime.Caching/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Runtime.Caching/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Text.Json/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Text.Json/PackageReleaseNotes.txt index 6aea75c8..c9dbd033 100644 --- a/.nuget/Cuemon.Extensions.Text.Json/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Text.Json/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Text/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Text/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Extensions.Text/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Text/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Threading/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Threading/PackageReleaseNotes.txt index d7997b40..d705a545 100644 --- a/.nuget/Cuemon.Extensions.Threading/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Threading/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Extensions.Xml/PackageReleaseNotes.txt b/.nuget/Cuemon.Extensions.Xml/PackageReleaseNotes.txt index 602e0cca..670f601d 100644 --- a/.nuget/Cuemon.Extensions.Xml/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Extensions.Xml/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.IO/PackageReleaseNotes.txt b/.nuget/Cuemon.IO/PackageReleaseNotes.txt index 9d8ffa82..42afd0a5 100644 --- a/.nuget/Cuemon.IO/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.IO/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Net/PackageReleaseNotes.txt b/.nuget/Cuemon.Net/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Net/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Net/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Resilience/PackageReleaseNotes.txt b/.nuget/Cuemon.Resilience/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Resilience/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Resilience/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Runtime.Caching/PackageReleaseNotes.txt b/.nuget/Cuemon.Runtime.Caching/PackageReleaseNotes.txt index 2fac3178..cac38ed7 100644 --- a/.nuget/Cuemon.Runtime.Caching/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Runtime.Caching/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Security.Cryptography/PackageReleaseNotes.txt b/.nuget/Cuemon.Security.Cryptography/PackageReleaseNotes.txt index b8a289f5..6616678d 100644 --- a/.nuget/Cuemon.Security.Cryptography/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Security.Cryptography/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Threading/PackageReleaseNotes.txt b/.nuget/Cuemon.Threading/PackageReleaseNotes.txt index 78bbebda..1c78ae75 100644 --- a/.nuget/Cuemon.Threading/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Threading/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   diff --git a/.nuget/Cuemon.Xml/PackageReleaseNotes.txt b/.nuget/Cuemon.Xml/PackageReleaseNotes.txt index a04b2f1f..e60a226a 100644 --- a/.nuget/Cuemon.Xml/PackageReleaseNotes.txt +++ b/.nuget/Cuemon.Xml/PackageReleaseNotes.txt @@ -1,3 +1,9 @@ +Version: 10.3.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  Version: 10.2.1 Availability: .NET 10, .NET 9 and .NET Standard 2.0   From 680e8879e3b06eddb6c511efe658ffaf616b3316 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Thu, 19 Feb 2026 01:35:52 +0100 Subject: [PATCH 2/4] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20bump=20dependencies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Packages.props | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index f3d20ef0..46bc19c9 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -6,17 +6,17 @@ - - - - + + + + - - + + From ba375077735fb74d10ea3795de24b66c06f2501e Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Thu, 19 Feb 2026 01:36:25 +0100 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=92=AC=20updated=20community=20health?= =?UTF-8?q?=20pages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0246c9fc..c634fc87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,32 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), For more details, please refer to `PackageReleaseNotes.txt` on a per assembly basis in the `.nuget` folder. +## [10.3.0] - 2026-02-19 + +This is a minor release that introduces assembly discovery utilities and improved minimal API formatter integration, while also tightening option registration behavior across ASP.NET Core formatter setup. + +### Added + +- `AssemblyContext` class in the Cuemon.Reflection namespace that provides filtered discovery of assemblies in the current application domain, with optional traversal of referenced assemblies, +- `AssemblyContextOptions` class in the Cuemon.Reflection namespace that configures inclusion/exclusion filters and referenced-assembly traversal for `AssemblyContext`, +- `Patterns` class in the Cuemon namespace was extended with two new methods: `IsFatalException` and `IsRecoverableException`, +- `MinimalJsonOptions` class in the Cuemon.Extensions.AspNetCore.Text.Json namespace was added to map `JsonFormatterOptions` into ASP.NET Core `JsonOptions` for minimal APIs, +- `ServiceCollectionExtensions` class in the Cuemon.Extensions.AspNetCore.Text.Json namespace was extended with a new method: `AddMinimalJsonOptions`, +- `StackDecoratorExtensions` class in the Cuemon.Collections.Generic namespace was extended with a new `TryPop` extension method for `IDecorator>`, +- `StackExtensions` class in the Cuemon.Extensions.Collections.Generic namespace was extended with a new `TryPop` extension method for `Stack` (for compatible target frameworks without native `Stack.TryPop`). + +### Changed + +- `ServiceCollectionExtensions` class in the Cuemon.Extensions.DependencyInjection namespace to use `TryConfigure` in option-registration overloads to avoid duplicate configuration registration, +- `ServiceCollectionExtensions` class in the Cuemon.Extensions.AspNetCore.Text.Json.Formatters namespace to use `TryConfigure` in `AddJsonFormatterOptions`, +- `ServiceCollectionExtensions` class in the Cuemon.Extensions.AspNetCore.Xml.Formatters namespace to use `TryConfigure` in `AddXmlFormatterOptions`, +- `Patterns` class in the Cuemon namespace to apply exception filters via `IsFatalException` / `IsRecoverableException` in `TryInvoke` overloads, +- `World` class in the Cuemon.Globalization namespace where `StatisticalRegions` now returns `IEnumerable`. + +### Fixed + +- Prevented repeated `IConfigureOptions` registrations when formatter/options extension methods are called multiple times. + ## [10.2.1] - 2026-02-12 This is a service update that focuses on package dependencies; however, it also includes a small performance optimization to reduce allocations and improve throughput when working with streams. From 7719f3b4c3f58d2247770cfd5f6eac5b3ca2d724 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Thu, 19 Feb 2026 01:36:57 +0100 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=91=B7=20add=20workflows=20for=20serv?= =?UTF-8?q?ice=20updates=20and=20downstream=20triggers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/dispatch-targets.json | 3 + .github/workflows/service-update.yml | 139 +++++++++++++++++++++++ .github/workflows/trigger-downstream.yml | 78 +++++++++++++ 3 files changed, 220 insertions(+) create mode 100644 .github/dispatch-targets.json create mode 100644 .github/workflows/service-update.yml create mode 100644 .github/workflows/trigger-downstream.yml diff --git a/.github/dispatch-targets.json b/.github/dispatch-targets.json new file mode 100644 index 00000000..259902fd --- /dev/null +++ b/.github/dispatch-targets.json @@ -0,0 +1,3 @@ +[ + "xunit" +] diff --git a/.github/workflows/service-update.yml b/.github/workflows/service-update.yml new file mode 100644 index 00000000..d08f940e --- /dev/null +++ b/.github/workflows/service-update.yml @@ -0,0 +1,139 @@ +name: Service Update + +on: + repository_dispatch: + types: [codebelt-service-update] + workflow_dispatch: + inputs: + source_repo: + description: 'Triggering source repo name (e.g. cuemon)' + required: false + default: '' + source_version: + description: 'Version released by source (e.g. 10.3.0)' + required: false + default: '' + dry_run: + type: boolean + description: 'Dry run — show changes but do not commit or open PR' + default: false + +permissions: + contents: write + pull-requests: write + +jobs: + service-update: + runs-on: ubuntu-24.04 + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Resolve trigger inputs + id: trigger + run: | + SOURCE="${{ github.event.client_payload.source_repo || github.event.inputs.source_repo }}" + VERSION="${{ github.event.client_payload.source_version || github.event.inputs.source_version }}" + echo "source=$SOURCE" >> $GITHUB_OUTPUT + echo "version=$VERSION" >> $GITHUB_OUTPUT + + - name: Determine new version for this repo + id: newver + run: | + CURRENT=$(grep -oP '(?<=## \[)[\d.]+(?=\])' CHANGELOG.md | head -1) + NEW=$(echo "$CURRENT" | awk -F. '{printf "%s.%s.%d", $1, $2, $3+1}') + BRANCH="v${NEW}/service-update" + echo "current=$CURRENT" >> $GITHUB_OUTPUT + echo "new=$NEW" >> $GITHUB_OUTPUT + echo "branch=$BRANCH" >> $GITHUB_OUTPUT + + - name: Generate codebelt-aicia token + id: app-token + uses: actions/create-github-app-token@v1 + with: + app-id: ${{ vars.CODEBELT_AICIA_APP_ID }} + private-key: ${{ secrets.CODEBELT_AICIA_PRIVATE_KEY }} + owner: codebeltnet + + - name: Bump NuGet packages + run: python3 .github/scripts/bump-nuget.py + env: + TRIGGER_SOURCE: ${{ steps.trigger.outputs.source }} + TRIGGER_VERSION: ${{ steps.trigger.outputs.version }} + + - name: Update PackageReleaseNotes.txt + run: | + NEW="${{ steps.newver.outputs.new }}" + for f in .nuget/*/PackageReleaseNotes.txt; do + [ -f "$f" ] || continue + TFM=$(grep -m1 "^Availability:" "$f" | sed 's/Availability: //' || echo ".NET 10, .NET 9 and .NET Standard 2.0") + ENTRY="Version ${NEW}\nAvailability: ${TFM}\n \n# ALM\n- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)\n \n" + { printf "$ENTRY"; cat "$f"; } > "$f.tmp" && mv "$f.tmp" "$f" + done + + - name: Update CHANGELOG.md + run: | + python3 - <<'EOF' + import os, re + from datetime import date + new_ver = os.environ['NEW_VERSION'] + today = date.today().isoformat() + entry = f"## [{new_ver}] - {today}\n\nThis is a service update that focuses on package dependencies.\n\n" + with open("CHANGELOG.md") as f: + content = f.read() + idx = content.find("## [") + content = (content[:idx] + entry + content[idx:]) if idx != -1 else (content + entry) + with open("CHANGELOG.md", "w") as f: + f.write(content) + print(f"CHANGELOG updated for v{new_ver}") + EOF + env: + NEW_VERSION: ${{ steps.newver.outputs.new }} + + # Note: Docker image bumps removed in favor of manual updates + # The automated selection was picking wrong variants (e.g., mono-* instead of standard) + # TODO: Move to hosted service for smarter image selection + + - name: Show diff (dry run) + if: ${{ github.event.inputs.dry_run == 'true' }} + run: git diff + + - name: Create branch and open PR + if: ${{ github.event.inputs.dry_run != 'true' }} + env: + GH_TOKEN: ${{ steps.app-token.outputs.token }} + run: | + NEW="${{ steps.newver.outputs.new }}" + BRANCH="${{ steps.newver.outputs.branch }}" + SOURCE="${{ steps.trigger.outputs.source }}" + SRC_VER="${{ steps.trigger.outputs.version }}" + + git config user.name "codebelt-aicia[bot]" + git config user.email "codebelt-aicia[bot]@users.noreply.github.com" + git checkout -b "$BRANCH" + git add -A + git diff --cached --quiet && echo "Nothing changed - skipping PR." && exit 0 + git commit -m "V${NEW}/service update" + git push origin "$BRANCH" + + echo "This is a service update that focuses on package dependencies." > pr_body.txt + echo "" >> pr_body.txt + echo "Automated changes:" >> pr_body.txt + echo "- Codebelt/Cuemon package versions bumped to latest compatible" >> pr_body.txt + echo "- PackageReleaseNotes.txt updated for v${NEW}" >> pr_body.txt + echo "- CHANGELOG.md entry added for v${NEW}" >> pr_body.txt + echo "" >> pr_body.txt + echo "Note: Third-party packages (Microsoft.Extensions.*, BenchmarkDotNet, etc.) are not auto-updated." >> pr_body.txt + echo "Use Dependabot or manual updates for those." >> pr_body.txt + echo "" >> pr_body.txt + echo "Generated by codebelt-aicia" >> pr_body.txt + if [ -n "$SOURCE" ] && [ -n "$SRC_VER" ]; then + echo "Triggered by: ${SOURCE} @ ${SRC_VER}" >> pr_body.txt + else + echo "Triggered by: manual workflow dispatch" >> pr_body.txt + fi + + gh pr create --title "V${NEW}/service update" --body-file pr_body.txt --base main --head "$BRANCH" --assignee gimlichael diff --git a/.github/workflows/trigger-downstream.yml b/.github/workflows/trigger-downstream.yml new file mode 100644 index 00000000..29eb29c2 --- /dev/null +++ b/.github/workflows/trigger-downstream.yml @@ -0,0 +1,78 @@ +name: Trigger Downstream Service Updates + +on: + release: + types: [published] + +jobs: + dispatch: + if: github.event.release.prerelease == false + runs-on: ubuntu-24.04 + permissions: + contents: read + + steps: + - name: Checkout (to read dispatch-targets.json) + uses: actions/checkout@v4 + + - name: Check for dispatch targets + id: check + run: | + if [ ! -f .github/dispatch-targets.json ]; then + echo "No dispatch-targets.json found, skipping." + echo "has_targets=false" >> $GITHUB_OUTPUT + exit 0 + fi + COUNT=$(python3 -c "import json; print(len(json.load(open('.github/dispatch-targets.json'))))") + echo "has_targets=$([ $COUNT -gt 0 ] && echo true || echo false)" >> $GITHUB_OUTPUT + + - name: Extract version from release tag + if: steps.check.outputs.has_targets == 'true' + id: version + run: | + VERSION="${{ github.event.release.tag_name }}" + VERSION="${VERSION#v}" + echo "version=$VERSION" >> $GITHUB_OUTPUT + + - name: Generate codebelt-aicia token + if: steps.check.outputs.has_targets == 'true' + id: app-token + uses: actions/create-github-app-token@v1 + with: + app-id: ${{ vars.CODEBELT_AICIA_APP_ID }} + private-key: ${{ secrets.CODEBELT_AICIA_PRIVATE_KEY }} + owner: codebeltnet + + - name: Dispatch to downstream repos + if: steps.check.outputs.has_targets == 'true' + run: | + python3 - <<'EOF' + import json, urllib.request, os, sys + + targets = json.load(open('.github/dispatch-targets.json')) + token = os.environ['GH_TOKEN'] + version = os.environ['VERSION'] + source = os.environ['SOURCE_REPO'] + + for repo in targets: + url = f'https://api.github.com/repos/codebeltnet/{repo}/dispatches' + payload = json.dumps({ + 'event_type': 'codebelt-service-update', + 'client_payload': { + 'source_repo': source, + 'source_version': version + } + }).encode() + req = urllib.request.Request(url, data=payload, method='POST', headers={ + 'Authorization': f'Bearer {token}', + 'Accept': 'application/vnd.github+json', + 'Content-Type': 'application/json', + 'X-GitHub-Api-Version': '2022-11-28' + }) + with urllib.request.urlopen(req) as r: + print(f'✓ Dispatched to {repo}: HTTP {r.status}') + EOF + env: + GH_TOKEN: ${{ steps.app-token.outputs.token }} + VERSION: ${{ steps.version.outputs.version }} + SOURCE_REPO: ${{ github.event.repository.name }}