Skip to content

Releases: fergusstrange/embedded-postgres

v2.0.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 10:09
b505714

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/v2 at this release's
    tag, then call eptest.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 supplies DATABASE_URL, runs your tests and closes PostgreSQL afterward.
  • Upgrading from v1: follow the migration guide.
    This is a major-version migration; use the /v2 import 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

Choose a tag to compare

@github-actions github-actions released this 19 Oct 08:05
cc12b18

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/v2 at this release's
    tag, then call eptest.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 supplies DATABASE_URL, runs your tests and closes PostgreSQL afterward.
  • Upgrading from v1: follow the migration guide.
    This is a major-version migration; use the /v2 import 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

v2.0.0-alpha.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 03:06
990b090

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/v2 at this release's
    tag, then call eptest.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 supplies DATABASE_URL, runs your tests and closes PostgreSQL afterward.
  • Upgrading from v1: follow the migration guide.
    This is a major-version migration; use the /v2 import 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

v2.0.0-alpha.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 01:13
f3020a0

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/v2 at this release's
    tag, then call eptest.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 supplies DATABASE_URL, runs your tests and closes PostgreSQL afterward.
  • Upgrading from v1: follow the migration guide.
    This is a major-version migration; use the /v2 import 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

v2.0.0-alpha.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Oct 11:01
a7f8d1f

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/v2 at this release's
    tag, then call eptest.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 supplies DATABASE_URL, runs your tests and closes PostgreSQL afterward.
  • Upgrading from v1: follow the migration guide.
    This is a major-version migration; use the /v2 import 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

v2.0.0-alpha.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Oct 10:46
6498c44

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/v2 at this release's
    tag, then call eptest.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 supplies DATABASE_URL, runs your tests and closes PostgreSQL afterward.
  • Upgrading from v1: follow the migration guide.
    This is a major-version migration; use the /v2 import 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

v2.0.0-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Oct 09:31
1aa5666

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

Choose a tag to compare

@fergusstrange fergusstrange released this 18 Mar 00:07
490777e

What's Changed

  • Bump V18 from 18.0.0 to 18.3.0 to fix darwin/arm64 by @nzoschke in #166

New Contributors

Full Changelog: v1.33.0...v1.34.0

v1.33.0

Choose a tag to compare

@fergusstrange fergusstrange released this 12 Nov 05:04

What's Changed

  • Add support for Postgres 18 and update default version by @otakakot in #162

New Contributors

Full Changelog: v1.32.0...v1.33.0

v1.32.0

Choose a tag to compare

@fergusstrange fergusstrange released this 04 Aug 08:08
0c7d03d

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