11 Commits
Author SHA1 Message Date
Rene Nochebuena d5ddfbcbe7 release: v1.7.0 (coordinated lockstep bump) 2026-08-18 17:56:33 -06:00
Rene Nochebuena 269e6c57fc release: v1.6.0 (coordinated lockstep bump) 2026-08-13 23:11:56 -06:00
Rene Nochebuena d1b73c5505 chore(db-postgres): framework version alignment to v1.5.0 2026-08-12 17:56:06 -06:00
Rene Nochebuena ffc0eb085b chore(db-postgres): dependency refresh; framework version alignment to v1.4.0 2026-08-12 15:28:45 -06:00
Rene Nochebuena 6b9794f683 chore(db-postgres): framework version alignment to v1.3.0 2026-08-08 10:48:40 -06:00
Rene Nochebuena 54f9c74562 chore(db-postgres): framework version alignment to v1.2.0 2026-08-08 02:25:07 -06:00
Rene Nochebuena 1bd1ab695c chore(db-postgres): framework version alignment to v1.1.3 2026-08-08 01:26:41 -06:00
Rene Nochebuena c333653655 chore(db-postgres): framework version alignment to v1.1.2 2026-08-08 00:43:35 -06:00
Rene Nochebuena 274bcce69f docs(db-postgres): fix wiring doc examples; align to v1.1.1 2026-08-07 23:32:34 -06:00
Rene Nochebuena 64ebf76f31 docs(db-postgres): fix fictional launcher.Register/health.Register in doc examples (#2)
The package-doc examples showed a fictional launcher.Register / health.Register
API (and launcher.Append as a package func). Corrected to the real wiring:
lc.Append + web/health.NewHandler(...).ServeHTTP.

Documentation-only. No code, API, or dependency changes; version stays v1.1.0
(the v1.1.0 tag is moved to include this fix). Verified by compiling the
corrected pattern against the real API.

Reviewed-on: #2
Co-authored-by: Rene Nochebuena Guerrero <rene@nochebuena.dev>
Co-committed-by: Rene Nochebuena Guerrero <rene@nochebuena.dev>
2026-08-07 22:21:06 -06:00
Rene Nochebuena fe3e0227d5 chore(db-postgres): bump einherjar deps to v1.1.0 (framework version alignment) (#1)
Patch of the coordinated framework release: einherjar modules move to v1.1.0
in lockstep, so db-postgres is bumped alongside the rest.

- go.mod: contracts, core -> v1.1.0 (via go get + go mod tidy)

No code or API changes. ModuleVersion() reports v1.1.0 automatically from
build info once tagged. Badge bumped to v1.1.0.

Reviewed-on: #1
Co-authored-by: Rene Nochebuena Guerrero <rene@nochebuena.dev>
Co-committed-by: Rene Nochebuena Guerrero <rene@nochebuena.dev>
2026-08-07 19:11:29 -06:00
5 changed files with 122 additions and 20 deletions
+97
View File
@@ -0,0 +1,97 @@
# Changelog — einherjar/db-postgres
All notable changes to this module are documented here.
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
This module adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
## [1.7.0] — 2026-08-14
Minor — coordinated framework release (lockstep versioning). No changes to this module's own API.
### Changed
- Bumped einherjar dependencies to v1.7.0. The behavioural changes in this release are in `spa-server`
(per-file Cache-Control, a navigation-scoped SPA fallback, nosniff, and a non-root image).
## [1.6.0] — 2026-08-13
Minor — coordinated framework release (lockstep versioning). No changes to this module's own API.
### Changed
- Bumped einherjar dependencies to v1.6.0. The framework-wide change in this release is
`web`'s new `httputil.Bind` / `httputil.BindEmpty` request-binding adapters.
## [1.5.0] — 2026-08-09
Minor — coordinated framework version alignment. No code or API changes in this module.
### Changed
- Bumped `contracts`, `core` to v1.5.0.
## [1.4.0] — 2026-08-09
Minor — coordinated framework release: dependency refresh + lockstep version alignment.
### Changed
- Refreshed dependencies to their latest minor/patch where available.
- Bumped `contracts`, `core` to v1.4.0.
## [1.3.0] — 2026-08-08
Minor — coordinated framework version alignment. No code or API changes in this module.
### Changed
- Bumped `contracts`, `core` to v1.3.0.
## [1.2.0] — 2026-08-08
Minor — coordinated framework version alignment. No code or API changes in this module.
### Changed
- Bumped `contracts`, `core` to v1.2.0.
## [1.1.3] — 2026-08-08
Patch — coordinated framework version alignment.
### Changed
- Bumped einherjar dependencies (\`contracts\`, \`core\`) to v1.1.3. No code or API changes.## [1.1.2] — 2026-08-08
Patch — coordinated framework version alignment.
### Changed
- Bumped einherjar dependencies (`contracts`, `core`) to v1.1.2. No code or API changes.
## [1.1.1] — 2026-08-07
Patch — corrected package-doc wiring examples plus framework version alignment.
### Fixed
- Doc examples used a fictional `launcher.Register` / `health.Register` API; corrected to
`lc.Append` + `web/health.NewHandler(...).ServeHTTP`.
### Changed
- Bumped einherjar dependencies (`contracts`, `core`) to v1.1.1.
## [1.1.0] — 2026-08-07
Patch — coordinated framework version alignment.
### Changed
- Bumped einherjar dependencies (`contracts`, `core`) to v1.1.0.
## [1.0.0] — 2026-05-28
Initial release. See the README for the full API and the `v1.0.0` git tag for the source.
+4 -3
View File
@@ -1,6 +1,6 @@
# einherjar/db-postgres # einherjar/db-postgres
[![version](https://img.shields.io/badge/version-v1.0.0-5C4EE5?style=flat-square)](https://code.nochebuena.dev/einherjar/db-postgres) [![version](https://img.shields.io/badge/version-v1.7.0-5C4EE5?style=flat-square)](https://code.nochebuena.dev/einherjar/db-postgres)
[![license](https://img.shields.io/badge/license-AGPL--3.0-22863A?style=flat-square)](LICENSE) [![license](https://img.shields.io/badge/license-AGPL--3.0-22863A?style=flat-square)](LICENSE)
[![go](https://img.shields.io/badge/Go-1.26+-00ADD8?style=flat-square&logo=go&logoColor=white)](https://go.dev) [![go](https://img.shields.io/badge/Go-1.26+-00ADD8?style=flat-square&logo=go&logoColor=white)](https://go.dev)
[![health](https://img.shields.io/badge/health-critical-D73A49?style=flat-square)]() [![health](https://img.shields.io/badge/health-critical-D73A49?style=flat-square)]()
@@ -19,8 +19,9 @@
import dbpg "code.nochebuena.dev/einherjar/db-postgres" import dbpg "code.nochebuena.dev/einherjar/db-postgres"
db := dbpg.New(logger, dbpg.DefaultConfig()) db := dbpg.New(logger, dbpg.DefaultConfig())
launcher.Append(db) // OnInit opens pool; OnStop closes it lc.Append(db) // OnInit opens pool; OnStop closes it
health.Register(db) // PING health check; LevelCritical // db is observability.Checkable (PING health check, LevelCritical):
srv.Get("/health", health.NewHandler(logger, db).ServeHTTP)
``` ```
### Querying ### Querying
+6 -2
View File
@@ -13,8 +13,12 @@
// # Lifecycle Registration // # Lifecycle Registration
// //
// db := postgres.New(logger, cfg) // db := postgres.New(logger, cfg)
// launcher.Register(db) // lc.Append(db) // lifecycle: OnInit → OnStart → OnStop
// health.Register(db) //
// db satisfies [observability.Checkable], so it can back a health endpoint via
// web/health.NewHandler:
//
// srv.Get("/health", health.NewHandler(logger, db).ServeHTTP)
// //
// # Querying // # Querying
// //
+5 -5
View File
@@ -3,16 +3,16 @@ module code.nochebuena.dev/einherjar/db-postgres
go 1.26 go 1.26
require ( require (
code.nochebuena.dev/einherjar/contracts v1.0.0 code.nochebuena.dev/einherjar/contracts v1.7.0
code.nochebuena.dev/einherjar/core v1.0.0 code.nochebuena.dev/einherjar/core v1.7.0
github.com/jackc/pgerrcode v0.0.0-20250907135507-afb5586c32a6 github.com/jackc/pgerrcode v0.0.0-20250907135507-afb5586c32a6
github.com/jackc/pgx/v5 v5.8.0 github.com/jackc/pgx/v5 v5.10.0
) )
require ( require (
github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
github.com/jackc/puddle/v2 v2.2.2 // indirect github.com/jackc/puddle/v2 v2.2.2 // indirect
golang.org/x/sync v0.19.0 // indirect golang.org/x/sync v0.22.0 // indirect
golang.org/x/text v0.32.0 // indirect golang.org/x/text v0.41.0 // indirect
) )
+10 -10
View File
@@ -1,7 +1,7 @@
code.nochebuena.dev/einherjar/contracts v1.0.0 h1:hRudEtOIqU7vwedYLsCh8+9q5dCnKb61qX+zibqImRU= code.nochebuena.dev/einherjar/contracts v1.7.0 h1:yhbtmvE8u6KXcuG95p888+4tDIiTXDf5z/siKrjGbrc=
code.nochebuena.dev/einherjar/contracts v1.0.0/go.mod h1:ccltUtrFb5+MEJdkx2VVEUL+xC5pupVlVVsMM8AlCWI= code.nochebuena.dev/einherjar/contracts v1.7.0/go.mod h1:ccltUtrFb5+MEJdkx2VVEUL+xC5pupVlVVsMM8AlCWI=
code.nochebuena.dev/einherjar/core v1.0.0 h1:AueZgfjp3+rQmDKOxmJQ945TTh+sqC1l/xJdTOdbr9w= code.nochebuena.dev/einherjar/core v1.7.0 h1:gdjNEgO8E/ALppyBldj27iKQQlWbL/OWV6asdxWLXqU=
code.nochebuena.dev/einherjar/core v1.0.0/go.mod h1:0IywfRnJXX9xXQO6iPVaq2QDlXbbpXrB8A4T7gO8nE4= code.nochebuena.dev/einherjar/core v1.7.0/go.mod h1:IvSCG7XL4gNyoylwlClKj3jepWBLAKb2QKAgumTRkug=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -11,8 +11,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
github.com/jackc/pgx/v5 v5.8.0 h1:TYPDoleBBme0xGSAX3/+NujXXtpZn9HBONkQC7IEZSo= github.com/jackc/pgx/v5 v5.10.0 h1:VhSvgU2jSli8o3AqIEOTJr7rZwAEUVo4E4XhR94Zfr0=
github.com/jackc/pgx/v5 v5.8.0/go.mod h1:QVeDInX2m9VyzvNeiCJVjCkNFqzsNb43204HshNSZKw= github.com/jackc/pgx/v5 v5.10.0/go.mod h1:mal1tBGAFfLHvZzaYh77YS/eC6IX9OWbRV1QIIM0Jn4=
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -22,10 +22,10 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek=
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8=
golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=