Merge branch 'master' into start-using-nim-ffi-0-2

Brings the nim-ffi 0.2 CBOR ABI branch up to date with master so it can
be PR'd cleanly:

- Takes #79 (move API module into srcDir so `import sds` resolves for
  nimble consumers) — the only non-conflicting incoming change.
- Resolves the sole conflict in sds.nimble in favour of this branch:
  keep the `nim-ffi#v0.2.0-rc.1` pin / `ffi >= 0.2.0` floor and the
  cbor-serialization requirement. Master's #80 relaxes the floor to
  `>= 0.1.3` for core-only consumers, which is intentionally overridden
  here — adopting the 0.2 CBOR ABI is the whole point of this branch.

Validated: libsds builds clean and `nimble test` is green (bloom,
reliability, persistence, snapshot_codec) on nim 2.2.4.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Ivan FB 2026-06-24 17:19:44 +02:00
commit 6fc82d3487
No known key found for this signature in database
GPG Key ID: DF0C67A04C543270
4 changed files with 24 additions and 17 deletions

View File

@ -1,3 +1,8 @@
# The package's import root is its srcDir ("sds"), where the API module
# sds.nim lives. Put it on the path so in-repo consumers (tests/, library/)
# resolve `import sds` the same way nimble consumers of the package do.
switch("path", thisDir() & "/sds")
# begin Nimble config (version 2)
--noNimblePath
when withDir(thisDir(), system.fileExists("nimble.paths")):

View File

@ -19,6 +19,8 @@ requires "results"
# nim-ffi isn't in the nimble registry, so a plain `nimble` build fetches it by
# URL. The Nix build pre-populates deps offline (can't clone) and sets
# SDS_NIX_DEPS to resolve it by name from the installed pkgs2 instead.
# This branch adopts the nim-ffi 0.2 CBOR ABI, so it pins v0.2.0-rc.1 and
# overrides master's relaxed >= 0.1.3 floor (which exists for core-only consumers).
when existsEnv("SDS_NIX_DEPS"):
requires "ffi >= 0.2.0"
else:

View File

@ -1,6 +1,6 @@
import std/[algorithm, times, tables, sets, options]
import chronos, results, chronicles
import sds/[types, protobuf, sds_utils, rolling_bloom_filter]
import ./[types, protobuf, sds_utils, rolling_bloom_filter]
export types, protobuf, sds_utils, rolling_bloom_filter

View File

@ -1,19 +1,19 @@
import sds/types/sds_message_id
import sds/types/history_entry
import sds/types/sds_message
import sds/types/unacknowledged_message
import sds/types/incoming_message
import sds/types/bloom_filter
import sds/types/rolling_bloom_filter
import sds/types/reliability_error
import sds/types/callbacks
import sds/types/app_callbacks
import sds/types/reliability_config
import sds/types/repair_entry
import sds/types/channel_context
import sds/types/persistence
import sds/types/reliability_manager
import sds/types/protobuf_error
import ./types/sds_message_id
import ./types/history_entry
import ./types/sds_message
import ./types/unacknowledged_message
import ./types/incoming_message
import ./types/bloom_filter
import ./types/rolling_bloom_filter
import ./types/reliability_error
import ./types/callbacks
import ./types/app_callbacks
import ./types/reliability_config
import ./types/repair_entry
import ./types/channel_context
import ./types/persistence
import ./types/reliability_manager
import ./types/protobuf_error
export
sds_message_id, history_entry, sds_message, unacknowledged_message, incoming_message,