Skip to content

Analyzer should suggest replay-safe orchestration logging helpers and package guidance for raw Durable logger setup #148

Description

@cwinland

Docs reference: docs/getting-started/testing-guide.md

FastMoq now has a replay-safe orchestration logging helper in FastMoq.AzureFunctions, but raw provider-native TaskOrchestrationContext logger setup still leaves the dependency ceiling and provider-path rules implicit. Analyzer guidance should steer supported tests toward the helper and package guidance.

Scope

  • detect raw setup patterns for replay-safe TaskOrchestrationContext.CreateReplaySafeLogger(...) flows that can be replaced by AddTaskOrchestrationReplaySafeLogging(...)
  • surface the dependency ceiling clearly: the helper depends on Microsoft.DurableTask.Abstractions rather than the heavier worker extension package
  • distinguish the provider-neutral concrete-instance helper path from the narrower tracked-mock path that depends on FastMoq's tracked-property configuration contract, which the built-in Moq provider supports today

Acceptance checklist

  • Analyzer diagnostics identify raw replay-safe orchestration logger setup patterns that should move to AddTaskOrchestrationReplaySafeLogging(...).
  • Package guidance points to FastMoq.AzureFunctions and keeps the DurableTask abstraction dependency ceiling explicit.
  • Analyzer messaging distinguishes the concrete-instance helper path from the narrower tracked-mock path and references the tracked-property configuration contract where that distinction matters.
  • Analyzer tests cover supported replacements and representative no-diagnostic provider-path exclusions.
  • The analyzer guidance aligns with the provider-support matrix and dependency notes documented for #107.

Related follow-up

  • Runtime/provider adoption work for the tracked-property configuration contract lives in #150.

Metadata

Metadata

Assignees

No one assigned

    Labels

    analyzersAnalyzer and code-fix follow-up workenhancementNew feature or requestpriorityThis should be worked on before others

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions