Summary
develop does not currently build against either the platform checkout most of us have locally or the head of v4.2-dev. The window of platform commits it compiles against is, as of today, one commit wide.
Filed separately from the accessibility work (#1097, #1098) because it is unrelated to it and blocks anyone building locally right now. Hit while verifying #1096.
What happens
DashPayContactAddressReadiness.swift:61 switches over WalletStartupOutcome.status and does not handle two cases that platform#4426 added on 30 Aug:
error: switch must be exhaustive
note: add missing case: '.seedBindingUnverified'
note: add missing case: '.identityScanIncomplete'
Going the other way, an older platform checkout fails with 13 errors in Infrastructure/SwiftDashSDK/Masternodes/ and Voting/ for missing trackedMasternodes, MasternodeKeyRole and ParsedIdentityUpdateTransition.
The window
| platform commit |
result |
24 Aug (test/large-wallet-fixes, what many local checkouts sit on) |
13 errors — symbols missing |
255a5d60ca (30 Aug) |
builds |
e779335ca3 = platform#4426 (30 Aug) |
non-exhaustive switch |
17a2962f91 = v4.2-dev head, 4.2.0-dev.7 (31 Aug) |
non-exhaustive switch |
There is no version pin protecting this: the app consumes the SDK as an XCLocalSwiftPackageReference with relativePath = "../platform/packages/swift-sdk", resolved relative to the app worktree. Whatever ../platform happens to be checked out to is what you build against.
Fix
Handle .seedBindingUnverified and .identityScanIncomplete in DashPayContactAddressReadiness.swift. Both come from platform#4426 — "stop the startup sequence reporting integrity it did not establish" — so they are states the app should be logging distinctly rather than folding into an existing case, and the repo's own guardrail against fabricating plausible defaults applies.
Worth checking whether other switches over SDK enums have the same problem before the next platform bump.
Workaround meanwhile
Build against 255a5d60ca. Do not switch the shared ../platform checkout — it usually carries someone else's uncommitted work. Make a worktree off platform-clean, rebuild the framework, and point the app at it locally:
git worktree add --detach ../platform-a11y 255a5d60ca
cd ../platform-a11y/packages/swift-sdk && ./build_ios.sh --target ios --target sim
# then rewrite the 5 relativePath occurrences in project.pbxproj and
git update-index --skip-worktree DashWallet.xcodeproj/project.pbxproj
The skip-worktree matters — it keeps the local path out of every commit.
Summary
developdoes not currently build against either the platform checkout most of us have locally or the head ofv4.2-dev. The window of platform commits it compiles against is, as of today, one commit wide.Filed separately from the accessibility work (#1097, #1098) because it is unrelated to it and blocks anyone building locally right now. Hit while verifying #1096.
What happens
DashPayContactAddressReadiness.swift:61switches overWalletStartupOutcome.statusand does not handle two cases that platform#4426 added on 30 Aug:Going the other way, an older platform checkout fails with 13 errors in
Infrastructure/SwiftDashSDK/Masternodes/andVoting/for missingtrackedMasternodes,MasternodeKeyRoleandParsedIdentityUpdateTransition.The window
test/large-wallet-fixes, what many local checkouts sit on)255a5d60ca(30 Aug)e779335ca3= platform#4426 (30 Aug)17a2962f91=v4.2-devhead, 4.2.0-dev.7 (31 Aug)There is no version pin protecting this: the app consumes the SDK as an
XCLocalSwiftPackageReferencewithrelativePath = "../platform/packages/swift-sdk", resolved relative to the app worktree. Whatever../platformhappens to be checked out to is what you build against.Fix
Handle
.seedBindingUnverifiedand.identityScanIncompleteinDashPayContactAddressReadiness.swift. Both come from platform#4426 — "stop the startup sequence reporting integrity it did not establish" — so they are states the app should be logging distinctly rather than folding into an existing case, and the repo's own guardrail against fabricating plausible defaults applies.Worth checking whether other switches over SDK enums have the same problem before the next platform bump.
Workaround meanwhile
Build against
255a5d60ca. Do not switch the shared../platformcheckout — it usually carries someone else's uncommitted work. Make a worktree offplatform-clean, rebuild the framework, and point the app at it locally:The
skip-worktreematters — it keeps the local path out of every commit.