Skip to content

Release v20.46.0

Choose a tag to compare

@github-actions github-actions released this 21 Jun 18:04
7184dd0

Summary

Makes Arc consumable again from the Cratis meta package alongside Arc.Chronicle, and tightens two long-standing rough edges. Arc 20.44.0 failed real consumers at both build and runtime; this restores a clean restore-build-run path against released Chronicle, fixes an analyzer false-positive, and exposes the sanctioned MobX observer boundary in the React MVVM package. It also restores the per-target-framework dependency pins (net8 → 8.x, net9 → 9.x) that a blanket version-bump chore had overwritten with 10.x, so net8/net9 builds no longer pull 10.x framework packages.

Added

  • Exported observer from @cratis/arc.react.mvvm so a child component that reads view model observables directly can be given its own observer boundary, with guidance in the React MVVM documentation.
  • Added a no-direct-mobx-react-import ESLint rule that flags direct imports from mobx-react / mobx-react-lite and points consumers to @cratis/arc.react.mvvm instead.

Changed

  • Raised the minimum required Cratis.Chronicle to 15.35.0.
  • The Cratis meta package no longer bundles the Cratis analyzers; the ARC*/ARCCHR* analyzers now flow through the individual packages. A project referencing only Cratis still gets full runtime and proxy generation, but receives the analyzers only when a sub-package such as Cratis.Arc.Core or Cratis.Arc.MongoDB is referenced.
  • Realigned the net8/net9 framework dependency versions to their target-framework major (8.x / 9.x), so building for net8 or net9 no longer resolves 10.x Microsoft.Extensions.* packages.
  • The recommended Cratis Arc ESLint config now reports direct mobx-react / mobx-react-lite imports as errors.

Fixed

  • Referencing the Cratis meta package alongside a package that transitively brings Cratis.Arc.Core (such as Cratis.Arc.MongoDB) no longer fails the build with CS0101 'Cratis.Arc.Generated.GeneratedMarker'.
  • Arc no longer throws MissingMethodException at runtime against released Chronicle. The Chronicle floor now matches the AppendMany/Append overloads Arc actually calls, so an incompatible Chronicle version fails dotnet restore instead of crashing at runtime.
  • The ARCCHR0002 analyzer no longer reports an ambiguous command event source id when the command's Handle supplies the event source explicitly through a tuple return — including new-stream-create commands that return a generated id deriving from EventSourceId<T>.