Skip to content

4.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 15 Oct 11:45
4.0.0
77f165a

What's New

  • Migrated all asynchronous APIs from google/promises to Swift concurrency, built in Swift 6 language mode (#44)
  • Added cooperative cancellation: cancelling the calling task ends a CloudProvider call with CancellationError, while mutations past their commit point still finish so vault folders are never left half-created or half-deleted (#44)
  • downloadFile now returns the CloudItemMetadata of the downloaded file, and downloadFile/uploadFile take an explicit progress: parameter (#44)
  • Replaced unmaintained SDK forks with official SDKs or direct API calls: box-ios-sdk 10.17.0, SwiftyDropbox 10.2.4 (stored Dropbox logins keep working), direct Microsoft Graph API calls, and cryptomator/JOSESwift 3.0.0

Breaking Changes

  • Bumped minimum iOS deployment target from 16.0 to 17.0 and minimum Swift version to 6.2
  • Every API that returned a Promise is now async throws; CloudProvider is Sendable with @concurrent methods, all providers are final, and all authenticators are @MainActor (#44)
  • Removed the google/promises and Microsoft Graph SDK dependencies, and updated cryptolib-swift to 2.0.0, AppAuth to 3.0.0, GTMAppAuth to 6.0.0 and MSAL to 2.16.0
  • DropboxAuthenticator.handleRedirectURL(_:) replaces pendingAuthentication and processAuthentication(with:) (#44)
  • See Migrating to 4.0.0 in the README for the complete list

Bug Fixes

  • Fixed LocalFileSystemProvider to release security-scoped access after every operation and to coordinate concurrent access to the same item (#44)
  • Fixed BoxAuthenticator hanging on unexpected errors and mapped a cancelled login to CocoaError(.userCancelled) (#44)
  • Fixed S3CloudProvider.downloadFile reporting success when the transfer of an existing file failed (#44)
  • Fixed TLS certificate fingerprints being truncated instead of a full SHA-256 hash (#44)
  • Fixed Dropbox progress finishing early when a transfer was retried (#44)

Full Changelog: 3.0.1...4.0.0