mirror of
https://github.com/AdrianKuta/Tree-Data-Structure.git
synced 2026-06-19 19:00:14 +02:00
v3.4 modernization (continued): - Migrate to Kotlin 2.x (K2); introduce gradle/libs.versions.toml version catalog; simplify the JS/Wasm/Node and iOS source-set wiring for the K2 hierarchy template. - Apply binary-compatibility-validator and Kover plugins. - New published module tree-structure-serialization: @Serializable TreeNodeDto with toDto()/toTreeNode() round-trip (kotlinx.serialization). - New published module tree-structure-coroutines: asFlow()/pre/post/levelOrderFlow() (kotlinx.coroutines Flow traversal). - Docs: README examples for Sequence/navigation/functional APIs, class-level KDoc (thread-safety/complexity), and a CHANGELOG.md. - Ignore subproject build/ directories. - Bump version to 3.4.0. All JVM tests green (core + both modules).
2.3 KiB
2.3 KiB
Changelog
All notable changes to this project are documented here. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
3.4.0
Added
- Lazy
Sequencetraversal:asSequence(order),preOrderSequence(),postOrderSequence(),levelOrderSequence()— composes with the Kotlin stdlib and short-circuits. - Navigation extensions:
isLeaf,degree,root(),ancestors(),siblings(),leaves(),descendants(). - Functional extensions:
findNode,filterNodes,anyNode,allNodes,countNodes,foldNodes,mapValues,deepCopy,structurallyEquals(all stack-safe). - New optional modules published as separate artifacts:
tree-structure-serialization—kotlinx.serializationsupport via aTreeNodeDto.tree-structure-coroutines—Flowtraversal (asFlow,preOrderFlow, …).
CHANGELOG.md, expanded README examples, and class-level KDoc (thread-safety / complexity).
Changed
nodeCount(),height(),clear()and the post-order iterator are now iterative — deep or degenerate (linear) trees no longer throwStackOverflowError.- Migrated to Kotlin 2.x (K2 compiler) and introduced a Gradle version catalog.
- Build now uses
binary-compatibility-validator(committed.apibaselines) and Kover.
3.1.5
Fixed
- Removed a stray
printlninTreeNode.removeChild()that printed to stdout on every removal.
Removed
- Deleted the
Example.ws.ktsworksheet and thekotlin("script-runtime")dependency from the published JVM artifact, plus the leftoverExampleUnitTesttemplate test.
Changed
- Bumped
actions/checkoutv2 → v4 in CI workflows.
3.1.4
- Updated Kotlin and JS dependencies; added the
wasmJstarget.
3.1.3
- iOS targets and Maven Central (Sonatype Central Portal) publishing.