Release v22.5.0
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 withCratis.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.400or later in that SDK band) because they target Roslyn 5.9. Cratis.CodeAnalysisis 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:
CratisCratis.ArcCratis.Arc.ChronicleCratis.Arc.Chronicle.CodeAnalysisCratis.Arc.Chronicle.TestingCratis.Arc.CoreCratis.Arc.Core.CodeAnalysisCratis.Arc.EntityFrameworkCoreCratis.Arc.MongoDBCratis.Arc.OpenApiCratis.Arc.ProxyGeneratorCratis.Arc.ProxyGenerator.BuildCratis.Arc.ProxyGenerator.Specs.CommandResponseHandlerDependencyCratis.Arc.ProxyGenerator.Specs.FakeCommandResponseHandlerDependencyCratis.Arc.ScreenplayCratis.Arc.SwaggerCratis.Arc.TestingCratis.CodeAnalysisCratis.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.