Skip to content

chore: stop linking swift-clocks and XCTestDynamicOverlay into shipped products - #1353

Merged
grdsdev merged 1 commit into
guilhermesouza/sdk-1805-paginator-sendablefrom
guilhermesouza/sdk-1805-runtime-deps
Sep 17, 2026
Merged

grdsdev merged 1 commit into
guilhermesouza/sdk-1805-paginator-sendablefrom
guilhermesouza/sdk-1805-runtime-deps

Conversation

@grdsdev

@grdsdev grdsdev commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Helpers is a dependency of every product, so anything it links reaches every consumer of the SDK.

Clocks was imported by zero files under Sources/ — only by RealtimeTests and IntegrationTests, which now declare it themselves. (PostgrestBuilderTests also exercises a clock, but via its own type conforming to the stdlib Clock, so it needs no product.)

XCTestDynamicOverlay appeared in two Helpers files, both only for isTesting, which IssueReporting vends too. IssueReporting is the runtime half of that package and the one Point-Free recommends shipping; XCTestDynamicOverlay adds unimplemented and friends, which nothing in Sources/ uses. The test targets that want it keep declaring it directly.

Testing

$ swift test   # exit 0
━ Test run with 1521 tests in 151 suites passed with 1 known issue.

$ xcrun swift-format lint --recursive --strict Sources Tests   # exit 0

Risk

Low, but it is a linkage change — worth confirming the Linux and library-evolution CI jobs both go green before merge.

Stack

  1. feat(auth): add an AsyncSequence paginator over admin listUsers #1352 — AsyncSequence paginator + Sendable
  2. this PR — runtime dependencies
  3. chore: declare the file-timestamp required-reason API in a privacy manifest #1354 — privacy manifest
  4. refactor!: align the public API with the Swift API Design Guidelines #1355 — API Design Guidelines renames

Part of SDK-1805.

@grdsdev
grdsdev requested a review from a team as a code owner September 16, 2026 15:43
@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: a9486853-5928-467c-933c-d0123ab1d462

📥 Commits

Reviewing files that changed from the base of the PR and between bd7cc7b and 2a48c64.

📒 Files selected for processing (3)
  • Package.swift
  • Sources/Helpers/Codable.swift
  • Sources/Helpers/Version.swift
🚧 Files skipped from review as they are similar to previous changes (1)
  • Sources/Helpers/Codable.swift

Included review availability: Your plan provides up to 4 included reviews per hour; 2 remain after this review.


📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated internal testing support dependencies.
    • Consolidated usage of issue-reporting functionality across helper utilities.
    • No user-facing features or behavior changes.

Walkthrough

The package manifest removes Clocks and XCTestDynamicOverlay from Helpers. It adds Clocks to IntegrationTests and RealtimeTests. The helper source files replace XCTestDynamicOverlay imports with IssueReporting. Existing decoding, encoding, and version property code remains unchanged.

Priority: ⬇️ Low

Change: Other

Merge Risk: ⚪ Minimal · up to 2a48c

The dependency changes have no confirmed impact on shipped behavior or supported build workflows.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Capability matrix drift detected

The following capabilities are marked implemented in the matrix but could not be found in swift:

  • client.session_management.persist_session → expected symbol: AuthLocalStorage.defaultLocalStorage
  • functions.invocation.streaming_response → expected symbol: FunctionsClient._invokeWithStreamedResponse

The following capabilities are marked implemented in swift but have no registered symbols to verify:

  • auth.passkey.register_passkey (no symbols list — cannot confirm implementation exists)
  • auth.passkey.sign_in_with_passkey (no symbols list — cannot confirm implementation exists)
  • client.observability.trace_propagation (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.request_cancellation (no symbols list — cannot confirm implementation exists)
  • functions.invocation.request_cancellation (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.url_cache_nonce (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.request_cancellation (no symbols list — cannot confirm implementation exists)

These may have been renamed, removed, or never registered. Please update the capability matrix.
See: https://github.com/supabase/sdk/blob/main/packages/capability-matrix/docs/capability-matrix.md

@grdsdev
grdsdev force-pushed the guilhermesouza/sdk-1805-runtime-deps branch from 4c23a86 to bd7cc7b Compare September 17, 2026 12:45
@grdsdev
grdsdev force-pushed the guilhermesouza/sdk-1805-runtime-deps branch from bd7cc7b to 7c59c8c Compare September 17, 2026 12:57
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Potential Breaking API Changes Detected

This PR appears to contain breaking API changes. Please review the changes below:

API Check Output

If this is intentional, please update your PR title or commit message to include:

  • ! after the type (e.g., feat!: remove deprecated method)
  • Or include BREAKING CHANGE: in the commit body

If this is a false positive, you can safely ignore this warning.

@coveralls

coveralls commented Sep 17, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 35232742984

Warning

No base build found for commit 5432971 on guilhermesouza/sdk-1805-paginator-sendable.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 89.284%

Details

  • Patch coverage: No coverable lines changed in this PR.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 11991
Covered Lines: 10706
Line Coverage: 89.28%
Coverage Strength: 895616.33 hits per line

💛 - Coveralls

`Helpers` is a dependency of every product, so anything it links reaches
every consumer — and anything it links transitively satisfies imports in
targets that never declared it.

`Clocks` is that second case. `Helpers` itself does not import it; `Auth`,
`RealtimeV2` and `Supabase` do, three of them as `public import`, and were
compiling only because `Helpers` happened to pass it down. Each now declares
it directly, so a target's dependency list says what it actually uses and
removing a dependency from `Helpers` cannot silently break a sibling.

`XCTestDynamicOverlay` is the first case and is simply dropped.
It appeared in two `Helpers` files, both only for `isTesting`, which
`IssueReporting` vends too. `IssueReporting` is the runtime half of that
package and the one Point-Free recommends shipping; `XCTestDynamicOverlay`
adds `unimplemented` and friends, which are test scaffolding and which
nothing in `Sources/` uses. The test targets that want it keep declaring it.

Part of SDK-1805.
@grdsdev
grdsdev force-pushed the guilhermesouza/sdk-1805-runtime-deps branch from 7c59c8c to 2a48c64 Compare September 17, 2026 14:18
@grdsdev
grdsdev merged commit c12d27c into main Sep 17, 2026
36 checks passed
@grdsdev
grdsdev deleted the guilhermesouza/sdk-1805-runtime-deps branch September 17, 2026 16:03
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.

3 participants