Before we tag v1.0.0 we should remove the deprecated public API surface so we ship a clean 1.0 without carrying deprecation cruft. A major release is the right (and only clean) time to make these breaking removals.
Deprecated declarations to remove
queryRecords overloads — CloudKitService+Operations+Deprecated.swift
The entire file exists only to house deprecated overloads (it was split out in #383/#384/#385 to stay under the file_length lint limit — see commit 1e41177). Delete the whole file:
queryRecords(recordType:filters:sortBy:limit:desiredKeys:database:) -> [RecordInfo]
- Replacement:
queryRecords -> QueryResult (pagination) or queryAllRecords (auto-paginate)
queryRecords(recordType:filters:sortBy:limit:desiredKeys:continuationMarker:database:) -> QueryResult
- Replacement:
queryRecords(_:limit:desiredKeys:continuationMarker:database:) — pass a Query value
RecordManaging protocol — RecordManagement/RecordManaging.swift
queryRecords(recordType:) async throws -> [RecordInfo] (protocol requirement)
- Replacement:
queryAllRecords or queryRecords -> QueryResult
queryAllRecords(recordType:) default implementation (extension) — deprecated because it silently returns one page
CloudKitService: RecordManaging conformance — CloudKitService/CloudKitService+RecordManaging.swift
queryRecords(recordType:) async throws -> [RecordInfo] (conformance impl)
Note: removing the protocol requirement may mean reworking or removing RecordManaging itself, since its remaining surface is thin. Decide whether the protocol survives 1.0.
User operations — CloudKitService/CloudKitService+UserOperations.swift
fetchCurrentUser() -> UserInfo
- Replacement:
fetchCaller() (Apple deprecated users/current)
Follow-up cleanup
- Remove tests that exercise the deprecated overloads (e.g. the deprecated-query-overload coverage added in
d65ae28).
- Grep the
Examples/ test beds and MistDemo for any remaining call sites.
- Update
CLAUDE.md references (e.g. the fetchCurrentUser() row in the operations table).
Acceptance criteria
Before we tag v1.0.0 we should remove the deprecated public API surface so we ship a clean 1.0 without carrying deprecation cruft. A major release is the right (and only clean) time to make these breaking removals.
Deprecated declarations to remove
queryRecordsoverloads —CloudKitService+Operations+Deprecated.swiftThe entire file exists only to house deprecated overloads (it was split out in #383/#384/#385 to stay under the
file_lengthlint limit — see commit1e41177). Delete the whole file:queryRecords(recordType:filters:sortBy:limit:desiredKeys:database:) -> [RecordInfo]queryRecords -> QueryResult(pagination) orqueryAllRecords(auto-paginate)queryRecords(recordType:filters:sortBy:limit:desiredKeys:continuationMarker:database:) -> QueryResultqueryRecords(_:limit:desiredKeys:continuationMarker:database:)— pass aQueryvalueRecordManagingprotocol —RecordManagement/RecordManaging.swiftqueryRecords(recordType:) async throws -> [RecordInfo](protocol requirement)queryAllRecordsorqueryRecords -> QueryResultqueryAllRecords(recordType:)default implementation (extension) — deprecated because it silently returns one pageCloudKitService: RecordManagingconformance —CloudKitService/CloudKitService+RecordManaging.swiftqueryRecords(recordType:) async throws -> [RecordInfo](conformance impl)User operations —
CloudKitService/CloudKitService+UserOperations.swiftfetchCurrentUser() -> UserInfofetchCaller()(Apple deprecatedusers/current)Follow-up cleanup
d65ae28).Examples/test beds andMistDemofor any remaining call sites.CLAUDE.mdreferences (e.g. thefetchCurrentUser()row in the operations table).Acceptance criteria
@available(*, deprecated)public declarations remain inSources/MistKitswift buildandswift testpass./Scripts/lint.shpasses