packages feed

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 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"