Repository navigation
Releases: fergusstrange/embedded-postgres
Release list
v2.0.1
embedded-postgres v2.0.0
Run real PostgreSQL in Go tests with automatic cleanup, or use the CLI with any
test runner. v2 requires Go 1.26+ and has no third-party production Go dependencies.
Start here
- Go tests: add
github.com/fergusstrange/embedded-postgres/v2at this release's
tag, then calleptest.Start(t). PostgreSQL and the matching supervisor download
automatically on first use and are cached for later tests. - Other test runners: install the CLI and run
embedded-postgres exec -- YOUR_TEST_COMMAND.
It suppliesDATABASE_URL, runs your tests and closes PostgreSQL afterward. - Upgrading from v1: follow the migration guide.
This is a major-version migration; use the/v2import path.
The quick start and
CLI guide
cover installation and configuration.
Corrected PostgreSQL distributions
The default and supported distribution pins are PostgreSQL 18.6.1, 17.11.1,
16.15.1 and 15.19.1. These upstream packaging revisions include the Windows and
relocatable-library fixes. New downloads use the corresponding SHA-256 pins;
explicit older distribution versions retain their existing catalog entries.
Windows ARM64 continues to select x64 PostgreSQL under emulation.
See the published-binary regression report
for the platform matrix and verification evidence. The
clean Arch regression
also verifies PostgreSQL 15â18 without libxml2-legacy, including XML, extensions,
offline reuse and persistent restart. The old bundle reproduces the original error.
Included in v2
- PostgreSQL 15â18; Linux, macOS and Windows on AMD64 and ARM64. Windows ARM64 uses
x64 PostgreSQL under emulation. - Isolated test instances, available ports, a shared verified binary cache and
explicit persistent-data storage. Caller-supplied data is never automatically erased. - Independent supervision for cleanup after owner exit or panic, and explicit
Unix UID/GID support for tests running as root. - Restricted Windows child tokens work from PowerShell and detached Node launches
while keeping administrator groups disabled. - Custom binary providers and lifecycle hooks for migrations and extensions.
- CLI foreground, command-scoped and background modes, plus protocol 1 for wrappers.
PostgreSQL's native runtime requirements
still apply. Source checkouts and local module replacements need an explicitly
selected supervisor. The stable release follows downstream migration testing and
verification of the published Go module, CLI and Node wrapper on supported platforms.
v2.0.0
embedded-postgres v2.0.0
Run real PostgreSQL in Go tests with automatic cleanup, or use the CLI with any
test runner. v2 requires Go 1.26+ and has no third-party production Go dependencies.
Start here
- Go tests: add
github.com/fergusstrange/embedded-postgres/v2at this release's
tag, then calleptest.Start(t). PostgreSQL and the matching supervisor download
automatically on first use and are cached for later tests. - Other test runners: install the CLI and run
embedded-postgres exec -- YOUR_TEST_COMMAND.
It suppliesDATABASE_URL, runs your tests and closes PostgreSQL afterward. - Upgrading from v1: follow the migration guide.
This is a major-version migration; use the/v2import path.
The quick start and
CLI guide
cover installation and configuration.
Corrected PostgreSQL distributions
The default and supported distribution pins are PostgreSQL 18.6.1, 17.11.1,
16.15.1 and 15.19.1. These upstream packaging revisions include the Windows and
relocatable-library fixes. New downloads use the corresponding SHA-256 pins;
explicit older distribution versions retain their existing catalog entries.
Windows ARM64 continues to select x64 PostgreSQL under emulation.
See the published-binary regression report
for the platform matrix and verification evidence. The
clean Arch regression
also verifies PostgreSQL 15â18 without libxml2-legacy, including XML, extensions,
offline reuse and persistent restart. The old bundle reproduces the original error.
Included in v2
- PostgreSQL 15â18; Linux, macOS and Windows on AMD64 and ARM64. Windows ARM64 uses
x64 PostgreSQL under emulation. - Isolated test instances, available ports, a shared verified binary cache and
explicit persistent-data storage. Caller-supplied data is never automatically erased. - Independent supervision for cleanup after owner exit or panic, and explicit
Unix UID/GID support for tests running as root. - Restricted Windows child tokens work from PowerShell and detached Node launches
while keeping administrator groups disabled. - Custom binary providers and lifecycle hooks for migrations and extensions.
- CLI foreground, command-scoped and background modes, plus protocol 1 for wrappers.
PostgreSQL's native runtime requirements
still apply. Source checkouts and local module replacements need an explicitly
selected supervisor. The stable release follows downstream migration testing and
verification of the published Go module, CLI and Node wrapper on supported platforms.
v2.0.0-alpha.5
embedded-postgres v2 alpha
Run real PostgreSQL in Go tests with automatic cleanup, or use the CLI with any
test runner. v2 requires Go 1.26+ and has no third-party production Go dependencies.
Start here
- Go tests: add
github.com/fergusstrange/embedded-postgres/v2at this release's
tag, then calleptest.Start(t). PostgreSQL and the matching supervisor download
automatically on first use and are cached for later tests. - Other test runners: install the CLI and run
embedded-postgres exec -- YOUR_TEST_COMMAND.
It suppliesDATABASE_URL, runs your tests and closes PostgreSQL afterward. - Upgrading from v1: follow the migration guide.
This is a major-version migration; use the/v2import path.
The quick start and
CLI guide
cover installation and configuration.
Corrected PostgreSQL distributions
This alpha updates the default and supported pins to PostgreSQL 18.6.1, 17.11.1,
16.15.1 and 15.19.1. These upstream packaging revisions include the Windows and
relocatable-library fixes. New downloads use the corresponding SHA-256 pins;
explicit older distribution versions retain their existing catalog entries.
Windows ARM64 continues to select x64 PostgreSQL under emulation.
See the published-binary regression report
for the platform matrix, verification evidence and two unreproduced Windows
findings.
Included in v2
- PostgreSQL 15â18; Linux, macOS and Windows on AMD64 and ARM64. Windows ARM64 uses
x64 PostgreSQL under emulation. - Isolated test instances, available ports, a shared verified binary cache and
explicit persistent-data storage. Caller-supplied data is never automatically erased. - Independent supervision for cleanup after owner exit or panic, and explicit
Unix UID/GID support for tests running as root. - Custom binary providers and lifecycle hooks for migrations and extensions.
- CLI foreground, command-scoped and background modes, plus protocol 1 for wrappers.
PostgreSQL's native runtime requirements
still apply. Source checkouts and local module replacements need an explicitly
selected supervisor. v2 remains a prerelease while downstream migrations are validated.
Windows PowerShell startup fix
This alpha fixes restricted-token permissions that could prevent PostgreSQL from opening its own token when launched from PowerShell, including a detached, hidden Node child. Administrator and Power Users groups remain disabled. The change grants the actual user and SYSTEM access to the new restricted token and its default objects; it does not alter the caller token or existing directory permissions.
The merged-source release run passed all native, lifecycle, security and coverage gates (90.92% aggregate production coverage). Windows x64 and ARM64 both passed PowerShell lifecycle tests on Go 1.26.9 and 1.27.2, repeated exact handle-cleanup checks, and detached Node startup/shutdown.
All 16 public consumer checks passed using the actual alpha.5 module and CLI downloads on Linux, macOS and Windows x64/ARM64, plus native x64/ARM64 Alpine, with Go 1.26 and 1.27. These verify module identity, CLI hashes and build attestations, default PostgreSQL 18.6.1 startup and SQL, offline cache reuse, and cleanup. Windows ARM64 uses x64 PostgreSQL under emulation. Reproduction is documented in the release guide.
v2.0.0-alpha.4
embedded-postgres v2 alpha
Run real PostgreSQL in Go tests with automatic cleanup, or use the CLI with any
test runner. v2 requires Go 1.26+ and has no third-party production Go dependencies.
Start here
- Go tests: add
github.com/fergusstrange/embedded-postgres/v2at this release's
tag, then calleptest.Start(t). PostgreSQL and the matching supervisor download
automatically on first use and are cached for later tests. - Other test runners: install the CLI and run
embedded-postgres exec -- YOUR_TEST_COMMAND.
It suppliesDATABASE_URL, runs your tests and closes PostgreSQL afterward. - Upgrading from v1: follow the migration guide.
This is a major-version migration; use the/v2import path.
The quick start and
CLI guide
cover installation and configuration.
Corrected PostgreSQL distributions
This alpha updates the default and supported pins to PostgreSQL 18.6.1, 17.11.1,
16.15.1 and 15.19.1. These upstream packaging revisions include the Windows and
relocatable-library fixes. New downloads use the corresponding SHA-256 pins;
explicit older distribution versions retain their existing catalog entries.
Windows ARM64 continues to select x64 PostgreSQL under emulation.
See the published-binary regression report
for the platform matrix, verification evidence and two unreproduced Windows
findings.
Included in v2
- PostgreSQL 15â18; Linux, macOS and Windows on AMD64 and ARM64. Windows ARM64 uses
x64 PostgreSQL under emulation. - Isolated test instances, available ports, a shared verified binary cache and
explicit persistent-data storage. Caller-supplied data is never automatically erased. - Independent supervision for cleanup after owner exit or panic, and explicit
Unix UID/GID support for tests running as root. - Custom binary providers and lifecycle hooks for migrations and extensions.
- CLI foreground, command-scoped and background modes, plus protocol 1 for wrappers.
PostgreSQL's native runtime requirements
still apply. Source checkouts and local module replacements need an explicitly
selected supervisor. v2 remains a prerelease while downstream migrations are validated.
v2.0.0-alpha.3
embedded-postgres v2 alpha
Run real PostgreSQL in Go tests with automatic cleanup, or use the CLI with any
test runner. v2 requires Go 1.26+ and has no third-party production Go dependencies.
Start here
- Go tests: add
github.com/fergusstrange/embedded-postgres/v2at this release's
tag, then calleptest.Start(t). PostgreSQL and the matching supervisor download
automatically on first use and are cached for later tests. - Other test runners: install the CLI and run
embedded-postgres exec -- YOUR_TEST_COMMAND.
It suppliesDATABASE_URL, runs your tests and closes PostgreSQL afterward. - Upgrading from v1: follow the migration guide.
This is a major-version migration; use the/v2import path.
The quick start and
CLI guide
cover installation and configuration.
Included in v2
- PostgreSQL 15â18; Linux, macOS and Windows on AMD64 and ARM64. Windows ARM64 uses
x64 PostgreSQL under emulation. - Isolated test instances, available ports, a shared verified binary cache and
explicit persistent-data storage. Caller-supplied data is never automatically erased. - Independent supervision for cleanup after owner exit or panic, and explicit
Unix UID/GID support for tests running as root. - Custom binary providers and lifecycle hooks for migrations and extensions.
- CLI foreground, command-scoped and background modes, plus protocol 1 for wrappers.
PostgreSQL's native runtime requirements
still apply. Source checkouts and local module replacements need an explicitly
selected supervisor. v2 remains a prerelease while downstream migrations are validated.
v2.0.0-alpha.2
embedded-postgres v2 alpha
Run real PostgreSQL in Go tests with automatic cleanup, or use the CLI with any
test runner. v2 requires Go 1.26+ and has no third-party production Go dependencies.
Start here
- Go tests: add
github.com/fergusstrange/embedded-postgres/v2at this release's
tag, then calleptest.Start(t). PostgreSQL and the matching supervisor download
automatically on first use and are cached for later tests. - Other test runners: install the CLI and run
embedded-postgres exec -- YOUR_TEST_COMMAND.
It suppliesDATABASE_URL, runs your tests and closes PostgreSQL afterward. - Upgrading from v1: follow the migration guide.
This is a major-version migration; use the/v2import path.
The quick start and
CLI guide
cover installation and configuration.
Included in v2
- PostgreSQL 15â18; Linux, macOS and Windows on AMD64 and ARM64. Windows ARM64 uses
x64 PostgreSQL under emulation. - Isolated test instances, available ports, a shared verified binary cache and
explicit persistent-data storage. Caller-supplied data is never automatically erased. - Independent supervision for cleanup after owner exit or panic, and explicit
Unix UID/GID support for tests running as root. - Custom binary providers and lifecycle hooks for migrations and extensions.
- CLI foreground, command-scoped and background modes, plus protocol 1 for wrappers.
PostgreSQL's native runtime requirements
still apply. Source checkouts and local module replacements need an explicitly
selected supervisor. v2 remains a prerelease while downstream migrations are validated.
v2.0.0-alpha.1
embedded-postgres v2
A testing-first lifecycle and CLI with no third-party production Go dependencies.
- Private temporary instances, shared verified binary cache and persistent data
protection; custom binary providers can own download/extract/cache policy. - PostgreSQL 15â18 and native AMD64/ARM64 Go executables for Linux, macOS and
Windows. Windows ARM64 uses x64 PostgreSQL under emulation. - Explicit Unix UID/GID launching, Windows restricted tokens and independent
parent-pipe supervision, including startup/client commands. - Test helpers, lifecycle hooks, authenticated readiness and dynamic test ports.
- CLI run/exec/start/status/stop, versioned JSON pipe protocol, verified installers.
Read the migration guide
before upgrading. Source builds must configure a companion CLI. PostgreSQL native
runtime libraries are OS prerequisites. Existing data is never automatically
removed. v2 alpha releases remain prereleases until the release channel is changed
explicitly after migration review.
v1.34.0
v1.33.0
v1.32.0
What's Changed
- Ensure target directories exist before extraction and add test for runtime path creation by @fergusstrange in #158
- Add support for Postgres 17 and update default version by @fergusstrange in #159
Full Changelog: v1.31.0...v1.32.0