keiro 0.22.0.0 → 0.23.0.0
raw patch · 4 files changed
+36/−13 lines, 4 filesdep ~keiro-coredep ~keiro-migrationsdep ~keiro-test-supportPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: keiro-core, keiro-migrations, keiro-test-support, kiroku-store, shibuya-kiroku-adapter
API changes (from Hackage documentation)
Files
- CHANGELOG.md +16/−0
- keiro.cabal +13/−13
- src/Keiro/ProcessManager.hs +1/−0
- test/Main.hs +6/−0
CHANGELOG.md view
@@ -6,6 +6,22 @@ ## [Unreleased] +## 0.23.0.0 — 2026-10-30++### Breaking Changes++- Require `kiroku-store ^>=0.13.0.1` from+ mori://shinzui/kiroku/packages/kiroku-store. Update exhaustive custom Store+ interpreters, StoreError matches, and KirokuEvent observers for compaction;+ follow the Keiro upgrade blueprint and its entailed upstream edge.++### Other Changes++- Treat `CompactionConcurrentMutation` as a transient store error so process+ managers retry commands affected by a concurrent compaction mutation.+- Refresh runtime guides and user documentation, including workflow replay,+ snapshots, migration ownership, and operational inspection contracts.+ ## 0.22.0.0 — 2026-10-27 ### Breaking Changes
keiro.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: keiro-version: 0.22.0.0+version: 0.23.0.0 synopsis: Event sourcing framework and workflow engine description: A library that composes kiroku, keiki, and shibuya into an@@ -176,8 +176,8 @@ hs-opentelemetry-semantic-conventions >=1.40 && <2, keiki >=0.9 && <0.10, keiki-codec-json >=0.9 && <0.10,- keiro-core ^>=0.22.0.0,- kiroku-store ^>=0.12.0.0,+ keiro-core ^>=0.23.0.0,+ kiroku-store ^>=0.13.0.1, lens >=5.2 && <5.4, mmzk-typeid >=0.7 && <0.8, random >=1.2.1 && <1.4,@@ -247,9 +247,9 @@ keiki, keiki-codec-json, keiro,- keiro-migrations ^>=0.22.0.0,- keiro-test-support ^>=0.22.0.0,- kiroku-store ^>=0.12.0.0,+ keiro-migrations ^>=0.23.0.0,+ keiro-test-support ^>=0.23.0.0,+ kiroku-store ^>=0.13.0.1, process >=1.6 && <1.7, shibuya-core ^>=0.12.0.0, stm >=2.5 && <2.6,@@ -284,11 +284,11 @@ keiki >=0.9 && <0.10, keiki-codec-json >=0.9 && <0.10, keiro,- keiro-core ^>=0.22.0.0,- keiro-test-support ^>=0.22.0.0,- kiroku-store ^>=0.12.0.0,+ keiro-core ^>=0.23.0.0,+ keiro-test-support ^>=0.23.0.0,+ kiroku-store ^>=0.13.0.1, shibuya-core ^>=0.12.0.0,- shibuya-kiroku-adapter ^>=0.7.0.0,+ shibuya-kiroku-adapter ^>=0.7.0.1, stm >=2.5 && <2.6, streamly-core >=0.3 && <0.4, text >=2.1 && <2.2,@@ -334,9 +334,9 @@ hs-opentelemetry-sdk >=1.0 && <1.1, keiki >=0.9 && <0.10, keiro,- keiro-core ^>=0.22.0.0,- keiro-test-support ^>=0.22.0.0,- kiroku-store ^>=0.12.0.0,+ keiro-core ^>=0.23.0.0,+ keiro-test-support ^>=0.23.0.0,+ kiroku-store ^>=0.13.0.1, process >=1.6 && <1.7, shibuya-core ^>=0.12.0.0, streamly-core >=0.3 && <0.4,
src/Keiro/ProcessManager.hs view
@@ -361,6 +361,7 @@ EmptyAppendBatch {} -> False StreamNotFound {} -> False HistoryRetentionActive {} -> True+ CompactionConcurrentMutation {} -> True ReservedStreamName {} -> False StreamNameTooLong {} -> False DuplicateEvent {} -> False
test/Main.hs view
@@ -364,6 +364,7 @@ workflowStateCodec, ) import Kiroku.Store qualified as Store+import Kiroku.Store.Compaction.Types (mkCompactionDigest) import Kiroku.Store.Effect (Store) import Kiroku.Store.SQL qualified as KirokuSQL import Kiroku.Store.Subscription.Stream (AckItem (..), subscriptionAckStream)@@ -5987,6 +5988,11 @@ ackForCommandError (RetryDelay 5) (StoreFailed (Store.TransientTransactionFailure "40P01" "deadlock detected"))+ `shouldBe` AckRetry (RetryDelay 5)+ digest <- maybe (fail "invalid test compaction digest") pure (mkCompactionDigest (ByteString.replicate 32 0))+ ackForCommandError+ (RetryDelay 5)+ (StoreFailed (Store.CompactionConcurrentMutation digest "concurrent reference")) `shouldBe` AckRetry (RetryDelay 5) ackForCommandError (RetryDelay 5) (StoreFailed (Store.EventDecodeFailed (Store.DecodeFailure (EventId sampleUuid) "bad payload"))) `shouldSatisfy` \case