Changelog History
Page 1
-
v0.11.1
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
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
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
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
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
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
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)
-
v0.5.1
May 02, 2019π Bugfix release that restores decoding of empty sequences, which became broken in 0.5.0.
π Merged pull requests:
- π Fix decoding of empty sequences #98 (@MaxDesiatov)
- β
Rename
flatten
totransformToBoxTree
, rename tests #97 (@MaxDesiatov)
-
v0.5.0
May 02, 2019π A small improvement release tagged early to resolve blocking issues in CoreXLSX.
Notable changes:
- Empty value strings are no longer decoded as
nil
when aString
is expected, but are decoded as empty strings, which represents the actual value. trimValueWhitespaces
property was added onXMLDecoder
, which allows overriding the default behaviour, where starting and trailing whitespaces are trimmed from string values.
Closed issues:
- Trimmed whitespace on decoding
String
#94
π Merged pull requests:
- π Fixed a bug when decoding a key with one character only #96 (@TheFlow95)
- β Add more cases to
AttributedIntrinsicTest
#95 (@MaxDesiatov) - π Use
map
instead ofmapValues
/shuffle
inXMLCoderElement.flatten
#93 (@jsbean) - π Fix decoding empty element as optional #92 (@MaxDesiatov)
- Empty value strings are no longer decoded as
-
v0.4.1
April 12, 2019π A bugfix release removing unused Xcode project scheme to improve build time for Carthage users.
Notable changes:
- β Remove unused scheme in Xcode project (@MaxDesiatov)