From e3a7431e131a506e26a821ff953ca8a2cf42a38a Mon Sep 17 00:00:00 2001 From: Kyle Date: Wed, 26 Aug 2026 23:24:46 +0800 Subject: [PATCH 1/2] Update Compute version --- .github/ISSUE_TEMPLATE/bump-iag.yml | 8 ++++---- .github/workflows/stdout_renderer.yml | 3 +-- Example/README.md | 4 +--- Example/Tuist/Package.resolved | 4 ++-- Package.resolved | 2 +- Scripts/CI/compute_setup.sh | 2 +- .../OpenSwiftUICore/Util/AttributeGraphAdditions.swift | 7 +------ mise.compute.toml | 7 ++++--- 8 files changed, 15 insertions(+), 22 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bump-iag.yml b/.github/ISSUE_TEMPLATE/bump-iag.yml index 1d3c51a4d..d556223b0 100644 --- a/.github/ISSUE_TEMPLATE/bump-iag.yml +++ b/.github/ISSUE_TEMPLATE/bump-iag.yml @@ -17,7 +17,7 @@ body: attributes: label: Current binary version description: The Compute binary version currently pinned in `mise.compute.toml`. - placeholder: "0.4.1" + placeholder: "0.5.2" validations: required: true @@ -26,7 +26,7 @@ body: attributes: label: Target binary version description: The proposed Compute binary version. Enter "Unchanged" if this pin does not move. - placeholder: "0.5.0" + placeholder: "0.6.0" validations: required: true @@ -35,7 +35,7 @@ body: attributes: label: Current source version description: The Compute source tag or revision currently pinned in `mise.compute.toml`. - placeholder: "0.4.1-bugfix.2" + placeholder: "0.5.2" validations: required: true @@ -44,7 +44,7 @@ body: attributes: label: Target source version description: The proposed Compute source tag or revision. Enter "Unchanged" if this pin does not move. - placeholder: "0.5.0" + placeholder: "0.6.0" validations: required: true diff --git a/.github/workflows/stdout_renderer.yml b/.github/workflows/stdout_renderer.yml index e215ce58b..903a79ce0 100644 --- a/.github/workflows/stdout_renderer.yml +++ b/.github/workflows/stdout_renderer.yml @@ -59,8 +59,7 @@ jobs: OPENSWIFTUI_TARGET_RELEASE: ${{ matrix.release }} OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH: ${{ matrix.attributegraph }} OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE: ${{ matrix.compute }} - OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY: 0 - OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION: "0.4.1-bugfix.2" + OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY: 1 GH_TOKEN: ${{ github.token }} steps: - uses: actions/checkout@v4 diff --git a/Example/README.md b/Example/README.md index 2ef35ccc1..9866524ba 100644 --- a/Example/README.md +++ b/Example/README.md @@ -23,9 +23,7 @@ To use Compute instead, run setup with the Compute mise environment: ./setup.sh --compute ``` -The Compute environment is defined in the repository's root `mise.compute.toml`. It disables the private AttributeGraph framework and resolves OpenSwiftUIProject/Compute from source at `0.4.1-bugfix.2`. - -The Compute 0.4.0 and 0.4.1 binary releases are usable, but they have produced more UI test crashes than 0.3.0. The patched source release is therefore the default. +The Compute environment is defined in the repository's root `mise.compute.toml`. It disables the private AttributeGraph framework and uses the Compute 0.5.2 binary release by default. The same release is pinned for source-based builds. ## Generate Project diff --git a/Example/Tuist/Package.resolved b/Example/Tuist/Package.resolved index 4582069e9..a98b8d377 100644 --- a/Example/Tuist/Package.resolved +++ b/Example/Tuist/Package.resolved @@ -6,8 +6,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/OpenSwiftUIProject/Compute", "state" : { - "revision" : "a8387801fb54836919bec824f99049b28245d0b3", - "version" : "0.4.1-bugfix.2" + "revision" : "fcea97e940b65659e4ee8dd74fffacb332d1a103", + "version" : "0.5.2" } }, { diff --git a/Package.resolved b/Package.resolved index 228cac94d..fdb484ddf 100644 --- a/Package.resolved +++ b/Package.resolved @@ -16,7 +16,7 @@ "location" : "https://github.com/OpenSwiftUIProject/OpenAttributeGraph", "state" : { "branch" : "main", - "revision" : "65e7cbf19c2c2797d3c5eaafcb19190130c8ad47" + "revision" : "e3484bf5e6ccb6214a4d88b7846f2bde35af1d19" } }, { diff --git a/Scripts/CI/compute_setup.sh b/Scripts/CI/compute_setup.sh index d887f3478..3291f9cbd 100755 --- a/Scripts/CI/compute_setup.sh +++ b/Scripts/CI/compute_setup.sh @@ -14,7 +14,7 @@ clone_checkout_compute() { revision=$(Scripts/CI/get_revision.sh compute 2>/dev/null || true) fi if [ -z "$revision" ]; then - revision="0.4.1-bugfix.2" + revision="0.5.2" fi cd .. if [ ! -d Compute ]; then diff --git a/Sources/OpenSwiftUICore/Util/AttributeGraphAdditions.swift b/Sources/OpenSwiftUICore/Util/AttributeGraphAdditions.swift index 694743de3..6c58375bc 100644 --- a/Sources/OpenSwiftUICore/Util/AttributeGraphAdditions.swift +++ b/Sources/OpenSwiftUICore/Util/AttributeGraphAdditions.swift @@ -35,11 +35,6 @@ extension Subgraph { } } -// FIXME -extension Graph { - package typealias TraceFlags = TraceOptions -} - // MARK: - Defaultable [6.5.4] package protocol Defaultable { @@ -301,7 +296,7 @@ extension Graph { _openSwiftUIUnimplementedFailure() } - package static func startTracing(options: Graph.TraceFlags? = nil) { + package static func startTracing(options: Graph.TraceOptions? = nil) { Graph.startTracing(nil, options: options ?? ProcessEnvironment.tracingOptions) } diff --git a/mise.compute.toml b/mise.compute.toml index cfdc082ab..4194f9350 100644 --- a/mise.compute.toml +++ b/mise.compute.toml @@ -5,7 +5,8 @@ tuist = "4.203.4" TUIST_USE_SWIFTERPM=1 OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH = "0" OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE = "1" -OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY = "0" -OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_VERSION = "0.4.1" -OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION = "0.4.1-bugfix.2" +OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY = "1" +OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_VERSION = "0.5.2" +OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_CHECKSUM = "0eca53a3620776cffcc3d2047d11efaf893b53078b95e59e793f86caa3f2c169" +OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION = "0.5.2" # OPENSWIFTUI_USE_LOCAL_DEPS = "1" From be1102e326409aed52e99d3b76c3dbd83ee0b2da Mon Sep 17 00:00:00 2001 From: Kyle Date: Wed, 26 Aug 2026 23:25:04 +0800 Subject: [PATCH 2/2] Remove IAG disabled crash case --- .../Animation/Animation/AnimationCompletionUITests.swift | 4 +--- .../Render/GeometryEffect/MatchedGeometryEffectUITests.swift | 1 - .../View/DynamicViewContent/ForEachUITests.swift | 1 - .../View/LabeledContent/LabeledContentUITests.swift | 1 - .../View/LabeledContent/LabelsHiddenModifierUITests.swift | 1 - Example/OpenSwiftUIUITests/View/ProgressViewUITests.swift | 4 +--- Example/OpenSwiftUIUITests/View/ToggleUITests.swift | 1 - 7 files changed, 2 insertions(+), 11 deletions(-) diff --git a/Example/OpenSwiftUIUITests/Animation/Animation/AnimationCompletionUITests.swift b/Example/OpenSwiftUIUITests/Animation/Animation/AnimationCompletionUITests.swift index ad8f9a9e2..0783a8781 100644 --- a/Example/OpenSwiftUIUITests/Animation/Animation/AnimationCompletionUITests.swift +++ b/Example/OpenSwiftUIUITests/Animation/Animation/AnimationCompletionUITests.swift @@ -8,9 +8,7 @@ import SnapshotTesting @MainActor @Suite(.snapshots(record: .never, diffTool: diffTool)) struct AnimationCompletionUITests { - @Test( - .disabled(if: attributeGraphVendor == .compute, "Temporarily disabled for Compute snapshot crash. It works fine when this single test case. But it will crash when running the whole test plan"), - ) + @Test func logicalAndRemovedComplete() { struct ContentView: AnimationTestView { nonisolated static var model: AnimationTestModel { diff --git a/Example/OpenSwiftUIUITests/Render/GeometryEffect/MatchedGeometryEffectUITests.swift b/Example/OpenSwiftUIUITests/Render/GeometryEffect/MatchedGeometryEffectUITests.swift index 6b25e9721..b452a5432 100644 --- a/Example/OpenSwiftUIUITests/Render/GeometryEffect/MatchedGeometryEffectUITests.swift +++ b/Example/OpenSwiftUIUITests/Render/GeometryEffect/MatchedGeometryEffectUITests.swift @@ -8,7 +8,6 @@ import Testing @MainActor @Suite( - .disabled(if: attributeGraphVendor == .compute, "Temporarily disabled for IAG snapshot crash"), .snapshots(record: .never, diffTool: diffTool) ) struct MatchedGeometryEffectUITests { diff --git a/Example/OpenSwiftUIUITests/View/DynamicViewContent/ForEachUITests.swift b/Example/OpenSwiftUIUITests/View/DynamicViewContent/ForEachUITests.swift index 7326904d4..45a61b1ab 100644 --- a/Example/OpenSwiftUIUITests/View/DynamicViewContent/ForEachUITests.swift +++ b/Example/OpenSwiftUIUITests/View/DynamicViewContent/ForEachUITests.swift @@ -8,7 +8,6 @@ import SnapshotTesting @MainActor @Suite( - .disabled(if: attributeGraphVendor == .compute, "Temporarily disabled for Compute snapshot crash. It will crash when running the whole test plan"), .snapshots(record: .never, diffTool: diffTool), ) struct ForEachUITests { diff --git a/Example/OpenSwiftUIUITests/View/LabeledContent/LabeledContentUITests.swift b/Example/OpenSwiftUIUITests/View/LabeledContent/LabeledContentUITests.swift index 6fba052da..6e48b6372 100644 --- a/Example/OpenSwiftUIUITests/View/LabeledContent/LabeledContentUITests.swift +++ b/Example/OpenSwiftUIUITests/View/LabeledContent/LabeledContentUITests.swift @@ -7,7 +7,6 @@ import SnapshotTesting @MainActor @Suite( - .disabled(if: attributeGraphVendor == .compute, "Temporarily disabled for Compute snapshot stack overflow. See https://github.com/jcmosc/Compute/issues/47"), .snapshots(record: .never, diffTool: diffTool) ) struct LabeledContentUITests { diff --git a/Example/OpenSwiftUIUITests/View/LabeledContent/LabelsHiddenModifierUITests.swift b/Example/OpenSwiftUIUITests/View/LabeledContent/LabelsHiddenModifierUITests.swift index 7adba3ed7..74221fddf 100644 --- a/Example/OpenSwiftUIUITests/View/LabeledContent/LabelsHiddenModifierUITests.swift +++ b/Example/OpenSwiftUIUITests/View/LabeledContent/LabelsHiddenModifierUITests.swift @@ -7,7 +7,6 @@ import SnapshotTesting @MainActor @Suite( - .disabled(if: attributeGraphVendor == .compute, "Temporarily disabled for Compute snapshot stack overflow. See https://github.com/jcmosc/Compute/issues/47"), .snapshots(record: .never, diffTool: diffTool) ) struct LabelsHiddenModifierUITests { diff --git a/Example/OpenSwiftUIUITests/View/ProgressViewUITests.swift b/Example/OpenSwiftUIUITests/View/ProgressViewUITests.swift index ebd731ba4..1db42bdea 100644 --- a/Example/OpenSwiftUIUITests/View/ProgressViewUITests.swift +++ b/Example/OpenSwiftUIUITests/View/ProgressViewUITests.swift @@ -24,9 +24,7 @@ struct ProgressViewUITests { openSwiftUIAssertSnapshot(of: DefaultDateProgressLabelExample()) } - @Test( - .disabled(if: attributeGraphVendor == .compute, "Temporarily disabled for IAG snapshot crash") - ) + @Test func foundationProgress() { openSwiftUIAssertSnapshot(of: FoundationProgressViewExample()) } diff --git a/Example/OpenSwiftUIUITests/View/ToggleUITests.swift b/Example/OpenSwiftUIUITests/View/ToggleUITests.swift index 9bd1689ca..117dd7e62 100644 --- a/Example/OpenSwiftUIUITests/View/ToggleUITests.swift +++ b/Example/OpenSwiftUIUITests/View/ToggleUITests.swift @@ -7,7 +7,6 @@ import SnapshotTesting @MainActor @Suite( - .disabled(if: attributeGraphVendor == .compute, "Temporarily disabled for Compute snapshot stack overflow. See https://github.com/jcmosc/Compute/issues/47"), .snapshots(record: .never, diffTool: diffTool) ) struct ToggleUITests {