Skip to content

v2.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Sep 20:14
7df3702

Restores the source compatibility that 2.2.0 broke. 2.2.0 removed three public properties in a minor release, contrary to the Semantic Versioning contract this project follows; per the SemVer FAQ, the remedy is a new minor release that restores compatibility rather than a modified 2.2.0. No API or behavior changes beyond that.

Fixed

  • moreResults(of:) no longer spends a request on a deleted endpoint. 1.1.0 documented it as throwing a clear 410 alongside contentSearch and combinedSearch, but it still called /search/combined/. Since combinedSearch() throws, its more link can only point at that endpoint, so it now fails the way its siblings do. A nil more link still returns nil.
  • Four broken DocC symbol links, all pre-existing: a stale oauthAuthorizationURL(…) signature missing the scopes: label added in 2.0.0, an ambiguous avatarData(for:size:) (three overloads) now disambiguated, and two links to things DocC cannot resolve — the internal encodeTags(_:) and a parameter name — demoted to plain code spans.
  • Source compatibility with 2.1.0. Sound.aiPreference, User.aiPreference and Me.aiPreference compile again. Sound.aiPreference forwards to genAIPreference and carries @available(*, deprecated, renamed:), so Xcode offers a fix-it; the User/Me properties return nil, which is all Freesound has reported for a user since it dropped the field from its user serializer. Upgrading from 2.1.0 now produces deprecation warnings pointing at the replacement instead of compile errors.

Changed

  • Every deprecated declaration now lives in Sources/FreesoundKit/Deprecations.swift, and each deprecation message names the release it was deprecated in and the 3.0.0 removal. Internal reorganization with no API change: the file is the removal list, so it can't drift from the code — shipping 3.0.0 means deleting it.
  • DocC symbol links are now verified in CI. A Documentation job runs swift package generate-documentation --warnings-as-errors, so an unresolved symbol link fails the build instead of surfacing later in the Swift Package Index docs build. The plugin is opt-in behind FREESOUNDKIT_BUILD_DOCS, keeping FreesoundKit dependency-free for consumers.

Deprecated

  • Sound.aiPreference — use Sound.genAIPreference.
  • User.aiPreference and Me.aiPreference — no replacement on those types; read Sound.genAIPreference, which the server resolves per sound.

All three are scheduled for removal in 3.0.0.