All Versions
Latest Version
Avg Release Cycle
58 days
Latest Release
979 days ago

Changelog History
Page 1

  • v0.13.1 Changes

    November 07, 2021

    πŸ›  This is a bugfix release that fixes an edge case with the use of trimValueWhitespaces configuration on 🏁 XMLDecoder, and adds official Windows support for users of Swift 5.5. Many thanks to πŸš€ @MartinP7r for multiple contributions to this release!

    Closed issues:

    • Encoding an Attribute doesn't work anymore (#231)
    • How to "skip" certain XML tags / element in a TCX file (#227)
    • Encode element with empty key, no elements, and attributes (#224)

    πŸ”€ Merged pull requests:

    • βž• Add Windows to GitHub Actions CI build matrix (#233) via @MaxDesiatov
    • βž• Add test for preserved spaces with XML entities (#234) via @MartinP7r
    • πŸ›  Fix trimValueWhitespaces removing needed white-spaces (#226) via @MartinP7r
    • βœ‚ Remove some of the SwiftLint generated warnings (#229) via @MartinP7r
    • βœ‚ Remove unneeded parameter key (#225) via @MartinP7r
  • v0.13.0 Changes

    August 06, 2021

    πŸ›  This release adds two new features and a bugfix.


    • 🚚 removeWhitespaceElements boolean flag on XMLDecoder allows removing elements that have purely whitespace content.
    • convertFromUppercase case on KeyDecodingStrategy allows converting ALL_CAPS_SNAKE_CASE to camelCase.
    • πŸ›  an edge case in intrinsic key value decoding has been fixed.

    Many thanks to @huwr, @kneekey23, and @wooj2 for their contributions!

    Closed issues:

    • Decoding special whitespace characters (#219)
    • Help with mix of attributes and elements (#212)

    πŸ”€ Merged pull requests:

    • Encode element with empty key, empty element, and attributes (#223) via @wooj2
    • 🚚 Implement removeWhitespaceElements on XMLDecoder (#222) via @wooj2
    • βž• Add convert from UPPERCASE decoding key strategy (#214) via @huwr
  • v0.12.0 Changes

    January 26, 2021

    πŸš€ This release adds a few new features. Namely:

    • πŸ†• New charactersEscapedInAttributes and charactersEscapedInElements properties on XMLEncoder that allow customizing how certain characters are escaped.
    • You can now override the implementation of TopLevelEncoder Combine protocol conformance when subclassing XMLEncoder.
    • πŸ†• New prettyPrintIndentation property on XMLEncoder, which can take XMLEncoder.PrettyPrintIndentation values such as .tabs(1) or .spaces(2).

    Thanks to Kenta Kubo for the contribution!

    Closed issues:

    • How to decode <itunes:episode> tags (#201)
    • πŸ— Fail to build in Xcode 12 beta (#196)
    • Changing the root node name ? (#191)
    • " in XML element may not always be escaping (#187)
    • &#10; in XML attributes (#185)
    • " and &quot; are not decoded equally (#184)
    • πŸ–¨ Use 2 spaces instead of 4 when .prettyPrinted (#183)
    • (Help using) How to decode this XML? (#180)

    πŸ”€ Merged pull requests:

    • βœ… Test DynamicNodeEncoding for root elements (#195) via @MaxDesiatov
    • πŸ‘‰ Make character escaping customizable in XMLEncoder (#188) via @MaxDesiatov
    • βž• Add prettyPrintIndentation property on XMLEncoder (#186) via @MaxDesiatov
    • πŸ‘‰ Make TopLevelEncoder implementation overridable (#182) via @kkk669
  • v0.11.1 Changes

    May 03, 2020

    πŸš€ This release fixes an issue, where non-string values used CDATA encoding. Thanks to @ksoftllc for reporting it!

    Closed issues:

    • Non-string values are being encoded as CData when stringEncodingStrategy = .cdata (#178)
    • How to encode as an empty element (#177)

    πŸ”€ Merged pull requests:

  • v0.11.0 Changes

    April 13, 2020

    πŸ›  This is a bugfix and feature release, which fixes an issue with CDATA decoding and adds TopLevelEncoder conformance to XMLEncoder. New rootAttributes argument has been added to the encode function on XMLEncoder that allows βž• adding attributes on root elements without adding them to your model types. Thanks to @portellaa, @Kirow and others for their contributions and πŸ› bug reports!

    Closed issues:

    • CDATA Decoding not working (#168)
    • Decode special XML Structure (#156)
    • Root level attributes don't get encoded back to attribute when converting back to XML file from Plist (#127)
    • Bad access error when running on device (#100)

    πŸ”€ Merged pull requests:

  • v0.10.0 Changes

    April 04, 2020

    πŸ›  This is a bugfix release, which improves encoding and decoding of enums with associated values πŸš€ (also known as "choice coding") with the XMLChoiceCodingKey protocol. This release is also 🐧 tested on Xcode 11.4 and Swift 5.2.1 on Linux. A few breaking changes were introduced, which were needed to simplify and improve internals of the library. Please refer to the corresponding section below for more details. Thanks to @bwetherfield and @ultramiraculous for their contributions!

    πŸ’₯ Breaking changes:

    This change was needed to accommodate for multiple edges cases with how arrays of empty elements and empty strings are decoded.

    The value intrinsic now only accepts the empty string key "", as the previous "value" key caused naming collisions with attributes and elemenents that had the same name.

    Closed issues:

    • Bundle identifier in wrong format (#164)
    • Can inheritance be implemented? (#159)
    • EXC_BAD_ACCESS when running tests (#153)
    • EXC_BAD_ACCESS on XCode 11.2 and iOS13.2 (#150)
    • Date formatting on 24h region with display set to 12h (#148)
    • Decoding containers with (potentially)-empty elements (#123)

    πŸ”€ Merged pull requests:

  • v0.9.0 Changes

    October 19, 2019

    πŸš€ This release fixes a few bugs with Float type parsing and Swift 5.1 support on 🐧 Linux. It also adds a helper extension to improve compatibility with Combine and βž• adds a few tests to confirm that a few edges cases are working well. Thanks to @bwetherfield, @DJBen, @jsbean, @mxcl, @marcblanchet and @sharplet for bug reports and pull requests!

    Implemented enhancements:

    • Conditionally conform to Combine.TopLevelDecoder #132 (sharplet)

    πŸ›  Fixed bugs:

    • Value with copyright symbol Β© has its preceding whitespace trimmed off even trimValueWhitespaces is set to false #141
    • πŸ“œ Float vs Float64=Double not parsing 3.14 #130

    Closed issues:

    • TrackPoint position parameter is ignored #125
    • TCX file need an XML root node #124
    • [Swift 5.1] Import FoundationXML rather than Foundation #121

    πŸ”€ Merged pull requests:

  • v0.8.0 Changes

    August 04, 2019

    πŸš€ This release adds support for decoding and encoding ordered sequences of different elements as enums with associated values. In addition, XMLCoder now πŸ‘Œ supports Linux. Many thanks to @jsbean, @bwetherfield and @drewag for implementing this!

    πŸ’₯ Breaking changes:

    • πŸ›  Fixed typo in XMLDecoder property: errorContextLenght has been renamed to errorContextLength in #114.

    Closed issues:

    • XML with autoclosed tags #116
    • Arrays of enums #91
    • Array of enums with associated values #25

    πŸ”€ Merged pull requests:

    • Decoding choice elements that can hold empty structs #120 (@bwetherfield)
    • πŸ‘ Encodable and Decodable support for choice elements #119 (@jsbean)
    • βž• Add Linux support #117 (@drewag)
    • πŸ›  Fix typo: errorContextLenght -> errorContextLength #114 (@jsbean)
  • v0.7.0 Changes

    July 02, 2019

    πŸš€ This release changes the behavior of attributes coding: now order of XML attributes is fully preserved. One of the benefits is that it improves unit βœ… testing for users of XMLCoder, which allows testing against specific encoded attributes without accounting for their randomized order. Also a small coding πŸ’… style fix is included. In addition, XMLCoder now uses Azure Pipelines instead of πŸ‘· Travis for CI with great improvements to overall CI stability, speed, and πŸ— parallel builds. Thanks to AndrΓ©s Cecilia Luque and Jay Hickey for the contributions!

    πŸ”€ Merged pull requests:

  • v0.6.0 Changes

    June 17, 2019

    πŸš€ An improvement release that introduces convertFromKebabCase and convertToKebabCase key decoding strategies. There were a few changes that aren't visible to end-users: the way that keys and values are stored internally βœ… has changed and a few more tests added. Thanks to AndrΓ©s Cecilia Luque and Vincent Esche for the contributions!

    πŸ”€ Merged pull requests:

    • βž• Add support for kebab-case KeyDecodingStrategy #105 (@acecilia)
    • Replace UnkeyedBox with Array, refine KeyedStorage #102 (@MaxDesiatov)
    • βž• Add tests for nested keyed/unkeyed collections #38 (@regexident)