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 on XMLDecoder 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 to NodeEncodingStrategy 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 make XMLCoder 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(…) for OutputFormatting.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)