keiro-pgmq 0.19.0.1 → 0.20.0.0
raw patch · 3 files changed
+43/−13 lines, 3 filesdep ~keiro-coredep ~keiro-test-supportdep ~pgmq-configPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: keiro-core, keiro-test-support, pgmq-config, pgmq-core, pgmq-effectful, pgmq-hasql, shibuya-core
API changes (from Hackage documentation)
Files
- CHANGELOG.md +11/−0
- keiro-pgmq.cabal +13/−13
- test/Main.hs +19/−0
CHANGELOG.md view
@@ -6,6 +6,17 @@ ## [Unreleased] +## 0.20.0.0 — 2026-10-12++### Other Changes++- Require [`shibuya-core`](mori://shinzui/shibuya/packages/shibuya-core)+ `^>=0.10.0.1` and the [pgmq-hs libraries](mori://shinzui/pgmq-hs)+ `>=0.6.1.1 && <0.7`; retain the PGMQ adapter at `^>=0.16.1.0`.+ The tested releases support random 1.3, Effectful 2.7, and pg-migrate 1.2+ with the existing queue APIs and migration SQL. Add integration coverage+ requiring an idle worker to report a clean shutdown within ten seconds.+ ## 0.19.0.1 — 2026-10-05 ### Other Changes
keiro-pgmq.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: keiro-pgmq-version: 0.19.0.1+version: 0.20.0.0 synopsis: PostgreSQL job-queue (PGMQ) integration for Keiro description: A typed background-job queue for Keiro applications on top of PGMQ (the@@ -65,12 +65,12 @@ hasql >=1.10 && <1.11, hasql-pool >=1.2 && <1.5, hs-opentelemetry-api >=1.0 && <1.1,- keiro-core ^>=0.19.0.1,- pgmq-config >=0.6 && <0.7,- pgmq-core >=0.6 && <0.7,- pgmq-effectful >=0.6 && <0.7,- pgmq-hasql >=0.6 && <0.7,- shibuya-core ^>=0.10.0.0,+ keiro-core ^>=0.20.0.0,+ pgmq-config >=0.6.1.1 && <0.7,+ pgmq-core >=0.6.1.1 && <0.7,+ pgmq-effectful >=0.6.1.1 && <0.7,+ pgmq-hasql >=0.6.1.1 && <0.7,+ shibuya-core ^>=0.10.0.1, shibuya-pgmq-adapter ^>=0.16.1.0, streamly-core >=0.3 && <0.4, text >=2.1 && <2.2,@@ -97,13 +97,13 @@ hs-opentelemetry-propagator-w3c >=1.0 && <1.1, hs-opentelemetry-sdk >=1.0 && <1.1, hspec >=2.11,- keiro-core ^>=0.19.0.1,+ keiro-core ^>=0.20.0.0, keiro-pgmq,- keiro-test-support ^>=0.19.0.1,- pgmq-config >=0.6 && <0.7,- pgmq-core >=0.6 && <0.7,- pgmq-effectful >=0.6 && <0.7,+ keiro-test-support ^>=0.20.0.0,+ pgmq-config >=0.6.1.1 && <0.7,+ pgmq-core >=0.6.1.1 && <0.7,+ pgmq-effectful >=0.6.1.1 && <0.7, pgmq-migration >=0.6.1.1 && <0.7,- shibuya-core ^>=0.10.0.0,+ shibuya-core ^>=0.10.0.1, shibuya-pgmq-adapter ^>=0.16.1.0, text >=2.1 && <2.2,
test/Main.hs view
@@ -33,6 +33,7 @@ import Data.Text qualified as Text import Effectful (Eff, IOE, liftIO, (:>)) import Effectful.Error.Static (Error)+import Effectful.Exception qualified as Exception import Effectful.Reader.Static (Reader) import GHC.Generics (Generic) import Hasql.Connection.Settings qualified as Conn@@ -656,6 +657,24 @@ processed `shouldBe` True len <- runDb connStr (queueLen job.jobQueue.physicalName) len `shouldBe` 0++ it "runJobWorkers shuts down an idle worker cleanly" $ \connStr -> do+ let job = mkJob "keiro_pgmq_test.worker_idle_shutdown"+ cleanShutdown <-+ timeout 10_000_000 $+ runDb connStr $ do+ ensureJobQueue job+ Exception.bracket+ ( do+ result <- runJobWorkers IgnoreFailures 16 [jobProcessor job \_payload -> pure Done]+ either (liftIO . fail . ("runJobWorkers failed: " <>) . show) pure result+ )+ stopAppQuickly+ ( \app -> do+ liftIO $ threadDelay 100_000+ stopAppGracefully ShutdownConfig {drainTimeout = 1, totalShutdownTimeout = 5} app+ )+ cleanShutdown `shouldBe` Just True it "runJobWorkers survives a transient database error during polling" $ \_connStr -> pendingWith "needs a deterministic keiro-pgmq-level transient polling fault injector; EP-1 covers this in upstream shibuya and shibuya-pgmq-adapter tests"