Releases: fktn-k/fkYAML
fkYAML version 0.3.7
Summary
This release includes refactoring of YAML escaping and improvement of the way of managing anchor/alias nodes.
Furthermore, several bugs found in the deserializer are resolved.
For contributors, the results of executing clang-format and amalgamation in the GitHub Actions workflows are now automatically applied to the source files.
You can, of course, still run those tools locally but that's not required from this release on.
For more details, see the CONTRIBUTING.md file.
What's Changed
⚡ Improvements
- Separate YAML escaping/unescaping functionalities by @fktn-k in #337
- Improve anchor alias node management by @fktn-k in #340
🐛 Bug Fixes
- Fix false error on anchor names containing colons (:) by @fktn-k in #335
- Escape backslash(\) + 0x09 to a horizontal tab (\t) by @fktn-k in #336
- Fixed error on node properties for child block sequences by @fktn-k in #338
- Fix the C6262 warning on Windows by @fktn-k in #339
🤖 CI
Full Changelog: v0.3.6...v0.3.7
fkYAML version 0.3.6
Summary
This release includes enhancements to the deserializer, improving both performance and readability.
Furthermore, it resolves several issues identified in the deserializer and improves conformance to the YAML specification.
What's Changed
⚡ Improvements
🐛 Bug Fixes
- Fixed parser crashes on a sequence right after the directives end marker by @fktn-k in #327
- Allow backslashes in plain/single-quoted scalars by @fktn-k in #329
- Fixed parse error on root block sequence with child block sequences by @fktn-k in #330
- Fix parse error on block sequences with child flow style container nodes by @fktn-k in #332
- Fixed parse error on block sequences with child block mappings split by a newline code by @fktn-k in #333
🧑🤝🧑 Community
Full Changelog: v0.3.5...v0.3.6
fkYAML version 0.3.5
Summary
This release adds the new support for serialization of YAML container key nodes either with or without tags and/or anchors.
In addition, Win32 builds are now tested during the GitHub Actions workflows.
Moreover, the performance and efficiency of Unicode handlings have been improved by refactoring the deserialization feature.
For contributors, fkYAML now depends on the Clang-Format Python distribution as the source code formatter and provides Bash/Batch scripts for running the Clang-Format and amalgamation.
For more information, see the latest CONTRIBUTING.md file.
What's Changed
✨ New Features
⚡ Improvements
- Query the count of UTF-8 character bytes by @fktn-k in #317
- Improved UTF encoding processing by @fktn-k in #318
- Reformat source files by @fktn-k in #320
🐛 Bug Fixes
- Fix parse error on the first node which isn't a block mapping by @fktn-k in #322
- Force LF newline codes in the amalgamated file by @fktn-k in #324
🤖 CI
🧑🤝🧑 Community
- Use Clang-Format python distribution by @fktn-k in #316
- Set the unit test app as the Visual Studio startup project by @fktn-k in #321
- Add Bash & Batch scripts to run clang-format & amalgamation by @fktn-k in #325
Full Changelog: v0.3.4...v0.3.5
fkYAML version 0.3.4
Summary
This release adds the new support for YAML tags in both the deserialization and serialization features while improving the performance and efficiency of the deserialization feature.
In addition, std::basic_string_view types, such as std::string_view, are now explicitly supported, and implementations of conversion from string scalar nodes and test cases for the functions that take those types as arguments.
For CI processes, workflows using the macOS 14 GitHub Actions runner image have been added, and platform support for fkYAML has been extended.
What's Changed
✨ New Features
- #181 support tag for scalars by @fktn-k in #305
- support tags for container nodes with some cleanup in test suite by @fktn-k in #309
- Add workflow jobs with the macOS14 runner image by @fktn-k in #310
- #294 Support std::basic_string_view by @fktn-k in #313
- #181 Serialize container tags by @fktn-k in #314
⚡ Improvements
🤖 CI
- Fix Valgrind error in the test suite by @fktn-k in #307
- Organized the contents of the test suite by @fktn-k in #311
📝 Documentation
Full Changelog: v0.3.3...v0.3.4
fkYAML version 0.3.3
Summary
This release adds a new basic_node API, at(), which validates before either (1) that the specified key exists in the mapping or (2) that the specified index is less than the current size of the sequence before accessing the target node.
Several bugs bugs in the deserialization feature have also been fixed.
In addition, refactoring of the deserializer has improved the handling of input characters.
What's Changed
✨ New Features
⚡ Improvements
- Further improvements of input handlings by @fktn-k in #301
- Fixed warnings and made future warnings as errors by @fktn-k in #300
- Improve handling UTF encoded inputs by @fktn-k in #296
- modied the way of formatting error messages for exception objects by fktn-k in #291
🐛 Bug Fixes
- #302 Fixed parse error on alias mapping keys by @fktn-k in #303
- #292 Better handling for flow indicators in permitted scalar contexts by @stephenwhittle in #293
- #288 Fixed incorrect parse results from mapping entries split across newlines by @fktn-k in #289 (reported by @stephenwhittle)
🤖 CI
🧑🤝🧑 Community
- #297 Add a note for checking the coverage & upload the same as an artifact by @fktn-k in #295 (suggested by @stephenwhittle)
- Add .editorconfig file by @fktn-k in #287
Full Changelog: v0.3.2...v0.3.3
fkYAML version 0.3.2
Summary
This release contains the char8_t
support for deserialization and bug fixes related to the deserialization feature.
Furthermore, the list of the supported compilers are expanded since the GitHub Actions runner image macOS-13
has been officially released.
What's Changed
✨ New Features
⚡ Improvements
🐛 Bug Fixes
- #281 Fixed the parser crash due to comments right after a sequence block key by @fktn-k in #284
- #282 Don't traverse up to the parent node immediately after parsing a flow-mapping value by @stephenwhittle in #283
- #277 Fixed incorrect parse result from plain scalars starting with special values by @fktn-k in #278
- #275 Fixed parse error on plain scalars containing flow indicators by @fktn-k in #276 reported by @stephenwhittle
- #272 Fix parse error on a block sequence containing a comment within by @fktn-k in #273 reported by @acfsmith
🤖 CI
📝 Documentation
Full Changelog: v0.3.1...v0.3.2
fkYAML version 0.3.1
Summary
From this release on, fkYAML provides the amalgamated version to improve portability as a header-only library.
Also, this release contains bug-fixes in the deserialization process.
Furthermore, the documentation now uses outputs from the sources in docs/examples
directory to keep the examples in the documentation up to date with the latest library sources.
What's Changed
✨ New Features
- #255 serve single header file #261 (fktn-k) suggested by @reFX-Mike
⚡ Improvements
🐛 Bug Fixes
- Avoid using unintended C++14 features #266 (fktn-k) reported by @burgreen
- Allow a dash(-) at the first character of a plain scalar #254 (fktn-k)
- Allow double quotation marks in plain scalars #253 (fktn-k)
- #242 Fix error in parsing string consisting only of numbers and multiple dots #251 (fktn-k)
🤖 CI
📝 Documentation
- fixed typos which needs to be target_link_libraries() in tutorials #267 (fktn-k) reported by @burgreen
- #229 Fix the documentation build errors #265 (fktn-k)
- #229 build example code and use output #264 (fktn-k)
Full Changelog: v0.3.0...v0.3.1
fkYAML version 0.3.0
Summary
This release contains some breaking changes in the basic_node
's mapping node type so that fkYAML supports non-string-scalar nodes, such as mappings or integer scalars, as mapping keys.
Furthermore, from this release on, GCC-7 and GCC-8 are in the list of supported compilers and used for testing on GitHub Actions.
What's Changed
💥 Breaking Changes
- #240 Support explicit block mappings & non-scalar nodes as mapping keys #245 (fktn-k)
- #240 Support non-string scalar nodes as mapping keys #244 (fktn-k)
- Feature/238 apply correct noexcept #241 (fktn-k)
⚡ Improvements
- #240 Support non-string-scalar node keys in basic_node ctor with std::initializer_list #247 (fktn-k)
- #240 implement node comparison #243 (fktn-k)
🐛 Bug Fixes
🤖 CI
📝 Documentation
Full Changelog: v0.2.3...v0.3.0
fkYAML version 0.2.3
Summary
This release contains support for the deserialization of YAML block style scalars and the user-defined string literals for YAML node objects.
A bug in parsing UTF-16 encoded inputs has also been fixed in this release.
Furthermore, from this release on, natvis debugger visualization file is/will be contained when fkYAML is built with the MSVC environments for better debugging experience.
What's Changed
⚡ Improvements
- Feature/232 user defined literal for deserialization #235 (fktn-k)
- #159 Support block scalar styles #228 (fktn-k)
- Feature/226 add natvis file #227 (fktn-k)
🐛 Bug Fixes
📝 Documentation
- Improved contribution guide #231 (fktn-k)
- Removed dependency on the cmake-format tool #230 (fktn-k)
- Fixed wrong URLs in the releases page of the documentation #225 (fktn-k)
Full Changelog: v0.2.2...v0.2.3
fkYAML version 0.2.2
Summary
This release supports the UTF-8, UTF-16BE/LE, and UTF-32BE/LE encodings including BOMs in parsing YAML documents, and improved the contents of error messages by adding runtime information when exceptions are thrown.
Furthermore, bugs in the deserialization/serialization features have also been fixed.
CAVEAT
The fkYAML library is an alpha quality software, at most.
It would take a while until this library gets stabled version, since implementation and maintenance has been/will be done by a single developer.
If you find a bug or wanted features, please open a discussion/issue to let me know.
Any kind of contribution is very much welcomed.
What's Changed
⚡ Improvements
- #209 Support auto-detection of Unicode encoding types including BOMs #223 (fktn-k)
- #214 Emit more descriptive errors #222 (fktn-k)
- #209 support UTF-16 / UTF-32 for deserialization input characters #221 (fktn-k)