Skip to content

Release Flow

Preview ZodSharp Reviewed 2026-09-18 purview-dev/zodsharp aspnetcore c-sharp csharp dotnet json-schema newtonsoft-json schema source-generator system-text-json validation zero-allocation zod

Purview.ZodSharp releases are driven by the shared purview-dev/build pipeline through the GitHub Actions workflows in .github/workflows/.

The package version comes from package.json (version field). The repo is currently on the 2.0.0-prerelease.* line. Bump package.json to release a new version.

Package identities are Purview.ZodSharp.* (core, SystemTextJson, NewtonsoftJson, AspNetCore). Central package management lives in Directory.Packages.props; package versions there are minimum requirements, not exact pins, so the resolved graph can drift.

Workflow Trigger Pipeline mode
pr.yml pull requests against main purview-build.yml with run-pack: true, validate-pack: true
release.yml pushes to main purview-release.yml with release-mode: NuGet

Both consume purview-build.json:

  • Build — solution (src/ZodSharp.slnx), test root (src/tests), patterns (*Tests.csproj), filter (/*/*/*/*).
  • PackValidation — requires symbol packages/files and validates RequiredContent per package (per-TFM DLL + XML, analyzer assemblies and buildTransitive/Purview.ZodSharp.props for the core package, README.md and purview-logo-light.png for every package).
  • Release.ModeNone for PR/local runs.
Terminal window
just pipeline-pr # restore, build, lint, tests, pack, validate pack
just pipeline-build # restore, build, lint (no tests, no release)
just pipeline-tests # pipeline with tests enabled
just pipeline-release # pack, publish, GitHub release (NuGet mode)
just pipeline-local-release # pack + publish to a local NuGet feed

See the Justfile for the full command set (just build, just test, just lint-check, just lint-fix, just pack, just perf-tests).

Commits must follow Conventional Commits, enforced by Lefthook + Commitlint (.config/lefthook.yml and commitlint.config.mts). Allowed types: build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test.

  • just build succeeds with no new warnings/errors.
  • Relevant tests pass (just test).
  • just lint-check (CSharpier) reports no formatting changes.
  • Packed packages match purview-build.json PackValidation.
  • Generated code is deterministic and reviewable.