Skip to content

Release v20.44.0

Choose a tag to compare

@github-actions github-actions released this 20 Jun 01:02

Summary

A single reference to the Cratis package now ships the full set of Cratis Roslyn analyzers, and several new analyzers guide developers and AI toward idiomatic Arc code.

Added

  • ARC0007 analyzer — warns when a [Command] is declared as a class instead of a record.
  • ARC0008 analyzer — warns when a [ReadModel] is declared as a class instead of a record.
  • ARC0009 analyzer — warns when a ConceptAs<T> is declared as a class instead of a record.
  • ARCCHR0002 analyzer — warns when a [Command] has multiple event source id candidates (EventSourceId, EventSourceId<T>, a type with an implicit conversion to EventSourceId, or [Key]) but does not implement ICanProvideEventSourceId; exempt when Handle returns only EventForEventSourceId.
  • ARCCHR0003 analyzer — warns when a reactor injects IEventLog instead of returning side-effect events.
  • ARCCHR0004 analyzer — warns when [EventType] specifies an explicit id (the type name is the identifier); generation stays allowed.

Changed

  • The Cratis meta package now bundles every Cratis analyzer (Arc, Arc.Chronicle, the Arc source generator, the Fundamentals type discovery generator, and the Metrics analyzer), so installing Cratis enables all analyzers without referencing the sub-packages directly.