Skip to content

Update Compute integration to 0.5.2 - #236

Merged
Kyle-Ye merged 2 commits into
mainfrom
bump/oag
Aug 26, 2026
Merged

Update Compute integration to 0.5.2#236
Kyle-Ye merged 2 commits into
mainfrom
bump/oag

Conversation

@Kyle-Ye

@Kyle-Ye Kyle-Ye commented Aug 25, 2026

Copy link
Copy Markdown
Member

Summary

  • update the default Compute source and binary version to 0.5.2 and use the matching binary checksum
  • adapt the Compute shims to the updated input and graph tracing APIs
  • restore the weak-attribute hashable conformance when consuming the binary distribution

Validation

  • validated OpenSwiftUI UI test target compilation against both the Compute 0.5.2 source and binary distributions

@codecov

codecov Bot commented Aug 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 32.17%. Comparing base (480e30e) to head (823c82e).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #236   +/-   ##
=======================================
  Coverage   32.17%   32.17%           
=======================================
  Files          71       71           
  Lines        2601     2601           
=======================================
  Hits          837      837           
  Misses       1764     1764           
Flag Coverage Δ
macos 10.15% <ø> (ø)
ubuntu 12.03% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

public typealias OAGValue = IAGChangedValue
public typealias OAGValueOptions = IAGValueOptions

#if OPENATTRIBUTEGRAPH_COMPUTE_BINARY

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is strange due to a current Compute release issue. I really do not want to add it. cc @jcmosc

  1. Compute removed such conformance in 3c955fe3cff8ae29fa5a66ae087c0763d7f1d1c4. (I did not got the reason. But this is a small thing and I add patch it here if Compute do have a need to remove it.)
  2. The weird thing is the 0.5.1 tag.

The source code point to b66dc81e2d16687b83769c492cd22ab699f28c0b which does not contain 3c955fe3cff8ae29fa5a66ae087c0763d7f1d1c4. So I do not need this patch.

But the 0.5.1 binary looks to be build by main after merge 3c955fe3cff8ae29fa5a66ae087c0763d7f1d1c4 which is 1fbf330926ffcebf74a9ea7e6dcd7957098f85c1 and includes 3c955fe3cff8ae29fa5a66ae087c0763d7f1d1c4. So there is a mismatch here.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't realise the GitHub workflow was merging with main and then creating the XCFramework artifact. I've bumped the library to 0.5.2 with a new GitHub workflow that creates the artifact directly from the tagged commit instead of the merged PR.

Commit: jcmosc/Compute@fcea97e
New checksum: sha256:0eca53a3620776cffcc3d2047d11efaf893b53078b95e59e793f86caa3f2c169

Both source and binary should work now without your patch.

As for why the removal of the Hashable conformance - it's because my compatibility tests were failing due to linker error:

Undefined symbols for architecture arm64:
  "protocol conformance descriptor for __C.AGWeakAttribute : Swift.Hashable in AttributeGraph", referenced from:
      lazy protocol witness table accessor for type __C.AGWeakAttribute and conformance __C.AGWeakAttribute : Swift.Hashable in AttributeGraph in WeakAttributeTests.swift.o

You can also see the difference when calculating the layout string for AnyWeakAttribute:

With Hashable/Equatable conformance:

== IAGWeakAttribute, 8 bytes ==
(layout #:length 18 #:address 0x1009d3514
   (== #:size 8 #:type IAGWeakAttribute))

Without Hashable/Equatable conformance, verified by compatiblity testing:

== __Unnamed_struct__details, 8 bytes ==
(layout #:length 35 #:address 0x1009d3514
   (== #:size 4 #:type IAGAttribute)
   (== #:size 4 #:type UInt32))

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Undefined symbols for architecture arm64:
"protocol conformance descriptor for __C.AGWeakAttribute : Swift.Hashable in AttributeGraph", referenced from:
lazy protocol witness table accessor for type __C.AGWeakAttribute and conformance __C.AGWeakAttribute : Swift.Hashable in AttributeGraph in WeakAttributeTests.swift.o

This is not expected. Which platform and OS version are you trying to link with? @jcmosc

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm on macOS 26.5.2

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm on macOS 26.6. And this AGExample in DPF works fine for me by using Equatable or Hashable conformance of AGWeakAttribute.

image

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not have such issue on 0.5.2 now. But the next version in main will got those conformance removed and we'll need to deal with it in the next release. And I still do not agree remove is a right choice.

@tuist

tuist Bot commented Aug 25, 2026

Copy link
Copy Markdown

🛠️ Tuist Run Report 🛠️

Tests 🧪

Scheme Status Cache hit rate Tests Skipped Ran Commit
OpenAttributeGraph-Package 0 % 90 0 90 ae67115b8

Builds 🔨

Scheme Status Duration Commit
OpenAttributeGraph 10.0s 36e6fff51
OpenAttributeGraph-Package 1m 7s 36e6fff51

@Kyle-Ye Kyle-Ye changed the title Update Compute integration to 0.5.1 Update Compute integration to 0.5.2 Aug 26, 2026
@Kyle-Ye
Kyle-Ye merged commit e3484bf into main Aug 26, 2026
7 of 10 checks passed
@Kyle-Ye
Kyle-Ye deleted the bump/oag branch August 26, 2026 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants