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.
Namely:
- π
removeWhitespaceElements
boolean flag onXMLDecoder
allows removing elements that have purely whitespace content. convertFromUppercase
case onKeyDecodingStrategy
allows convertingALL_CAPS_SNAKE_CASE
tocamelCase
.- π an edge case in intrinsic key value decoding has been fixed.
Many thanks to @huwr, @kneekey23, and @wooj2 for their contributions!
Closed issues:
π Merged pull requests:
- π
-
v0.12.0 Changes
January 26, 2021π This release adds a few new features. Namely:
- π New
charactersEscapedInAttributes
andcharactersEscapedInElements
properties onXMLEncoder
that allow customizing how certain characters are escaped. - You can now override the implementation of
TopLevelEncoder
Combine protocol conformance when subclassingXMLEncoder
. - π New
prettyPrintIndentation
property onXMLEncoder
, which can takeXMLEncoder.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)
in XML attributes (#185)- " and
"
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 onXMLEncoder
(#186) via @MaxDesiatov - π Make
TopLevelEncoder
implementation overridable (#182) via @kkk669
- π New
-
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:
- Encode only strings as CDATA (#179) @MaxDesiatov
-
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 toXMLEncoder
. NewrootAttributes
argument has been added to theencode
function onXMLEncoder
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:
- β Add TopLevelEncoder implementation (#175) @MaxDesiatov
- β Add support for root attributes propagation (#160) @portellaa
- π Fix RJITest RSS encoding and decoding (#171) @MaxDesiatov
- β Cleanup tests, support OpenCombine (#169) @MaxDesiatov
- π Fix CDATA issue (#170) @MaxDesiatov
-
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:
- π Fix Decoding of Arrays of Empty Elements (#152) (@bwetherfield)
This change was needed to accommodate for multiple edges cases with how arrays of empty elements and empty strings are decoded.
- Replace value intrinsic with empty string key (#149) (@bwetherfield)
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:
- β Run GitHub Actions on a push to the master branch (#167) (@MaxDesiatov)
- π Test w/ Xcode 11.4 on macOS, Swift 5.2.1 on Linux (#166) (@MaxDesiatov)
- π Use reverse-DNS notation for the bundle identifier (#165) (@MaxDesiatov)
- Trigger Azure Pipelines run on PRs to master (#162) (@MaxDesiatov)
- β Run Danger with GitHub Actions (#163) (@MaxDesiatov)
- Trigger Azure Pipelines run on PRs to master (#162) (@MaxDesiatov)
- β Add Xcode 11.3 to azure-pipelines.yml (#158) (@MaxDesiatov)
- π Support for mixed-content nodes (#157) (@ultramiraculous)
- Mixed choice/non-choice decoding (#155) (@bwetherfield)
- Mixed choice/non-choice encoding (#154) (@bwetherfield)
- β Add Xcode 11.2 and 10.3 to azure-pipelines.yml (#151) (@MaxDesiatov)
- π Fix Decoding of Empty String (#145) (@bwetherfield)
-
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:
π 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:
- β Add whitespace trimming test with copyright symbol #147 (MaxDesiatov)
- π Fix CocoaPods issue on Azure Pipelines #146 (MaxDesiatov)
- π Fix Float32 decoding, add DoubleBox #138 (MaxDesiatov)
- β Add QuoteDecodingTest #137 (MaxDesiatov)
- β Test Root Level Attribute Encoding #134 (bwetherfield)
- β Add Xcode 11, Swift 5.1 support #133 (MaxDesiatov)
- β Test Decoding of Nested Arrays of Enums #126 (bwetherfield)
- Value with copyright symbol Β© has its preceding whitespace trimmed off even
-
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 toerrorContextLength
in #114.
Closed issues:
π Merged pull requests:
- π Fixed typo in
-
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:
- π Change components variable from var to let #107 (@jayhickey)
- Keep the order of the attributes during encoding operations #110 (@acecilia)
- Migrate from Travis to Azure Pipelines #111 (@MaxDesiatov)
-
v0.6.0 Changes
June 17, 2019π An improvement release that introduces
convertFromKebabCase
andconvertToKebabCase
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)