Release v0.4.10
Orisun v0.4.10
Orisun v0.4.10
This release supersedes the failed v0.4.5, v0.4.6, v0.4.7, v0.4.8, and v0.4.9 release attempts. The functional release contents are the accumulated changes since v0.4.4, plus the FoundationDB release-build correction from v0.4.9 and the deterministic SQLite group-commit test fix in v0.4.10.
Release Status
- v0.4.5 failed before producing a complete usable release.
- v0.4.6 and v0.4.7 were follow-up release attempts while stabilizing CI and release validation.
- v0.4.8 passed release validation, including
go test -p 1 -timeout 90m -v ./..., but failed in the FoundationDB release artifact jobs. - v0.4.9 aligned the Go FoundationDB binding with the packaged FoundationDB 7.3 runtime and headers, but release validation exposed a timing race in a SQLite group-commit concurrency test harness.
- v0.4.10 fixes that test harness race while preserving the SQLite CCC concurrency assertions.
SQLite CCC And Concurrency
- Added focused coverage for concurrent SQLite saves so CCC behavior remains deterministic under concurrent requests.
- Verified that only one conflicting writer can win when concurrent requests target the same content-query consistency context.
- Preserved the
ALREADY_EXISTS/optimistic-concurrency behavior for losing writes. - Added group-commit coverage for batching, overflow, cancellation, panic recovery, notifier behavior, clean shutdown, direct-mode parity, gap-free concurrent commits, and cross-flush expected-position conflicts.
- Fixed the group-commit blocker helper so tests wait for the current blocker flush to start, instead of assuming the single-flush counter begins at zero. This removes the CI race seen in
TestGroupCommit_InBatchSameExpectedPositionOnlyOneWinsafter a seed save had already incremented the counter.
FoundationDB Build Fix
- Downgraded
github.com/apple/foundationdb/bindings/gofrom the API-800 binding revision to the FoundationDB 7.3-compatible revisionv0.0.0-20260416192139-3ea44ce1d900. - Kept the release/runtime FoundationDB package line at
7.3.77, which is the packaged client/server version used by the existing CI and Docker release paths. - Fixed the v0.4.8 failure mode where the Go binding requested a newer C API than the 7.3 headers exposed during the FoundationDB binary and Docker builds.
- Verified both the containerized
cmd/orisun-fdbcompile path and the FDB Docker image build path after the downgrade.
SQLite Durability And Metadata
- Added the SQLite group-commit write path.
- Defaulted SQLite to
FULLsynchronous mode for safer local durability. - Preserved SQLite metadata separation from boundary event databases.
- Covered legacy metadata migration for boundary and admin state.
Release Pipeline
- Added FoundationDB Docker image coverage to CI.
- Removed the generic Docker image build from CI in favor of backend-specific image validation.
- Extended integration and package test timeouts so release validation has enough room for the Docker-backed suites.
- Stabilized release validation around the full package test run.
Documentation
- Added the Orisun logo and consolidated documentation entry pages.
- Replaced em dashes in documentation with standard punctuation.
Verification
Validated locally during the v0.4.9/v0.4.10 release preparation:
go test ./foundationdbTEST_PKGS=./cmd/orisun-fdb scripts/fdb_test_container.sh -run '^$'docker build -t orisun-fdb:release-fix -f Dockerfile.fdb .docker build --platform linux/amd64 -t orisun-fdb:release-fix-amd64 -f Dockerfile.fdb .reached and completed thego build -tags foundationdbstage; the resulting amd64 image was present locally.go test -p 1 -timeout 90m -v ./...go test ./sqlite -run 'TestGroupCommit_InBatchSameExpectedPositionOnlyOneWins|TestGroupCommit_InBatchConflictEarlierWinsLaterAlreadyExists|TestGroupCommit_CancelledWhileQueuedIsDroppedWithoutAllocatingIDs' -count=20go test ./sqlite
Commits Since v0.4.4
fb80b2atest: make sqlite group commit blocker deterministic327fc41fix: align FoundationDB binding with 7.3 runtimefa22e49ci: extend package test timeout27ed534ci: stabilize release validation07cbe72ci: extend integration test timeoutf7a2371test sqlite CCC concurrent saves9c26176Add FoundationDB Docker image to CI7e31c88Remove generic Docker image build from CId6a3109Add SQLite group commit write path6e55a11fix(sqlite): default to FULL synchronous mode8ec14ccfix(sqlite): default to FULL synchronous mode65fd0f0docs: replace em-dashes with standard punctuation77720a5docs: add Orisun logo and consolidate entry pages
Installation
Linux
# PostgreSQL-only binary
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.10/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.10/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlite
# FoundationDB-only binary (Linux only; requires the FoundationDB
# client library installed: foundationdb-clients 7.3.x)
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.10/orisun-fdb-linux-amd64 -o orisun-fdb
chmod +x orisun-fdbmacOS
# PostgreSQL-only binary for Apple Silicon
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.10/orisun-pg-darwin-arm64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary for Apple Silicon
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.10/orisun-sqlite-darwin-arm64 -o orisun-sqlite
chmod +x orisun-sqliteWindows
Download the PostgreSQL-only or SQLite-only binary from the assets below.
Docker
docker pull orexza/orisun:0.4.10-pg
docker pull orexza/orisun:0.4.10-sqlite
docker pull orexza/orisun:0.4.10-fdbChannel tags are also available: pg, sqlite, and fdb.