From cc96ac641fb430f1bb43cf4231c0b531e874af8c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 14 Nov 2026 12:17:57 +0000 Subject: [PATCH 1/2] chore(main): release 1.0.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ version.txt | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index fd6cef7..37fcefa 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.0.0-beta.1" + ".": "1.0.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 858787d..296bf87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.0.0](https://github.com/Frognar/dotValid/compare/v1.0.0-beta.1...v1.0.0) (2026-11-14) + + +### Build System + +* prepare the 1.0.0 release ([#43](https://github.com/Frognar/dotValid/issues/43)) ([c8853e8](https://github.com/Frognar/dotValid/commit/c8853e82f4aacabad499c41953ab339725da10b6)) + ## [1.0.0-beta.1](https://github.com/Frognar/dotValid/compare/v1.0.0-alpha.1...v1.0.0-beta.1) (2026-11-14) diff --git a/version.txt b/version.txt index ffbc993..3eefcb9 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.0.0-beta.1 +1.0.0 From 55edbd3791c8b2ded91611ba56269d1f88b3b495 Mon Sep 17 00:00:00 2001 From: forgnar Date: Sat, 14 Nov 2026 13:18:28 +0100 Subject: [PATCH 2/2] docs: add highlights to the 1.0.0 changelog Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_012weRUz3QcTAaQw32ZmQkoK --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 296bf87..ce9c30d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ ## [1.0.0](https://github.com/Frognar/dotValid/compare/v1.0.0-beta.1...v1.0.0) (2026-11-14) +### Highlights + +A ground-up rewrite for .NET 11 and C# 15 unions. The 0.5 line is retired; the README has a migration table. + +- `Validated` is a C# 15 union with exactly two cases, `Valid` and `Invalid`: `valid(...)` and + `invalid(...)` convert implicitly, a `switch` over both is exhaustive, and an invalid validation is never empty. +- Every error, not just the first: `Zip`, `Combine` (2–8), `Apply`, `Sequence`, `Traverse` and `CombineAsync` read every + input and collect every error in order. The applicative laws are properties. +- Dependent steps when they are needed: `Then` and `Ensure` short-circuit on purpose (no `Bind`, no `SelectMany`). +- Any type can be the error; `ValidationError(Property, Message)`, `Validated.Check` and `Validated.FromNullable` cover + the common cases. No `.Value` or `IsValid`: values come out through pattern matching, `Match` or `OrDefault`. +- Async where it pays off: `MatchAsync`, `MapAsync`, `ThenAsync`, and `CombineAsync` for checks that run as tasks. +- Zero allocations on the valid path for value types (checked on every build); trimming and Native AOT compatible; no + dependencies. Requires .NET 11. ### Build System