Skip to content

Release v15.29.4

Choose a tag to compare

@github-actions github-actions released this 18 May 16:04
966d251

Summary

Projection definitions were being treated as changed when only optional collection defaults differed (null vs empty), which could trigger broad replay behavior. This update makes comparison semantic for optional collections so only genuinely changed definitions are considered replay candidates.

Added

  • Focused spec for ProjectionDefinitionComparer validating that Tags/Nested null and empty forms compare as equivalent.

Changed

  • Normalized optional metadata fields before projection definition comparison:
    • Tags: normalize ordering and treat empty as unset.
    • Nested: treat empty as unset.
  • Kept structural comparison behavior unchanged for real definition differences.
first = first with
{
    Tags = NormalizeTags(first.Tags),
    Nested = NormalizeNested(first.Nested)
};

Fixed

  • Prevented false-positive projection definition changes caused by storage/default serialization shape differences.
  • Reduced unnecessary replay/replay-recommendation triggers for projections whose effective definition did not change.

Removed

  • None.

Security

  • None.

Deprecated

  • None.