packages feed

keiro-pgmq 0.11.0.0 → 0.12.0.0

raw patch · 5 files changed

+68/−23 lines, 5 filesdep ~keiro-coredep ~pgmq-configdep ~pgmq-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: keiro-core, pgmq-config, pgmq-core, pgmq-effectful, pgmq-hasql, pgmq-migration, shibuya-core, shibuya-pgmq-adapter

API changes (from Hackage documentation)

+ Keiro.PGMQ.Dlq: archiveDlqEntryById :: forall (es :: [Effect]) p. (Pgmq :> es, IOE :> es) => Job p -> Int64 -> Eff es Bool

Files

CHANGELOG.md view
@@ -4,6 +4,21 @@ [Keep a Changelog](https://keepachangelog.com/), and the package follows the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## Unreleased++## 0.12.0.0 — 2026-08-14++### Breaking Changes++- Requires `keiro-core ^>=0.12.0.0`, the PGMQ package family+  `>=0.5 && <0.6`, `shibuya-core ^>=0.9.0.0`, and+  `shibuya-pgmq-adapter ^>=0.14.0.0`, replacing the 0.11 release's+  Keiro-core 0.11, PGMQ 0.4, Shibuya 0.8, and adapter 0.12 bounds.++### Other Changes++- The source distribution now includes the BSD-3-Clause license file.+ ## [0.11.0.0] - 2026-08-05  No user-facing changes beyond the lockstep `keiro-core ^>=0.11.0.0` bound.
+ LICENSE view
@@ -0,0 +1,28 @@+BSD 3-Clause License++Copyright (c) 2026, Nadeem Bitar++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright notice, this+   list of conditions and the following disclaimer.++2. Redistributions in binary form must reproduce the above copyright notice,+   this list of conditions and the following disclaimer in the documentation+   and/or other materials provided with the distribution.++3. Neither the name of the copyright holder nor the names of its contributors+   may be used to endorse or promote products derived from this software without+   specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT INCLUDING+NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keiro-pgmq.cabal view
@@ -1,6 +1,6 @@ cabal-version:   3.0 name:            keiro-pgmq-version:         0.11.0.0+version:         0.12.0.0 synopsis:        PostgreSQL job-queue (PGMQ) integration for Keiro description:   A typed background-job queue for Keiro applications on top of PGMQ (the@@ -10,6 +10,7 @@   @p -> Eff es JobOutcome@.  license:         BSD-3-Clause+license-file:    LICENSE author:          Nadeem Bitar maintainer:      nadeem@gmail.com copyright:       2026 Nadeem Bitar@@ -59,13 +60,13 @@     , hasql                 >=1.10      && <1.11     , hasql-pool            >=1.2       && <1.5     , hs-opentelemetry-api  >=1.0       && <1.1-    , keiro-core            ^>=0.11.0.0-    , pgmq-config           >=0.4       && <0.5-    , pgmq-core             >=0.4       && <0.5-    , pgmq-effectful        >=0.4       && <0.5-    , pgmq-hasql            >=0.4       && <0.5-    , shibuya-core          >=0.8.0.1   && <0.9-    , shibuya-pgmq-adapter  >=0.12      && <0.13+    , keiro-core            ^>=0.12.0.0+    , pgmq-config           >=0.5       && <0.6+    , pgmq-core             >=0.5       && <0.6+    , pgmq-effectful        >=0.5       && <0.6+    , pgmq-hasql            >=0.5       && <0.6+    , shibuya-core          ^>=0.9.0.0+    , shibuya-pgmq-adapter  ^>=0.14.0.0     , streamly-core         >=0.3       && <0.4     , text                  >=2.1       && <2.2     , time                  >=1.12      && <1.15@@ -87,13 +88,13 @@     , hs-opentelemetry-propagator-w3c      >=1.0       && <1.1     , hs-opentelemetry-sdk                 >=1.0       && <1.1     , hspec                                >=2.11-    , keiro-core                           ^>=0.11.0.0+    , keiro-core                           ^>=0.12.0.0     , keiro-pgmq     , keiro-test-support-    , pgmq-config                          >=0.4       && <0.5-    , pgmq-core                            >=0.4       && <0.5-    , pgmq-effectful                       >=0.4       && <0.5-    , pgmq-migration                       >=0.4       && <0.5-    , shibuya-core                         >=0.8.0.1   && <0.9-    , shibuya-pgmq-adapter                 >=0.12      && <0.13+    , pgmq-config                          >=0.5       && <0.6+    , pgmq-core                            >=0.5       && <0.6+    , pgmq-effectful                       >=0.5       && <0.6+    , pgmq-migration                       >=0.5       && <0.6+    , shibuya-core                         ^>=0.9.0.0+    , shibuya-pgmq-adapter                 ^>=0.14.0.0     , text                                 >=2.1       && <2.2
src/Keiro/PGMQ/Dlq.hs view
@@ -30,6 +30,7 @@     purgeDlq,     archiveDlq,     archiveDlqEntry,+    archiveDlqEntryById,   ) where @@ -45,7 +46,7 @@ import "pgmq-effectful" Pgmq.Effectful   ( Message (..),     MessageBody (..),-    MessageId,+    MessageId (..),     MessageQuery (..),     Pgmq,     ReadMessage (..),@@ -239,3 +240,8 @@       { queueName = job.jobQueue.dlqName,         messageId = msgId       }++-- | Numeric-id convenience wrapper for operator surfaces that should not need+-- a direct dependency on the lower-level @pgmq-effectful@ package.+archiveDlqEntryById :: (Pgmq :> es, IOE :> es) => Job p -> Int64 -> Eff es Bool+archiveDlqEntryById job = archiveDlqEntry job . MessageId
src/Keiro/PGMQ/Job.hs view
@@ -174,6 +174,7 @@     DeadLetterReason (..),     HaltReason (..),     RetryDelay (..),+    renderDeadLetterReason,   ) import "shibuya-core" Shibuya.Core.Ingested qualified as Shibuya import "shibuya-core" Shibuya.Core.Lease (Lease (..))@@ -821,7 +822,7 @@   setStatus traceSpan $ case decision of     AckOk -> Ok     AckRetry _ -> Ok-    AckDeadLetter reason -> Error (deadLetterReasonText reason)+    AckDeadLetter reason -> Error (renderDeadLetterReason reason)     AckHalt reason -> Error (haltReasonText reason)  -- | The @shibuya.ack.decision@ value for a decision, matching shibuya's runner.@@ -830,12 +831,6 @@ ackDecisionText (AckRetry _) = "ack_retry" ackDecisionText (AckDeadLetter _) = "ack_dead_letter" ackDecisionText (AckHalt _) = "ack_halt"---- | The @ERROR@ status description for a dead-letter, matching shibuya's runner.-deadLetterReasonText :: DeadLetterReason -> Text-deadLetterReasonText (PoisonPill t) = "poison_pill: " <> t-deadLetterReasonText (InvalidPayload t) = "invalid_payload: " <> t-deadLetterReasonText MaxRetriesExceeded = "max_retries_exceeded"  -- | The @ERROR@ status description for a halt, matching shibuya's runner. haltReasonText :: HaltReason -> Text