Lucky Penny Software Bundle Releases

Learn what's new across releases, with details of features, enhancements, and resolved issues.

Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Lucky Penny Software Bundle - includes AutoMapper v16.1.1Mar 9, 2026
Features
  • Added two new artifact capabilities to both the CI and Release workflows: publishing .trx test results as GitHub Check annotations using dorny/test-reporter, and (release workflow only) generating a Software Bill of Materials (SBOM) using Microsoft's sbom-tool. The checks: write permission is added to both workflows to support the test reporter.
  • Changes:
    • Add checks: write permission to both ci.yml and release.yml to allow the test reporter to post Check annotations.
    • Add a "Report Test Results" step (using dorny/test-reporter@v1) after the build-and-test step in all four jobs (Linux and Windows, CI and Release).
    • Add a "Generate SBOM" step in the release.yml Windows job, using Microsoft's sbom-tool.
Fixes
  • Better async handling of license validation.
  • Updated Microsoft.Sbom.DotNetTool from 1.2.0 to 4.1.5 in the release workflow. The old version was causing build failures.
  • Security Fix - Fixed an issue where certain cyclic or self-referential object graphs could trigger uncontrolled recursion during mapping, potentially resulting in stack exhaustion and denial of service.
    Applications that process untrusted or attacker-controlled object graphs through affected mapping paths may be impacted.
Lucky Penny Software Bundle - includes AutoMapper v16.1.0Mar 3, 2026
Features
  • Added Debug and Release build configurations to slnx.
  • Migrated the AutoMapper solution from the traditional .sln format to the newer XML-based .slnx format.
  • Added DI-enabled conditions and pre-conditions; updated docs accordingly.
  • Added support for DI-enabled destination factories.
  • Wrapping the exception to provide better feedback to the user.
  • Now disable polymorphic LINQ mapping.
Fixes
  • Fixed duplicate BOM in ServiceCollectionExtensions.cs.
  • Fixed review feedback: double semicolon, DI condition integration test, docs example.
  • Fixed bug around order of open generic registration.
  • Correctly converting nullables for MapAtRuntime.
  • Correctly handling consecutive uppercase characters.
Lucky Penny Software Bundle - includes MediatR v14.1.0Mar 3, 2026
Features
  • Migrated the solution from the traditional .sln format to the newer .slnx (XML-based solution) format, updating target frameworks to .NET 10 and upgrading dependency versions accordingly.
    • Migration from MediatR.sln to MediatR.slnx with improved XML-based structure.
    • Upgrade of target framework from net6.0 to net10.0 in benchmark projects.
    • Update of Microsoft.Extensions.DependencyInjection from version 8.0.0 to 10.0.0.
    • Removal of coverlet.collector package reference from dependency injection tests.
  • Added robust handling for F# assemblies and other assemblies that may throw ReflectionTypeLoadException when accessing their defined types. The changes introduce a new extension method GetLoadableDefinedTypes that gracefully catches these exceptions and returns only the successfully loaded types.
  • Simplified CheckLicense to use GetRequiredService instead of fallback constructors.
  • Log warning when perpetual license cannot be applied due to missing build date.
Fixes
  • Removed Azure-dependent CI steps to fix forked PR builds.
  • Fixed handling nested generic arguments where AddOpenBehavior fails to register pipeline behaviors with nested generic parameters (e.g., IPipelineBehavior<TRequest, List<TItem>>). The fix introduces assembly scanning to explicitly close open behaviors when their response type is a nested generic, working around a DI container limitation.
  • Fixed cryptic "No constructor" Error When ILoggerFactory Is Not Registered. Now providing clearer error messages when ILoggerFactory is not registered before AddMediatR() is called. The PR aims to replace the cryptic "No constructor for type 'MediatR.Licensing.LicenseAccessor' can be instantiated" error with an actionable message directing users to call services.AddLogging().
  • De-duping notification handlers before dispatching. Fixed issue where notification handlers were being called multiple times when using DI containers that support variance (e.g., DryIoc). When a derived notification type (E2 : E1) exists alongside handlers for both base (C1 : INotificationHandler) and derived types (C2 : INotificationHandler), publishing E2 would incorrectly invoke C1 twice due to the contravariant interface combined with MediatR's intentional dual registration for MSDI compatibility.