From 246ea96b4c36850338725977a8cf949d3c846e14 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2026 09:51:48 +0000 Subject: [PATCH] chore(main): release 7.0.0 --- .release-please-manifest.json | 2 +- AGENTS.md | 2 +- CHANGELOG.md | 23 +++++++++++++++++++++++ Directory.Build.props | 2 +- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 23dcfcf..aeda91d 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "6.5.2" + ".": "7.0.0" } diff --git a/AGENTS.md b/AGENTS.md index debbc80..47ee424 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,7 +4,7 @@ CSharpEssentials is a modular .NET NuGet ecosystem (27 packages) that bridges OOP and Functional Programming in C#. Core patterns: Result/Maybe monads, Discriminated Unions (Any), composable Rules engine, DDD base classes (EntityBase), EF Core interceptors/pagination, ASP.NET Core utilities, source-generated Minimal API endpoints (CSharpEssentials.Endpoints) and attribute-based DI registration (CSharpEssentials.DependencyInjection). Multi-targets: .NET 11/10/9 (some packages also net8.0), netstandard2.1 (a few also netstandard2.0). CSharpEssentials.EntityFrameworkCore targets net10.0/net9.0/net8.0 only (no net11.0), each pinned to its EF Core major. CSharpEssentials.AspNetCore.OpenApi targets net10.0 only. -Current version: 6.5.2 +Current version: 7.0.0 ## Why diff --git a/CHANGELOG.md b/CHANGELOG.md index d6f435e..d360e25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,29 @@ All notable changes to the CSharpEssentials packages are listed here. All packages share one version number. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [7.0.0](https://github.com/senrecep/CSharpEssentials/compare/v6.5.2...v7.0.0) (2026-10-20) + + +### ⚠ BREAKING CHANGES + +* **idempotency:** idempotency moves to the new CSharpEssentials.Idempotency core; see [the migration guide](https://github.com/senrecep/CSharpEssentials/blob/main/docs/migration/v6-to-v7-idempotency.md). + - `IIdempotencyStore`, `IdempotencyReservation`, `IdempotencyReservationStatus`, `InMemoryIdempotencyStore` and `DistributedCacheIdempotencyStore` are removed from `CSharpEssentials.AspNetCore`; use `IIdempotencyRecordStore`, `InMemoryIdempotencyRecordStore` and `DistributedCacheIdempotencyRecordStore`. + - `IdempotencyOptions.KeyScope` and `DefaultKeyScope` are removed; use `ScopeResolver` with `IdempotencyScopes`. Scopes are built only through the `IdempotencyScope` factories, and `AllowUnscopedKeys` is replaced by `UnscopedKeyBehavior`. + - `IdempotencyOptions.ShouldStore` is a `Func` instead of a `Func`; `IdempotencyStorePolicies.SuccessOnly` restores the 6.x rule. + - `IdempotencyOptions.RetryAfter` is a non-nullable `TimeSpan`; the 409 always carries `Retry-After`. + - A 5xx after the handler started is stored for `ServerErrorRetention`; 503, 504, exceptions and aborts after the handler started keep the key in flight until `InFlightTimeout` instead of releasing it. + - A key must be printable ASCII other than space, `"` and `\`; other keys get 400 `Idempotency.KeyInvalid`. + - `IdempotencyOptions` is resolved as a transient `CurrentValue`, and records use the `idem:v3:` storage key format, so 6.x entries are not read. + +### Added + +* **idempotency:** production-grade idempotency across http, mediator, messaging and ef core ([42287de](https://github.com/senrecep/CSharpEssentials/commit/42287de0e8a0663cd72c2d203e16315d44a12643)) + + +### Fixed + +* **idempotency:** store observe results in the business transaction ([#158](https://github.com/senrecep/CSharpEssentials/issues/158)) ([bdcbdd1](https://github.com/senrecep/CSharpEssentials/commit/bdcbdd15cbedda81a95e4e81754c0c594bfade8e)) + ## [6.5.2](https://github.com/senrecep/CSharpEssentials/compare/v6.5.1...v6.5.2) (2026-10-10) diff --git a/Directory.Build.props b/Directory.Build.props index 34725d5..72c14ee 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -44,7 +44,7 @@ main - 6.5.2 + 7.0.0 true