kiroku-store 0.8.0.0 → 0.8.0.1
raw patch · 5 files changed
+90/−72 lines, 5 filesdep ~ephemeral-pgPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ephemeral-pg
API changes (from Hackage documentation)
Files
- CHANGELOG.md +10/−0
- bench/Explain.hs +6/−3
- bench/Main.hs +3/−2
- bench/ShibuyaOverhead.hs +3/−1
- kiroku-store.cabal +68/−66
CHANGELOG.md view
@@ -1,5 +1,15 @@ # Changelog +## 0.8.0.1 — 2026-09-18++### Other Changes++* The test-suite and benchmarks now require `ephemeral-pg >=0.3.1 && <0.4`+ (was `>=0.2 && <0.3`). The benchmarks pin ephemeral-pg's temporary root to a+ stable per-user directory, so clusters left behind by killed runs are cleaned+ up on the next start. The library's dependencies, API and runtime behavior+ are unchanged.+ ## 0.8.0.0 — 2026-08-16 ### Breaking Changes
bench/Explain.hs view
@@ -4,7 +4,7 @@ Two modes: - * default — boots a cached ephemeral PostgreSQL via 'Pg.withCached', runs+ * default — boots a cached ephemeral PostgreSQL via 'Pg.withCachedConfig', runs the production @AnyVersion@ CTE under @EXPLAIN (ANALYZE, BUFFERS, TIMING, FORMAT TEXT)@ wrapped in @BEGIN ... ROLLBACK@, prints the result to stdout, then runs the same@@ -46,6 +46,7 @@ import Hasql.Session qualified as Session import Hasql.Statement (Statement, unpreparable) import Kiroku.Store+import Kiroku.Test.Postgres (ephemeralConfig) import System.Directory (createDirectoryIfMissing, doesFileExist, getCurrentDirectory, listDirectory, removePathForcibly) import System.Environment (getArgs) import System.FilePath (takeDirectory, (</>))@@ -262,7 +263,8 @@ createDirectoryIfMissing True dir putStrLn ("=== Output directory: " <> dir <> " ===") putStrLn "=== Booting cached ephemeral PostgreSQL for EXPLAIN ANALYZE ==="- result <- Pg.withCached $ \db -> do+ config <- ephemeralConfig+ result <- Pg.withCachedConfig config Pg.defaultCacheConfig $ \db -> do let settings = defaultConnectionSettings (Pg.connectionString db) withStore settings $ \store -> do paramsText <- mkSampleParams@@ -371,8 +373,9 @@ -- & Discoveries for the empirical evidence. ("log_min_messages", "'log'") ]+ base <- ephemeralConfig let cfg =- PgC.defaultConfig+ base <> PgC.autoExplainConfig 0 <> (mempty :: PgC.Config){PgC.postgresSettings = collectorSettings} result <- Pg.withConfig cfg $ \db -> do
bench/Main.hs view
@@ -26,7 +26,7 @@ import Hasql.Transaction qualified as Tx import Hasql.Transaction.Sessions qualified as TxSessions import Kiroku.Store-import Kiroku.Test.Postgres (migrateTestDatabase, withMigratedTestDatabase, withSharedMigratedPostgres)+import Kiroku.Test.Postgres (ephemeralConfig, migrateTestDatabase, withMigratedTestDatabase, withSharedMigratedPostgres) import Test.Tasty.Bench data RawAppendParams = RawAppendParams@@ -712,7 +712,8 @@ main :: IO () main = do -- Start ephemeral PostgreSQL once for all benchmarks- result <- Pg.withCached $ \db -> do+ config <- ephemeralConfig+ result <- Pg.withCachedConfig config Pg.defaultCacheConfig $ \db -> do migrateTestDatabase (Pg.connectionString db) let settings = defaultConnectionSettings (Pg.connectionString db) withStore settings $ \store -> do
bench/ShibuyaOverhead.hs view
@@ -29,6 +29,7 @@ import EphemeralPg qualified as Pg import Kiroku.Store import Kiroku.Store.Subscription.Stream (subscriptionStream)+import Kiroku.Test.Postgres (ephemeralConfig) import Shibuya.Adapter (Adapter (..)) import Shibuya.App (ProcessorId (..), defaultAppConfig, mkProcessor, runApp, stopApp) import Shibuya.Core.Ack (AckDecision (..))@@ -46,7 +47,8 @@ main :: IO () main = do- result <- Pg.withCached $ \db -> do+ config <- ephemeralConfig+ result <- Pg.withCachedConfig config Pg.defaultCacheConfig $ \db -> do let settings = defaultConnectionSettings (Pg.connectionString db) withStore settings $ \store -> do putStrLn "=== Kiroku Shibuya Adapter Overhead Benchmark ==="
kiroku-store.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: kiroku-store-version: 0.8.0.0+version: 0.8.0.1 synopsis: High-performance PostgreSQL event store description: Kiroku is a PostgreSQL-backed event store for Haskell applications. It@@ -141,33 +141,33 @@ ghc-options: -threaded -rtsopts -with-rtsopts=-N build-depends:- , aeson >=2.1 && <2.3- , async >=2.2 && <2.3- , base >=4.18 && <5- , bytestring >=0.11 && <0.13- , containers >=0.6 && <0.8+ , aeson >=2.1 && <2.3+ , async >=2.2 && <2.3+ , base >=4.18 && <5+ , bytestring >=0.11 && <0.13+ , containers >=0.6 && <0.8 , contravariant-extras >=0.3 , directory- , effectful-core >=2.4 && <2.7- , ephemeral-pg >=0.2 && <0.3- , generic-lens >=2.2 && <2.4- , hasql >=1.10 && <1.11- , hasql-notifications >=0.2 && <0.3- , hasql-pool >=1.2 && <1.5- , hasql-transaction >=1.1 && <1.3- , hedgehog >=1.4 && <1.8- , hspec >=2.10 && <2.12- , hspec-hedgehog >=0.0 && <0.4+ , effectful-core >=2.4 && <2.7+ , ephemeral-pg >=0.3.1 && <0.4+ , generic-lens >=2.2 && <2.4+ , hasql >=1.10 && <1.11+ , hasql-notifications >=0.2 && <0.3+ , hasql-pool >=1.2 && <1.5+ , hasql-transaction >=1.1 && <1.3+ , hedgehog >=1.4 && <1.8+ , hspec >=2.10 && <2.12+ , hspec-hedgehog >=0.0 && <0.4 , kiroku-store , kiroku-test-support- , lens >=5.2 && <5.4- , mmzk-typeid >=0.6 && <0.8- , stm >=2.5 && <2.6- , streamly-core >=0.3 && <0.4- , text >=2.0 && <2.2- , time >=1.12 && <1.15- , uuid >=1.3 && <1.4- , vector >=0.13 && <0.14+ , lens >=5.2 && <5.4+ , mmzk-typeid >=0.6 && <0.8+ , stm >=2.5 && <2.6+ , streamly-core >=0.3 && <0.4+ , text >=2.0 && <2.2+ , time >=1.12 && <1.15+ , uuid >=1.3 && <1.4+ , vector >=0.13 && <0.14 benchmark kiroku-store-bench import: common@@ -178,24 +178,24 @@ -threaded -rtsopts "-with-rtsopts=-N -A32m" -fproc-alignment=64 build-depends:- , aeson >=2.1 && <2.3- , async >=2.2 && <2.3- , base >=4.18 && <5+ , aeson >=2.1 && <2.3+ , async >=2.2 && <2.3+ , base >=4.18 && <5 , deepseq >=1.4- , ephemeral-pg >=0.2 && <0.3- , generic-lens >=2.2 && <2.4- , hasql >=1.10 && <1.11- , hasql-pool >=1.2 && <1.5- , hasql-transaction >=1.1 && <1.3+ , ephemeral-pg >=0.3.1 && <0.4+ , generic-lens >=2.2 && <2.4+ , hasql >=1.10 && <1.11+ , hasql-pool >=1.2 && <1.5+ , hasql-transaction >=1.1 && <1.3 , kiroku-store , kiroku-test-support- , lens >=5.2 && <5.4+ , lens >=5.2 && <5.4 , mmzk-typeid >=0.6 , tasty-bench >=0.4- , text >=2.0 && <2.2- , time >=1.12 && <1.15- , uuid >=1.3 && <1.4- , vector >=0.13 && <0.14+ , text >=2.0 && <2.2+ , time >=1.12 && <1.15+ , uuid >=1.3 && <1.4+ , vector >=0.13 && <0.14 benchmark kiroku-store-bench-workload-gate import: common@@ -227,24 +227,25 @@ hs-source-dirs: bench ghc-options: -threaded -rtsopts "-with-rtsopts=-N -A32m" build-depends:- , aeson >=2.1 && <2.3- , base >=4.18 && <5- , containers >=0.6 && <0.8- , effectful >=2.4 && <2.7- , effectful-core >=2.4 && <2.7- , ephemeral-pg >=0.2 && <0.3- , generic-lens >=2.2 && <2.4+ , aeson >=2.1 && <2.3+ , base >=4.18 && <5+ , containers >=0.6 && <0.8+ , effectful >=2.4 && <2.7+ , effectful-core >=2.4 && <2.7+ , ephemeral-pg >=0.3.1 && <0.4+ , generic-lens >=2.2 && <2.4 , kiroku-store- , lens >=5.2 && <5.4- , shibuya-core >=0.9 && <0.10- , stm >=2.5 && <2.6+ , kiroku-test-support+ , lens >=5.2 && <5.4+ , shibuya-core >=0.9 && <0.10+ , stm >=2.5 && <2.6 , streamly >=0.11- , streamly-core >=0.3 && <0.4- , text >=2.0 && <2.2- , time >=1.12 && <1.15+ , streamly-core >=0.3 && <0.4+ , text >=2.0 && <2.2+ , time >=1.12 && <1.15 , unliftio >=0.2- , unordered-containers >=0.2 && <0.3- , uuid >=1.3 && <1.4+ , unordered-containers >=0.2 && <0.3+ , uuid >=1.3 && <1.4 benchmark kiroku-store-bench-explain import: common@@ -253,18 +254,19 @@ hs-source-dirs: bench ghc-options: -threaded -rtsopts "-with-rtsopts=-N -A32m" build-depends:- , aeson >=2.1 && <2.3- , base >=4.18 && <5- , bytestring >=0.11 && <0.13- , directory >=1.3- , ephemeral-pg >=0.2 && <0.3- , filepath >=1.4- , generic-lens >=2.2 && <2.4- , hasql >=1.10 && <1.11- , hasql-pool >=1.2 && <1.5+ , aeson >=2.1 && <2.3+ , base >=4.18 && <5+ , bytestring >=0.11 && <0.13+ , directory >=1.3+ , ephemeral-pg >=0.3.1 && <0.4+ , filepath >=1.4+ , generic-lens >=2.2 && <2.4+ , hasql >=1.10 && <1.11+ , hasql-pool >=1.2 && <1.5 , kiroku-store- , lens >=5.2 && <5.4- , text >=2.0 && <2.2- , time >=1.12 && <1.15- , uuid >=1.3 && <1.4- , vector >=0.13 && <0.14+ , kiroku-test-support+ , lens >=5.2 && <5.4+ , text >=2.0 && <2.2+ , time >=1.12 && <1.15+ , uuid >=1.3 && <1.4+ , vector >=0.13 && <0.14