Skip to content

Modernize PodcastAPI 3.0.0 and add playlist methods - #1

Merged
wenbinf merged 3 commits into
mainfrom
fix/swift-sdk-sync
Sep 24, 2026
Merged

wenbinf merged 3 commits into
mainfrom
fix/swift-sdk-sync

Conversation

@wenbinf

@wenbinf wenbinf commented Sep 24, 2026

Copy link
Copy Markdown
Member

Prepare PodcastAPI 3.0.0 with all five playlist write methods and Swift 6 support. Existing method names and callback overloads remain available, with async/await overloads for all 30 operations.

Changes

  • Generate endpoint wrappers, an independent test contract/dispatcher, and the README reference from the monorepo's canonical OpenAPI spec and Swift registry.
  • Encode path, query, and form values separately, support PUT, preserve empty notes/descriptions, and retain HTTP error details and case-insensitive response headers.
  • Keep client configuration isolated, support cancellation, reject redirects, and fix Linux JSON comparison and session-cleanup issues.
  • Preserve PodcastAPI as the Swift package, product, module, and CocoaPods name. Update the podspec and add Swift Package Index documentation configuration.
  • Replace default live API tests with offline coverage; add separate public-mock integration tests and CI for minimum/current Swift, standalone builds, README examples, and CocoaPods.

Compatibility

Requires Swift 6.0+, iOS 16+, or macOS 13+; also supports Linux. Responses are immutable, callbacks use Sendable closures, and exhaustive error switches need the new permission-denied and unexpected-response cases. There are no external runtime package dependencies.

The version is prepared as 3.0.0. This PR does not publish a release or submit the repository to Swift Package Index. The monorepo's website gate remains at the published 1.1.8 baseline until release verification.

Validation

  • All 14 offline tests passed on Swift 6.0.3/Linux and Swift 6.4/macOS, covering every async and callback method.
  • All 34 credential-free public-mock requests passed; no production requests were sent.
  • Independent package builds and all 30 generated README examples compiled on both compiler/platform combinations.
  • CocoaPods validation passed for iOS and macOS; the updated iOS sample built with Swift 6.
  • Monorepo generator tests (40), Django documentation tests (14), frontend typechecking, and snippet tests (46) passed.

@wenbinf
wenbinf merged commit cd45d60 into main Sep 24, 2026
4 checks passed
@wenbinf
wenbinf deleted the fix/swift-sdk-sync branch September 24, 2026 05:30
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.

1 participant