Hive
Xcode 27: tuist generate reports a false circular dependency for xctest-dynamic-overlay
GitHub issue · Open
tuist generate reports a false circular dependency for xctest-dynamic-overlay
Environment
macOS: 27.0 (26A5425a)
Xcode: 27.0 (beta 6) (27A5252f)
Swift: 6.4
Tuist: 4.206.0 (same on 4.208.0-canary.1)
The same project succeeds with macOS 26 and Xcode 26.
Reproduction
The reproducer is a minimal Tuist project with two direct package dependencies:
.package(
url: "https://github.com/pointfreeco/xctest-dynamic-overlay.git",
exact: "1.13.1",
),
.package(
url: "https://github.com/pointfreeco/swift-snapshot-testing.git",
exact: "1.19.4",
),
Run only:
tuist install
tuist generate
tuist install succeeds and resolves:
swift-custom-dump 1.7.3
swift-snapshot-testing 1.19.4
swift-syntax 603.0.2
xctest-dynamic-overlay 1.13.1
Actual result
tuist generate fails while constructing the graph:
Found circular dependency between targets:
.../TuistXCTestIssueReportingRepro
-> .../xctest-dynamic-overlay:XCTestDynamicOverlay
-> .../xctest-dynamic-overlay:_IssueReporting
-> .../xctest-dynamic-overlay:_IssueReporting
Expected result
Tuist should generate the workspace successfully. The dependency graph should not contain a target depending on itself.
Additional context
xctest-dynamic-overlay 1.13.1 is a compatibility package forwarding to the newer issue-reporting implementation. swift-snapshot-testing brings swift-custom-dump transitively, which creates the relevant package graph.
The same dependency setup works with macOS 26 and Xcode 26, and the issue appears only after switching to macOS 27/Xcode 27.
Investigate, reproduce, or fix this item in an isolated repository. Each Flight preserves its outcome and agent session.
Start a Flight and preserve its objective, outcome, and session here.
No GitHub comments yet.