Skip to content

Release v20.49.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 06:58
dc1571c

Summary

Setting up Arc without wiring Chronicle is a valid choice (commands and queries can run over MongoDB or EF Core). But if you do use Chronicle, forgetting WithChronicle() used to surface as a cryptic container error at first use. This PR makes that mistake obvious across three layers — a compile-time analyzer, an actionable runtime error, and clearer docs and API reference.

Added

  • New ARCCHR0005 analyzer that warns at compile time when a project sets up Arc with AddCratisArc but never calls WithChronicle() or AddCratis(), yet uses Chronicle in the same project (an aggregate root, reactor, reducer, projection, [EventType] event, or a type injecting IEventLog/IEventStore). It stays silent when Chronicle genuinely is not used.

Changed

  • Resolving a Chronicle service such as IEventLog without Chronicle configured now throws an actionable error that names the command, query, or validator and its parameter, and points at the fix (WithChronicle() or AddCratis()) instead of a raw "Unable to resolve service for type EventStoreName" container exception.
  • Expanded the IntelliSense/API documentation on AddCratis, UseCratis, AddCratisArc, UseCratisArc, and WithChronicle (all overloads): they clarify that the application hosts the Chronicle client — which connects to a separately running Chronicle instance — rather than an embedded engine, and include runnable examples for the common setups.