From d60c7328cfa9b82f3af722156ed79b0cb8c56618 Mon Sep 17 00:00:00 2001 From: Teo Camarasu Date: Wed, 16 Sep 2026 16:22:11 +0100 Subject: [PATCH] Prepare 1.8.0.0 --- ..._151415_teofilcamarasu_support_ghc_9_12.md | 3 -- ...20251030_125129_shane.obrien_OnConflict.md | 9 ---- .../20260322_223524_shane.obrien_range.md | 3 -- ...260616_150020_cgeorgii_support_ghc_9_14.md | 3 -- changelog.d/20260820_000000_notelem.md | 11 ----- rel8-internal/rel8-internal.cabal | 2 +- rel8/Changelog.md | 41 +++++++++++++++++++ rel8/rel8.cabal | 6 +-- 8 files changed, 45 insertions(+), 33 deletions(-) delete mode 100644 changelog.d/20241219_151415_teofilcamarasu_support_ghc_9_12.md delete mode 100644 changelog.d/20251030_125129_shane.obrien_OnConflict.md delete mode 100644 changelog.d/20260322_223524_shane.obrien_range.md delete mode 100644 changelog.d/20260616_150020_cgeorgii_support_ghc_9_14.md delete mode 100644 changelog.d/20260820_000000_notelem.md diff --git a/changelog.d/20241219_151415_teofilcamarasu_support_ghc_9_12.md b/changelog.d/20241219_151415_teofilcamarasu_support_ghc_9_12.md deleted file mode 100644 index 52add6be..00000000 --- a/changelog.d/20241219_151415_teofilcamarasu_support_ghc_9_12.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added - -- Support GHC-9.12 diff --git a/changelog.d/20251030_125129_shane.obrien_OnConflict.md b/changelog.d/20251030_125129_shane.obrien_OnConflict.md deleted file mode 100644 index eaca44d1..00000000 --- a/changelog.d/20251030_125129_shane.obrien_OnConflict.md +++ /dev/null @@ -1,9 +0,0 @@ -### Added - -- Added new `Conflict` and `Index` types. `Conflict` represents a [`conflict_target`](https://www.postgresql.org/docs/current/sql-insert.html#SQL-ON-CONFLICT) in an `ON CONFLICT`. It can be either a named constraint (`ON CONSTRAINT`) or a an `Index`. -- Added `Index`. `Index` is a description of a unique index which PostgreSQL can use for *unique index inference*. This is an alternative to specifying an explicit named constraint in a `conflict_target`. - -### Changed - -- The `Upsert` type was changed. Previously it had the columns (`index`, `predicate`) of what is now the `Index` type baked into its record. It now instead has a single `conflict` column (of type `Conflict`, which can be either an `Index` or a named constraint). -- The `DoNothing` constructor of `OnConflict` was changed to also take an optional `Conflict` value. Even though `ON CONFLICT DO NOTHING` does not generally require a `conflict_target`, there are cases where it can be necessary, e.g., if you have table that has both deferrable and non-deferrable constraints. diff --git a/changelog.d/20260322_223524_shane.obrien_range.md b/changelog.d/20260322_223524_shane.obrien_range.md deleted file mode 100644 index 050bbfd2..00000000 --- a/changelog.d/20260322_223524_shane.obrien_range.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added - -- Added preliminary support for PostgreSQL ranges. diff --git a/changelog.d/20260616_150020_cgeorgii_support_ghc_9_14.md b/changelog.d/20260616_150020_cgeorgii_support_ghc_9_14.md deleted file mode 100644 index a42d0134..00000000 --- a/changelog.d/20260616_150020_cgeorgii_support_ghc_9_14.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added - -- Support GHC-9.14 and `semialign >= 1.4`. diff --git a/changelog.d/20260820_000000_notelem.md b/changelog.d/20260820_000000_notelem.md deleted file mode 100644 index 50b2f07f..00000000 --- a/changelog.d/20260820_000000_notelem.md +++ /dev/null @@ -1,11 +0,0 @@ -### Added - -- Added `notElem` and `notElem1` to `Rel8.Array`. - -### Fixed - -- `elem` and `elem1` now use `IS NOT DISTINCT FROM` semantics (matching `(==.)`) when the element type is nullable, so `null` is found in an array containing `null`. Previously they were implemented with the array containment operator `<@`, which never matches `null`. - -### Changed - -- `rel8` now requires at least version `0.10.8.0` of `opaleye` diff --git a/rel8-internal/rel8-internal.cabal b/rel8-internal/rel8-internal.cabal index 33d7bd5e..d5249d06 100644 --- a/rel8-internal/rel8-internal.cabal +++ b/rel8-internal/rel8-internal.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: rel8-internal -version: 1.7.0.0 +version: 1.8.0.0 synopsis: Internals of rel8 license: BSD-3-Clause license-file: LICENSE diff --git a/rel8/Changelog.md b/rel8/Changelog.md index 1d24bbec..6b147fbd 100644 --- a/rel8/Changelog.md +++ b/rel8/Changelog.md @@ -1,4 +1,45 @@ + +# 1.8.0.0 — 2026-09-16 + +## Added + +- Added `Rel8.TH.deriveRel8able` and `Rel8.TH.deriveRel8ables` for deriving `Rel8able` instances using `TemplateHaskell`. + This can be significantly faster than using `Generics`. In testing, we have seen 80% reductions in build time! + +- Expose all `rel8` internal modules from the `rel8-internal` package. + +- Added new `Conflict` and `Index` types. `Conflict` represents a [`conflict_target`](https://www.postgresql.org/docs/current/sql-insert.html#SQL-ON-CONFLICT) in an `ON CONFLICT`. It can be either a named constraint (`ON CONSTRAINT`) or a an `Index`. + +- Added `Index`. `Index` is a description of a unique index which PostgreSQL can use for *unique index inference*. This is an alternative to specifying an explicit named constraint in a `conflict_target`. + +- Add `notElem` and `notElem1` to `Rel8.Array` + +- Added preliminary support for PostgreSQL ranges. + +- Support GHC-9.14 and `semialign >= 1.4`. + +- Added `notElem` and `notElem1` to `Rel8.Array`. + +- Added `DBType Aeson.Object` instance. + +- Bumped a variety of bounds. + +## Changed + +- The `Upsert` type was changed. Previously it had the columns (`index`, `predicate`) of what is now the `Index` type baked into its record. It now instead has a single `conflict` column (of type `Conflict`, which can be either an `Index` or a named constraint). +- The `DoNothing` constructor of `OnConflict` was changed to also take an optional `Conflict` value. Even though `ON CONFLICT DO NOTHING` does not generally require a `conflict_target`, there are cases where it can be necessary, e.g., if you have table that has both deferrable and non-deferrable constraints. + +- `rel8` now requires at least version `0.10.8.0` of `opaleye` + +## Fixed + +- `elem` and `elem1` now use `IS NOT DISTINCT FROM` semantics (matching `(==.)`) when the element type is nullable, so `null` is found in an array containing `null`. Previously they were implemented with the array containment operator `<@`, which never matches `null`. + +- Fixed some issues around the truncation of long column names. + +- Improved documentation. + # 1.7.0.0 — 2025-07-31 diff --git a/rel8/rel8.cabal b/rel8/rel8.cabal index 6b460a14..28237ddc 100644 --- a/rel8/rel8.cabal +++ b/rel8/rel8.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: rel8 -version: 1.7.0.0 +version: 1.8.0.0 synopsis: Hey! Hey! Can u rel8? license: BSD-3-Clause license-file: LICENSE @@ -18,7 +18,7 @@ source-repository head library build-depends: - rel8-internal ==1.7.0.0 + rel8-internal ==1.8.0.0 , base >= 4.16 && < 4.23 , bifunctors , bytestring @@ -71,7 +71,7 @@ test-suite tests , containers , hasql , hasql-transaction - , hedgehog >= 1.0 && < 1.6 + , hedgehog >= 1.0 && < 1.8 , mmorph , iproute , rel8