Skip to content
This repository has been archived by the owner on Aug 8, 2024. It is now read-only.

Releases: spring-media/Carlos

1.2.1

09 Jul 08:21
Compare
Choose a tag to compare

Bug Fixes

  • Fix an issue introduced in 1.2.0 when cache instance may become nil in some cases during cache composition.

1.2.0

08 Jul 15:57
497a318
Compare
Choose a tag to compare

New Features

  • Added a way to remove object for a specific key from a cache. See remove(_:).

1.1.1

27 May 10:56
f289959
Compare
Choose a tag to compare

Fixes

  • Fixed an issue when a composed cache was calling receiveValue twice or more in some cases

1.1.0

09 Nov 08:51
66765ab
Compare
Choose a tag to compare

Changes

  • Made Carlos less opinionated on which queue it shall run its operations.
  • Wrap Carlos Future's in Deferred to make sure that Carlos doesn't execute its operation unless there are subscribers.

1.0.0 Combine Migration

19 Oct 10:21
5d6673a
Compare
Choose a tag to compare

1.0.0

Breaking Changes

  • Swift 5.3 and Xcode 12 support
  • The codebase has been migrated from PiedPiper to Combine
  • The minimum supported OS version set to Combine's minimum supported version: iOS 13, macOS 10.15, watchOS 6, tvOS 13.
  • Removed Dispatched.swift and RequestCapperCache.swift because the functionality they provided could be easily re-implemented using Combine operators.

New Features

  • Carlos is now powered by Combine which means you can use awesome Combine provided operators on the Carlos cached values!

0.10.1 Carthage Fix

22 Sep 15:19
46c9de3
Compare
Choose a tag to compare

Fixed

  • Fixed an issue when app archive fails for the app which use Carlos due to PiedPiper being embedded #187

0.10.0 Swift Package Manager Support

09 Jul 10:25
90935f2
Compare
Choose a tag to compare

Breaking Changes

  • Xcode 11.5+ required

New Features

  • Swift Package Manager Support

0.9.1: Swift 3!

14 Dec 12:44
Compare
Choose a tag to compare

Breaking changes

  • Swift 3.0 support (for Swift 2.3 use specific commit 5d354c829d766568f164c386c59de21357b5ccff instead)
  • batchGetAll has been removed and replaced with a reified allBatch (see New features)
  • All deprecated functions have been removed
  • All custom operators have been removed in favor of their function counterparts
  • macOS and tvOS support has been temporarily dropped and will be probably re-added in the future
  • set method on CacheLevel now returns a Future enabling error-handling and progress-tracking of set calls.

New Features

  • It's now possible to lift a CacheLevel into one that operates on a sequence of keys and returns a sequence of values. You can use allBatch to create a concrete BatchAllCache. You can use get on this cache if you want to pass a list of keys and get the success callback when all of them succeed and the failure callback as soon as one of them fails (old behavior of batchGetAll), or you can compose or transform an allBatch cache just like any another CacheLevel. Consult the README.md for an example.

Independence day

16 May 16:04
Compare
Choose a tag to compare

Breaking changes

  • The codebase has been migrated to Swift 2.2
  • Promise now has only an empty init. If you used one of the convenience init (with value:, with error: or with value:error:), they now moved to Future.

New features

  • Adds value and error properties to Result
  • Added a way to initialize Futures through closures
  • It's now possible to map Futures through:
    • a simple transformation closure
    • a closure that throws
  • It's now possible to flatMap Futures through:
    • a closure that returns an Optional
    • a closure that returns another Future
    • a closure that returns a Result
  • It's now possible to filter Futures through:
    • a simple condition closure
    • a closure that returns a Future<Bool>
  • It's now possible to reduce a SequenceType of Futures into a new Future through a combine closure
  • It's now possible to zip a Future with either another Future or with a Result
  • Added merge to a SequenceType of Futures to collapse a list of Futures into a single one
  • Added traverse to SequenceType to generate a list of Futures through a given closure and merge them together
  • Added recover to Future so that it's possible to provide a default value the Future can use instead of failing
  • It's now possible to map Results through:
    • a simple transformation closure
    • a closure that throws
  • It's now possible to flatMap Results through:
    • a closure that returns an Optional
    • a closure that returns a Future
    • a closure that returns another Result
  • It's now possible to filter Results through a simple condition closure
  • Added mimic to Result

Pied Piper 0.7

27 Mar 10:24
Compare
Choose a tag to compare

First release of Pied Piper as a separate framework.

Breaking changes

  • As documented in the MIGRATING.md file, you will have to add a import PiedPiper line everywhere you make use of Carlos' Futures or Promises.

New features

  • It's now possible to compose async functions and Futures through the >>> operator.
  • The implementation of ReadWriteLock taken from Deferred is now exposed as public.
  • It's now possible to take advantage of the GCD struct to execute asynchronous computation through the functions main and background for GCD built-in queues and async for GCD serial or custom queues.

Improvements

  • Promises are now safer to use with GCD and in multi-thread scenarios.

Fixes

  • Fixes a bug where calling succeed, fail or cancel on a Promise or a Future didn't correctly release all the attached listeners.
  • Fixes a retain cycle between Promise and Future objects.