All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning and follows a Keep a Changelog-like format.
1.0.6 - 2025-11-26
- Unit tests for tabular arrays as first field in list items.
- Unit tests for arrays of arrays within objects.
.gitattributesfile for line ending handling (CRLF for Windows batch scripts)..editorconfigfile for consistent editor settings.
- Updated to TOON Specification 3.0 compliance (#59).
- Improved
ValueDecodertabular array parsing with dynamic depth detection. - Fixed
ListItemEncoderindentation depth (depth+1 → depth+2) for proper nested structure encoding. - Updated conformance test files to spec version 3.0.
- Updated GitHub issue template to reference spec v3.0 instead of v1.3.
- Minor code formatting improvements in
ObjectEncoder.
1.0.5 - 2025-11-23
- Key Folding Option with folding death
- Added unit tests for PrimitiveDecoder to validate handling of primitives and edge cases.
- Added unit tests for StringValidator, covering the updated pattern evaluation order.
- Refactored ObjectEncoder and Flatter to improve structure robustness after spec updates involving key-folding.
- Refactored ValueDecoder (two-step refactor) to better separate logic and improve maintainability.
- Updated test resources to conform to TOON Specification v2.0.1.
- Updated PrimitiveDecoder with improved regex logic for more accurate literal parsing.
- Updated StringValidator pattern ordering: octal is now evaluated before numeric.
0.1.4 - 2025-11-20
- Javadoc generation task (
generateJavadoc) in build.gradle. - Specs validation task (
specsValidation) for conformance testing. - CODE_OF_CONDUCT.md.
- CONTRIBUTING.md.
- GitHub templates: CODEOWNERS, ISSUE_TEMPLATE (bug_report.yml, feature_request.yml, spec_compliance.yml), PULL_REQUEST_TEMPLATE.md.
- Documentation reorganization: moved TOON-SPECIFICATION.md to docs/FORMAT.md, added docs/README.md.
- Javadoc HTML documentation in docs/javadoc/.
- BREAKING: Package name migration from
com.felipestanzani.jtoontodev.toonformat.jtoon. - BREAKING: Maven group ID changed from
com.felipestanzanitodev.toonformat. - Repository migrated from
felipestanzani/jtoontotoon-format/toon-java. - Minimum test coverage requirement increased from 85% to 90%.
- LICENSE.md renamed to LICENSE.
- Updated GitHub Actions workflows (build.yml, release.yml).
- Updated Gradle wrapper.
- Updated dependency:
actions/github-scriptfrom 6 to 8.
0.1.3 - 2025-11-14
- Decoding support via
JToon.decode()andJToon.decodeToJson()methods. DecodeOptionsrecord withstrictvalidation mode.decoderpackage with full TOON parser supporting all formats (primitives, objects, arrays, delimiters).- String unescaping in
StringEscaper.unescape()method. - Comprehensive test suite with round-trip encode/decode verification.
- Updated README with decode API documentation and examples.
0.1.2 - 2025-11-05
- Java version requirement from 21 to 17 for broader compatibility.
- Refactored
JsonNormalizerto use if-else statements instead of switch expressions for better readability. - Updated dependency:
com.fasterxml.jackson.core:jackson-databindfrom 2.18.2 to 2.20.1. - Updated dependency:
org.junit:junit-bomfrom 5.10.0 to 6.0.1. - Updated GitHub Actions:
actions/setup-javafrom 4 to 5,actions/upload-artifactfrom 4 to 5,actions/checkoutfrom 4 to 5,softprops/action-gh-releasefrom 1 to 2.
0.1.1 - 2025-10-30
JToon.encodeJson(String)andJToon.encodeJson(String, EncodeOptions)to encode plain JSON strings directly to TOON.- Centralized JSON parsing via
JsonNormalizer.parse(String)to preserve separation of concerns. - Unit tests for JSON string entry point (objects, primitive arrays, tabular arrays, custom options, error cases).
- README examples for JSON-string encoding, including a Java text block example.
- This changelog.
- README: Expanded API docs to include
encodeJsonoverloads.
0.1.0 - 2025-10-30
- Initial release.
- Core encoding of Java objects to TOON with automatic normalization of Java types (numbers, temporals, collections, maps, arrays, POJOs).
- Tabular array encoding for uniform arrays of objects.
- Delimiter options (comma, tab, pipe) and optional length marker.
- Comprehensive README with specification overview and examples.