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