Skip to content
Merged
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
35 changes: 35 additions & 0 deletions planning/releases/0.1.5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# compose2pod 0.1.5 — named volumes

A patch release accepting Compose named volumes, previously a hard error.
Compose files that declare a top-level `volumes:` block or reference a named
volume in a service (e.g. `pgdata:/var/lib/postgresql/data` for database data
persistence) now convert without editing the compose file.

## Fix

- **Named volumes are accepted.** A service volume whose source is a bare
identifier rather than a host path (a Compose named volume) is emitted
verbatim as `-v <name>:<target>`. Podman creates the volume implicitly on
first reference — the same behavior as plain `podman run -v` — so no
explicit `podman volume create` step is needed. The volume persists on the
host after the pod is removed, identical to `docker compose down` without
`-v`.
- **Top-level `volumes:` is accepted (ignored).** Mirrors the existing
top-level `networks` treatment: the block's `driver`/`driver_opts` and
`external` settings are never read, since implicit creation with default
options is what podman does regardless. A non-default driver or an
`external: true` volume that should pre-exist has no special handling.

## Downstream

No action needed — additive and backward compatible. Documents that previously
failed with `unsupported top-level keys: ['volumes']` or "named volume ... is
not supported" now emit a pod script; nothing that converted before changes.

## Internals

- `architecture/supported-subset.md` documents the bind-mount vs named-volume
disambiguation (source starts with `.`/`/` vs bare identifier) and the
default-driver-only limitation.
- 95 tests at 100% line coverage (enforced); `ruff select=ALL`, `ty`, and
`eof-fixer` clean.