XMLCoder v0.3.0 Release Notes
Release Date: 2019-01-22 // about 5 years ago-
π A maintenance release focused on fixing bugs, improving error reporting and π overall internal architecture of the library. For this release we've started β tracking test coverage and were able to increase it from 11.8% to 75.6%. π Thanks to @hodovani and β @regexident for their work on improving test π coverage in this release.
β Additions:
You can now set
errorContextLength: UInt
property onXMLDecoder
instance, π which will make it add a snippet of XML of at most this length from parser state π when a parsing error occurs. This change was provided by @hodovani and can greatly help with attempts to π parse invalid XML, where previously only a line and column number were reported.π Deprecations:
NodeEncodingStrategies
was renamed toNodeEncodingStrategy
for consistency. πNodeEncodingStrategies
is still available as a deprecated typealias, which π will be removed in future versions. Thanks to @regexident for cleaning this up and providing π many more changes in this release that makeXMLCoder
better and easier to use.π Changes:
- β Add SwiftLint and fix linter errors (#35, @MaxDesiatov)
- β Add single array element example to tests (#66, @MaxDesiatov)
- β Remove generic encode/decode functions (#64, @hodovani)
- π Change internal representation to ordered array of children (#55, @regexident)
- Keyed/unkeyed boxes as structs (#36, @regexident)
- β Add dedicated benchmarking test suite (#34, @regexident)
- β Add tests to increase test coverage (#63, @hodovani)
- β Add tests for keyed and unkeyed int types (#62, @hodovani)
- β Add test to case when error context size goes outside content size (#61, @hodovani)
- Specify Swift version for packaging, refine CI (#60, @MaxDesiatov)
- β Add test for keyed Int types (#58, @hodovani)
- π Fix missing trailing semicolon in character escapings (#59, @regexident)
- β Increase test coverage (#56, @hodovani)
- π Fix
RelationshipsTest.testDecoder
crash on failure (#50, @regexident) - π Improve
XMLStackParserTests
to test against CDATA blocks (#51, @regexident) - β Remove unnecessary use of
@available(β¦)
forOutputFormatting.sortedKeys
(#53, @regexident) - π Fix decoding of arrays with optional elements (#48, @MaxDesiatov)
- β Add Optional Error Context (#46, @hodovani)
- π Install Carthage only in before_deploy on Travis (#47, @MaxDesiatov)
- β Add coding style and test coverage to README.md (#44, @MaxDesiatov)
- π Improve code coverage of auxiliary types (#43, @regexident)
- π Improve code coverage of box types (#42, @regexident)
- π Make error handling in
XMLDecoder
simpler & safer (#41, @regexident) - Unfold
guard β¦ else
blocks to allow settingbreakpoints (#39, @regexident) - β Cleanup throwing unit tests & add tests for missing values (#40, @regexident)
- Let compiler synthesize Equatable conformance for _XMLElement (#33, @jsbean)
- π· Apply SwiftFormat on CI runs (#32, @MaxDesiatov)
- π Fix a bug with throws on
Encodable
encoding nothing (#31, @regexident) - Clean up
XMLElement
,ArrayBox
&DictionaryBox
(#28, @regexident) - β
Extract URL coding into
URLBox
with tests (#30, @regexident) - β Remove use of explicit
internal
(#29, @regexident) - Clean up coding logic, improve box naming (#27, @regexident)
- π Clean up
XMLStackParser
(#26, @regexident) - Overhaul internal representation, replacing
NSβ¦
withβ¦Box
types (#19, @regexident) - β Added benchmark to RJI test suite (#20, @regexident)
- π Fix generation of Jazy docs (#18, @MaxDesiatov)
- β Added unit tests for array and dictionary properties (#7, @regexident)
- π Moved
_XMLβ¦EncodingContainer
into their own files, matching decoder (#4, @regexident) - β
Convert
Sample XML
code to XCTest (#1, @MaxDesiatov) - Respect .sortedKeys option, add .swiftformat (@qmoya)
- Bring back
gem install cocoapods --pre
to Travis (@MaxDesiatov) - β Add --verbose flag to
pod lib lint
in travis.yml (@MaxDesiatov) - Specify stable versions in the installation guide (@MaxDesiatov)
- π Implement Travis CI deployment of Carthage archive (@MaxDesiatov)
- β Add NodeEncodingStrategies typelias as deprecated (#9, @MaxDesiatov)
- π Rename
NodeEncodingStrategies
to match other type names (#8, @regexident) - Consider node encoding strategy for values inside unkeyed containers (#2, @regexident)
- β Run tests with coverage, upload to codecov.io (@MaxDesiatov)