Releases: thoughtbot/Argo
3.0: Less is more
The goal for Argo 3.0 was to work on simplifying some of the complexity by removing extraneous API and improving consistency between Argo and other libraries (including the Swift standard lib). In addition, we've added support for Swift 2.2.
Breaking Changes
- Update to Swift 2.2 - Leo Mehlig
- Remove Optional versions of
<|
operators - Gordon Fontenot - Improve the API for root key decoding - Gordon Fontenot
- Use
JSON.init
instead ofJSON.parse
- Gordon Fontenot
New
- Add a Boolean case to JSON - Gordon Fontenot
- Add alternative named instance method on Decoded - Dorian Scheidt
- Add leftwise flatMap operator for Decoded - Gordon Fontenot
- Add free functions for decoding collections - Gordon Fontenot
- Added parsing from String for decoding Int64 - Niels van Hoorn
Non-Breaking Changes
- Update errors for RawRepresentable types. - Paul Young
- Remove
CustomStringConvertible
constraint ontypeMismatch
function - Dapeng Gao - Use an autoclosure for the rhs of <|> - Gordon Fontenot
- Generalize the type for
sequence
taking a dict - Gordon Fontenot
Misc
- (hopefully) the entire public API now has inline documentation!
Huge thank you to everyone that submitted PRs, opened issues, and reviewed code for this release!
2.3.0: An _Even_ Faster Boat
After some really fantastic work by @jshier and @RuiAAPeres, we were able to track down some serious performance issues related to our (internal) use of reduce
. @jshier was able to remove all instances of reduce
in favor of using for in
loops, and ended up with a 2600% improvement in performance. This release is to get that into users hands while we work on moving towards version 3.0, which should introduce even more performance increases as well as reducing the complexity of the library.
- [FIXED]: Aforementioned performance improvement (Jon Shier and Rui Peres)
- [NEW]: We've audited the codebase to use
@noescape
where appropriate (Sid Raval) - [NEW]:
DecodeError
is nowHashable
(Matt Diephouse)
2.2.0: Look Ma, I'm on TV!
Argo 2.2.0 is out!
[NEW]: Add materialize
function for creating Decoded
from try
, thanks @paulyoung
[NEW]: Add tvOS scheme, thanks @nickygerritsen
[IMPROVEMENT]: Improve documentation that Curry
is a separate framework, thanks @gilesvangruisen
[IMPROVEMENT]: Remove workaround for memory bug in older versions of Swift, thanks @paulyoung
[BUG FIX]: Fix signing errors with simulator builds, thanks @gfontenot
Yay! 🎉
2.1.0: A Little Bit of This and A Little Bitcode of That
Argo 2.1.0 coming at you!
[NEW]: decodeWithRootKey
convenience function for easy root key decoding
[NEW]: Custom error case Decoded.Custom(String)
[NEW]: Failure Coalescing Operator for Decoded
, thanks @gfontenot
[NEW]: catDecoded
for Decoded
, thanks @gfontenot
[NEW]: DecodeError
convenience accessor in Decoded
, thanks @jshier
[NEW]: Default Decodable implementations for String and Int RawRepresentable enums, thanks @swizzlr
[IMPROVEMENT]: Documentation!!!!, thanks @jnutting & @gfontenot
[IMPROVEMENT]: Extend CollectionType
instead of Array
, thanks @gfontenot & @gilesvangruisen
[IMPROVEMENT]: Extend DictionaryLiteralConvertable
instead of Dictionary
, thanks @gilesvangruisen
[BUG FIX]: Fix bitcode error when submitting app, thanks @dmcrodrigues
Big win!
2.0.0: All For One and Argo 2 for All!
Argo 2.0.0 is out!!
- [NEW]: Swift 2.0 support
- [NEW]: watchOS targets, thanks @JaviSoto
- [NEW]: Alternative operator
<|>
for providing defaults or alternatives, thanks @terhechte - [NEW]: Add
DecodeError
enum for easier conversion toResult
, thanks @gfontenot - [NEW]:
dematerialize
function tothrow
whenDecoded
is aDecodeError
, thanks @paulyoung - [NEW]: Default
Decodable
implementations forString
andInt
RawRepresentable
enums, thanks @swizzlr - [IMPROVEMENT]: Remove Box & Runes dependency, thanks @sync & @gfontenot
- [IMPROVEMENT]: Exposed
flatReduce
&decodeJSON
functions, thanks @edwardaux - [IMPROVEMENT]: Performance and Memory impact, thanks @paulyoung
- [IMPROVEMENT]: Argo operators are overloaded to return
Optional
as well asDecoded
And thank you to all those not mentioned above for you commits to help Argo 2.0.0 become reality!
@sidraval, @nickygerritsen, @lowell, and @jdhealy
1.0.5: Argo 1.0.4 & Runes 2.0
This release changed the Runes dependency to keep it in Runes 2.0. This prevents Carthage from pulling Runes 3 when using Argo 1.0.4.
1.0.4 - Public Sequence Number One
Make sequence
public for use with complex decoding.
1.0.3: A Faster Boat
Added performance enhancements to make decoding faster.
1.0.2: Better Descriptions for a Better Tomorrow
This adds Printable
conformance to Decoded
for easier debugging using println
.
1.0.1: If You Gaze Into .Null, .Null Gazes Also Into You
Always decode JSON.Null
into Decoded.MissingKey(keyName)
.