Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 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
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
| public typealias OAGValue = IAGChangedValue | ||
| public typealias OAGValueOptions = IAGValueOptions | ||
|
|
||
| #if OPENATTRIBUTEGRAPH_COMPUTE_BINARY |
There was a problem hiding this comment.
This is strange due to a current Compute release issue. I really do not want to add it. cc @jcmosc
- 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.) - 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.
There was a problem hiding this comment.
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))
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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 Run Report 🛠️Tests 🧪
Builds 🔨
|

Summary
Validation