Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions .changeset/postgres-18-volume-mount.md

This file was deleted.

16 changes: 0 additions & 16 deletions .changeset/postgres-18.md

This file was deleted.

17 changes: 0 additions & 17 deletions .changeset/verify-fastify-adapter.md

This file was deleted.

52 changes: 52 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,57 @@
# seamless-cli

## 0.12.0

### Minor Changes

- 35d9f3e: Scaffold new projects on PostgreSQL 18, and run the conformance harness on it too.

`seamless init` generated a stack pinned to `postgres:17` while the verify harness ran `postgres:16`.
Both are now `postgres:18`, so what the harness certifies is the major a fresh scaffold actually
gets.

This does not touch an existing project. The image is written into each scaffold's own
`docker-compose.yml` at generation time, so a project keeps whatever major it was scaffolded with and
its data directory is never pulled out from under it. Only newly scaffolded projects get 18, on a
fresh volume. Upgrading an existing project is a deliberate act: change the image in its
`docker-compose.yml`, and dump and restore the volume, since PostgreSQL will not start against a data
directory written by a different major.

- d5da781: `seamless verify` now exercises the Fastify starter. The scaffold has offered a Fastify API since the
templates bump, but the conformance harness only ever drove the Express adapter, so a green run said
nothing about whether a Fastify-scaffolded project actually worked.

The stack gains a second adopter backend (`verify/adapter-fastify-app`, on port 3001) built on
`@seamless-auth/fastify`, a twin of the Express one: same routes, same env contract, same capture
transport. The existing adapter specs run against both without being duplicated, since the two
Playwright projects share a test directory and differ only in which backend they point at. The
conformance grid gains an `adapter-fastify` column, so a failure in one framework is attributable to
that framework.

`--api-only` and `--no-react` are unchanged, and `--local` builds and packs `@seamless-auth/fastify`
from source alongside core and express.

### Patch Changes

- 5cb6911: Fix the scaffolded database failing to start on PostgreSQL 18.

The PostgreSQL 18 bump moved the image tag but not the volume mount. PostgreSQL 18+ images store data
in a major-versioned subdirectory (`/var/lib/postgresql/18/docker`), so a mount at
`/var/lib/postgresql/data` is ignored and the container refuses to start, restart-looping on:

```
Error: in 18+, these Docker images are configured to store database data in a
format which is compatible with "pg_ctlcluster" ...
Counter to that, there appears to be PostgreSQL data in:
/var/lib/postgresql/data (unused mount/volume)
```

The generated `docker-compose.yml` now mounts `pgdata:/var/lib/postgresql`. See
docker-library/postgres#1259.

This only ever affected projects scaffolded from the unreleased PostgreSQL 18 change, so no published
version of the CLI produced a broken scaffold.

## 0.11.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "seamless-cli",
"version": "0.11.0",
"version": "0.12.0",
"description": "The Seamless Auth command-line interface",
"homepage": "https://github.com/fells-code/seamless-cli#readme",
"bugs": {
Expand Down