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 +15/−0
- LICENSE +28/−0
- keiro-pgmq.cabal +16/−15
- src/Keiro/PGMQ/Dlq.hs +7/−1
- src/Keiro/PGMQ/Job.hs +2/−7
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