Skip to content

develop only builds against a one-commit window of platform #1099

Description

@romchornyi

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions