Skip to content

Release/3.0.0 prerelease.5 - #67

Merged
kieronlanning merged 4 commits into
mainfrom
release/3.0.0-prerelease.5
Nov 11, 2026
Merged

kieronlanning merged 4 commits into
mainfrom
release/3.0.0-prerelease.5

Conversation

@kieronlanning

Copy link
Copy Markdown
Collaborator

No description provided.

- target net10.0/net11.0 only; the net8.0/net9.0 drop stays in 3.0.0

- .NET 11 packages and CI move from RC3 to GA (11.0.0 / SDK 11.0.100); memory-safety tier and Runtime Async opt-ins documented

- NativeUnion is now a hand-written [Union] type using the non-boxing access pattern; Union<T> shares its tag and empty semantics

- [ZodSchema] on a union dispatches to each case type's schema, warns on a case without a validator (ZODSGEN055), rejects an empty union for Required/NonSentinel, and carries async rules through ASP.NET Core, Blazor and Microsoft.Extensions.Validation

- bump to 3.0.0-prerelease.5
- Native unions round-trip through System.Text.Json with a classifier for Web defaults and object-shaped cases; union members map JSON paths through the active case; generated union and closed-hierarchy members export oneOf (with the configured discriminator).

- Generated schemas read the whole base chain, so inherited public members are validated, exported, resolved and diagnosed; an overridden or hidden member is taken once from the most derived declaration. A base-type change re-runs the derived schema.

- Every DataAnnotations ValidationAttribute now runs: class-level sync and async attributes (including inherited AsyncValidationAttribute), and unmapped attributes such as CustomValidation, FileExtensions, EnumDataType and consumer attributes fall back to GetValidationResult/GetValidationResultAsync. Mapped rules are never run twice; [DisplayName] supplies the display name when [Display] is absent.

- [SkipValidation] is honored throughout: generated properties are omitted, a class is not claimed by the resolver, and parameters or parameter types are skipped by the endpoint filter and client validation. On .NET 11 the filter matches the real SkipValidationAttribute. IsValidatableMember includes [ZodAsyncMember]-only members, and AlsoRunDataAnnotations field-level validation falls through to the next resolver.

Verified with build, CSharpier, 4510 tests, the packed-generator smoke test and pack.
@kieronlanning
kieronlanning merged commit edf4b76 into main Nov 11, 2026
7 checks passed
@kieronlanning
kieronlanning deleted the release/3.0.0-prerelease.5 branch November 11, 2026 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant