Skip to content

Release v22.5.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 12:27
a2e913d

Summary

Restore Arc's Roslyn analyzers, code fixes, and source generator on the current .NET/Roslyn toolchain, and make aggregate package references load each analyzer and generator exactly once.

Fixed

  • Prevent duplicate Arc source-generator execution when applications reference Cratis.Arc, Cratis, or combine those packages with Cratis.CodeAnalysis.
  • Preserve ARC and ARCCHR analyzer/code-fix delivery through the existing standalone analyzer package IDs.
  • Keep Workspaces and Composition dependencies in the IDE/tool host rather than application output.
  • Keep proxy generation working when project package identities differ from assembly names or include analyzer-only dependencies.

Changed

  • Arc analyzers and generators now require the .NET SDK declared by global.json (10.0.400 or later in that SDK band) because they target Roslyn 5.9.
  • Cratis.CodeAnalysis is a dependency-only umbrella over the ARC and ARCCHR analyzer packages.

Release effects

This PR remains minor and is expected to create Arc 22.4.0 while 22.3.0 remains the latest release.

It publishes these 19 NuGet packages:

  • Cratis
  • Cratis.Arc
  • Cratis.Arc.Chronicle
  • Cratis.Arc.Chronicle.CodeAnalysis
  • Cratis.Arc.Chronicle.Testing
  • Cratis.Arc.Core
  • Cratis.Arc.Core.CodeAnalysis
  • Cratis.Arc.EntityFrameworkCore
  • Cratis.Arc.MongoDB
  • Cratis.Arc.OpenApi
  • Cratis.Arc.ProxyGenerator
  • Cratis.Arc.ProxyGenerator.Build
  • Cratis.Arc.ProxyGenerator.Specs.CommandResponseHandlerDependency
  • Cratis.Arc.ProxyGenerator.Specs.FakeCommandResponseHandlerDependency
  • Cratis.Arc.Screenplay
  • Cratis.Arc.Swagger
  • Cratis.Arc.Testing
  • Cratis.CodeAnalysis
  • Cratis.Testing

It also publishes five npm packages:

  • @cratis/arc
  • @cratis/arc.react
  • @cratis/arc.react.mvvm
  • @cratis/arc.vite
  • @cratis/eslint-plugin-arc

The release creates the GitHub tag/release, then dispatches Documentation and Samples updates after successful npm publication. It creates no container image, migration, environment change, or production deployment.

Publication is non-atomic: either registry may contain a published subset if a later package fails, and Documentation/Samples dispatch can follow npm success even if NuGet failed. Recovery requires registry/downstream inventory, containment or unlisting where supported, and a corrected follow-up version; immutable versions are never reused.

Any head, base, label, workflow, latest-version, package-set, destination, or artifact-plan change requires a fresh effect review. Final merge remains blocked until every current-head hosted check is terminal and successful and an authorized human completes product/release review and performs the merge.