Packages

Conflict-free Replicated Tree CRDTs for Elixir

Current section

Files

Jump to
grove CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to this project are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.2.0] - 2026-06-14
### Changed
- **Raised the minimum Elixir version to `~> 1.20`** and now build against
Erlang/OTP 29. This drops support for Elixir 1.18/1.19.
- Reordered the `%MapSet{}` clause ahead of the generic `is_map/1` clause in the
replication server's emptiness check. Previously a `MapSet` value matched the
`is_map/1` clause, where `map_size/1` counts struct fields rather than set
elements — a latent correctness bug surfaced by the Elixir 1.20 type checker.
- Reformatted the codebase with the Elixir 1.20 formatter.
### Removed
- Dropped unreachable clauses flagged by the Elixir 1.20 type checker (a
catch-all error clause in `Grove.Batch.run!/2` and empty-list base clauses in
`Grove.Tree.EventSerializer`). No behavioral change.
## [0.1.1]
- Initial public release line.
[0.2.0]: https://gitlab.com/tristanperalta/grove/-/releases/v0.2.0
[0.1.1]: https://gitlab.com/tristanperalta/grove/-/releases/v0.1.1