From 2e69c2f2d05fd9b1d8ab43ef16cae908ac42da40 Mon Sep 17 00:00:00 2001 From: Ivan FB Date: Fri, 19 Jun 2026 10:06:11 +0200 Subject: [PATCH] docs: add CHANGELOG with 0.4.0 release notes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Start tracking notable changes in a Keep a Changelog file so consumers (notably sds-go-bindings) can see breaking changes — the C FFI symbol rename and the required participantId — at a glance rather than reading the git log. Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..8cbafd5 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,30 @@ +# Changelog + +All notable changes to **nim-sds** 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.4.0] - 2026-06-19 + +### Added +- SDS-Repair (SDS-R) support, implementing the repair extension from the SDS spec ([#60](https://github.com/logos-messaging/nim-sds/pull/60)). +- Persistence interface for SDS state, refactored into a snapshot-based, fully async API with atomic per-operation semantics ([#66](https://github.com/logos-messaging/nim-sds/pull/66), [#69](https://github.com/logos-messaging/nim-sds/pull/69), [#72](https://github.com/logos-messaging/nim-sds/pull/72), [#73](https://github.com/logos-messaging/nim-sds/pull/73)). +- Nimble-based build system for the core library and FFI targets ([#52](https://github.com/logos-messaging/nim-sds/pull/52)). +- `CLAUDE.md` contributor/architecture guide ([#58](https://github.com/logos-messaging/nim-sds/pull/58)). + +### Changed +- **Breaking (C ABI):** adopted nim-ffi v0.1.5 and migrated the C FFI to its macro-generated API. All exported symbols are renamed from PascalCase `Sds*` to snake_case `sds_*` (e.g. `SdsNewReliabilityManager` → `sds_create`, `SdsCleanupReliabilityManager` → `sds_destroy`). Consumers such as sds-go-bindings must update to the new names ([#81](https://github.com/logos-messaging/nim-sds/pull/81)). +- Replaced the nim-libp2p protobuf dependency with nim-protobuf-serialization for message encoding/decoding ([#77](https://github.com/logos-messaging/nim-sds/pull/77)). +- **Breaking (API):** `participantId` is now required when creating a `ReliabilityManager` ([#67](https://github.com/logos-messaging/nim-sds/pull/67)). +- General refactor to align the codebase with the logos-delivery style ([#62](https://github.com/logos-messaging/nim-sds/pull/62)). + +### Fixed +- Restored `-d:noSignalHandler` for the libsds build so the embedded library does not install signal handlers. +- Forced `epoll` usage on Android. + +## [0.3.0] + +Earlier releases were not tracked in this changelog. See the +[release tags](https://github.com/logos-messaging/nim-sds/tags) for history +prior to 0.4.0.