shikumi-cache-postgres 0.1.3.0 → 0.1.3.1
raw patch · 3 files changed
+55/−40 lines, 3 filesdep ~baikaidep ~effectfuldep ~ephemeral-pgPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: baikai, effectful, ephemeral-pg, hasql, shikumi-cache, shikumi-cache-postgres
API changes (from Hackage documentation)
Files
- CHANGELOG.md +6/−0
- shikumi-cache-postgres.cabal +48/−39
- src/Shikumi/Cache/Backend/Postgres.hs +1/−1
CHANGELOG.md view
@@ -2,6 +2,12 @@ ## Unreleased +## 0.1.3.1 — 2026-10-05++- Tighten the `hasql` bound to `>=1.10 && <1.11`, matching the rest of the cohort (`mori://shinzui/keiro`, `mori://shinzui/kiroku`, `mori://shinzui/ephemeral-pg`). The old `>=1.9` floor was wrong: the backend already uses the 1.10-only API (`preparable`/`unpreparable`, `Hasql.Connection.Settings`). The test suite now bounds `mori://shinzui/ephemeral-pg/packages/ephemeral-pg` at `^>=0.3.1.0`. Bounds only; no source changed.++- Move the dependency on `mori://shinzui/baikai/packages/baikai` to `>=0.7.1.0 && <0.8` and widen the `effectful` bound to `>=2.6 && <2.8`, so both effectful 2.6 and 2.7 are supported (effectful 2.7 needs `baikai-effectful` 0.4.0.2, effectful 2.6 needs 0.4.0.1). Bounds only; no source changed.+ ## 0.1.3.0 — 2026-09-08 - Raise the internal `shikumi-cache` bound to `^>=0.2.0.0` for the breaking cache release.
shikumi-cache-postgres.cabal view
@@ -1,8 +1,8 @@-cabal-version: 3.4-name: shikumi-cache-postgres-version: 0.1.3.0-synopsis: Postgres-backed shikumi cache (EP-6)-category: AI+cabal-version: 3.4+name: shikumi-cache-postgres+version: 0.1.3.1+synopsis: Postgres-backed shikumi cache (EP-6)+category: AI description: A PostgreSQL backend for shikumi's @Cache@ effect (EP-6), in a separate package so the @hasql@ client (and libpq) is only pulled in when used. Entries@@ -12,20 +12,26 @@ @Shikumi.Cache.ResponseJSON@). The test uses @ephemeral-pg@ to spin up a throwaway server, so it needs no external database. -license: BSD-3-Clause-author: Nadeem Bitar-maintainer: nadeem@gmail.com-build-type: Simple+license: BSD-3-Clause+author: Nadeem Bitar+maintainer: nadeem@gmail.com+build-type: Simple extra-doc-files: CHANGELOG.md common common-options ghc-options:- -Wall -Wcompat -Widentities -Wincomplete-uni-patterns- -Wincomplete-record-updates -Wredundant-constraints- -fhide-source-paths -Wmissing-export-lists -Wpartial-fields+ -Wall+ -Wcompat+ -Widentities+ -Wincomplete-uni-patterns+ -Wincomplete-record-updates+ -Wredundant-constraints+ -fhide-source-paths+ -Wmissing-export-lists+ -Wpartial-fields -Wmissing-deriving-strategies - default-language: GHC2024+ default-language: GHC2024 default-extensions: DeriveAnyClass DuplicateRecordFields@@ -34,35 +40,38 @@ OverloadedStrings library- import: common-options- hs-source-dirs: src+ import: common-options+ hs-source-dirs: src exposed-modules: Shikumi.Cache.Backend.Postgres build-depends:- , aeson >=2.2 && <2.3- , base >=4.20 && <5- , effectful >=2.5 && <2.7- , hasql >=1.9 && <1.11- , shikumi-cache ^>=0.2.0.0- , text ^>=2.1+ aeson >=2.2 && <2.3,+ base >=4.20 && <5,+ effectful >=2.6 && <2.8,+ hasql >=1.10 && <1.11,+ shikumi-cache ^>=0.2.0.1,+ text ^>=2.1, test-suite shikumi-cache-postgres-test- import: common-options- type: exitcode-stdio-1.0+ import: common-options+ type: exitcode-stdio-1.0 hs-source-dirs: test- main-is: Main.hs- ghc-options: -threaded -with-rtsopts=-N+ main-is: Main.hs+ ghc-options:+ -threaded+ -with-rtsopts=-N+ build-depends:- , baikai >=0.7.0.0 && <0.8- , base- , effectful- , ephemeral-pg- , generic-lens- , lens- , shikumi ^>=0.4.0.0- , shikumi-cache ^>=0.2.0.0- , shikumi-cache-postgres ^>=0.1.3.0- , tasty- , tasty-hunit- , text- , time- , vector+ baikai >=0.7.1.0 && <0.8,+ base,+ effectful,+ ephemeral-pg ^>=0.3.1.0,+ generic-lens,+ lens,+ shikumi ^>=0.4.0.0,+ shikumi-cache ^>=0.2.0.1,+ shikumi-cache-postgres ^>=0.1.3.1,+ tasty,+ tasty-hunit,+ text,+ time,+ vector,
src/Shikumi/Cache/Backend/Postgres.hs view
@@ -5,7 +5,7 @@ -- server, but it persists entries in a @jsonb@ column rather than an evicting -- key-value store, so entries live until explicitly removed or the policy layer -- treats them as expired via 'Shikumi.Cache.CacheConfig'. The value column holds--- the JSON of a 'CachedResponse' (the baikai 'Baikai.Response.Response'+-- the JSON of a t'Shikumi.Cache.Types.CachedResponse' (the baikai 'Baikai.Response.Response' -- round-trip is @shikumi-cache@'s "Shikumi.Cache.ResponseJSON"). Access goes -- through @hasql@; the single 'Connection' is guarded by an 'MVar' so the -- 'Cache' effect's lookups and stores are serialized.