Skip to content

Remove XCResultKit and LegacyResultReader once Apple removes the legacy commands #469

Description

@tylervick

Phase 6 of the #391 migration — deliberately deferred until Apple removes xcresulttool --legacy, because the cross-backend differential (#450) only proves parity while both backends run, and it should keep running as long as it can.

Trigger: the toolchain-drift workflow (#392/#442) files/updates its drift issue when xcrun xcresulttool version stops reporting the legacy commands format version marker. That alarm is the signal to do this work — not before.

Scope when it fires:

  • Remove the XCResultKit dependency from Package.swift / Package.resolved.
  • Delete Sources/XCTestHTMLReportCore/Classes/ResultReading/Legacy/ wholesale (LegacyResultReader + ResultFile, the only XCResultKit importers).
  • Retire DifferentialTests, KnownLossMasker, and the allow-list (their job is done); keep the modern-leg tests as the only suite.
  • Simplify ResultBackend: legacy becomes a clear error, auto = modern.
  • The spec notes the failure-row hoist rule (R8) and legacy-shaped scaffold constraints become deletable at this point; the redesign may restore native nesting if it wants (see the spec's Task 12 execution rules).
  • Drop the forced-modern CI leg (redundant once modern is the only backend).

No milestone on purpose — this lands on Apple's schedule, not ours. Refs #391, #450, #392.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions