Skip to content

Conversation

@ssestak
Copy link
Contributor

@ssestak ssestak commented Nov 12, 2025

Network Tracer Integration and Platform Updates

This PR integrates FTNetworkTracer for enhanced network request logging and tracking, and updates the minimum supported platform versions.

Key Features:

  • Network Tracing: Integrated FTNetworkTracer to log and track network requests, responses, and errors within URLServer tasks (data, upload, download).
  • Platform Version Bump: Increased minimum deployment targets for iOS, macOS, tvOS, and watchOS.
  • Test Coverage: Added new mock analytics and integration tests to verify the FTNetworkTracer functionality.

Platform Version Changes:

Platform Old Version New Version
iOS v12 v14
macOS v10.10 v11
tvOS v12 v14
watchOS v5 v7

Šimon Šesták added 6 commits November 3, 2025 15:00
…and tracking

Adds FTNetworkTracer to enable comprehensive logging and tracking of network requests, responses, and errors for URLSession tasks. This improves debugging and observability. Also updates minimum platform versions.
This commit introduces a new test suite to verify the proper integration and functionality of FTNetworkTracer with FTAPIKit, ensuring network events are correctly logged.
Migrate FTNetworkTracer dependency from personal repository to futuredapp organization.
Extract MockAnalytics class from NetworkTracerIntegrationTests into a separate file for better organization and potential reusability across tests.
Added documentation to clarify the purpose and default implementation of the `networkTracer` property in the `URLServer` protocol.
Depend on a specific version instead of the main branch for stability.
@ssestak ssestak requested a review from a team November 12, 2025 13:35
jmarek41
jmarek41 previously approved these changes Jan 5, 2026
Copy link
Member

@jmarek41 jmarek41 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👏

Updates the FTNetworkTracer dependency to version 0.2.1.
Šimon Šesták added 2 commits January 7, 2026 15:25
Migrate workflows to use macOS 14 and 15 runners, update actions/checkout to v4, and remove redundant Xcode setup.
The project can now use a single Package.swift for both building and DocC generation by updating the tools version to 5.5.
@mkj-is
Copy link
Contributor

mkj-is commented Jan 7, 2026

Hey there, just pitching in as an original author of FTAPIKit.

Ideally, FTAPIKit should not depend on FTNetworkTracer. It is strictly not necessary and adds some overhead. Instead, URLServer can hold array of "middlewares" (new protocol can be introduced for that). This allow any logging, signposting etc. to watch for any network requests and responses.

What's more, requestId and startTime is generated even in cases when no tracer is present.

Šimon Šesták added 2 commits January 8, 2026 08:20
…ware

- Remove hard dependency on FTNetworkTracer package
- Introduce NetworkObserver protocol with type-safe associated Context
- Support array of middlewares for multiple observers
- Zero overhead when no observers configured (empty array = no work)
- Use RequestToken pattern for type erasure while preserving type safety

Breaking change: `networkTracer: FTNetworkTracer?` replaced with
`networkObservers: [any NetworkObserver]`
Explicitly document that `didReceiveResponse` is always invoked with raw data, and `didFail` is an additional callback for errors occurring after the response is received. Update tests to assert this behavior.
jmarek41
jmarek41 previously approved these changes Jan 26, 2026
…observer-middleware

 Replace FTNetworkTracer with observer middleware
Šimon Šesták and others added 3 commits January 26, 2026 11:33
SwiftLint is not pre-installed on GitHub Actions macOS runners,
causing the lint step to fail with "command not found".

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use scoped disable/enable for nesting rule in EndpointPublisher
- Remove unneeded synthesized initializer in URLRequestBuilder
- Fix opening brace spacing in URL+MIME

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update CocoaPods from ~> 1.11 to ~> 1.14 to fix DT_TOOLCHAIN_DIR error
- Bump iOS deployment target from 9.0 to 12.0
- Bump macOS deployment target from 10.10 to 10.13

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@ssestak ssestak enabled auto-merge January 26, 2026 12:23
@ssestak ssestak merged commit 0c89db3 into main Jan 26, 2026
3 checks passed
@ssestak ssestak deleted the feature/Add-support-of-FTNetworkTracer branch January 26, 2026 13:17
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.

4 participants