Skip to content
Merged
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
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# compose2pod

[![PyPI version](https://img.shields.io/pypi/v/compose2pod.svg)](https://pypi.org/project/compose2pod/)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/compose2pod.svg)](https://pypi.org/project/compose2pod/)
[![Downloads](https://static.pepy.tech/badge/compose2pod/month)](https://pepy.tech/projects/compose2pod)
[![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen.svg)](https://github.com/modern-python/compose2pod/actions/workflows/ci.yml)
[![CI](https://github.com/modern-python/compose2pod/actions/workflows/ci.yml/badge.svg)](https://github.com/modern-python/compose2pod/actions/workflows/ci.yml)
[![License](https://img.shields.io/github/license/modern-python/compose2pod.svg)](https://github.com/modern-python/compose2pod/blob/main/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/modern-python/compose2pod)](https://github.com/modern-python/compose2pod/stargazers)
[![Context7](https://img.shields.io/badge/Context7-docs-blue)](https://context7.com/modern-python/compose2pod)
[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![ty](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ty/main/assets/badge/v0.json)](https://github.com/astral-sh/ty)

Convert a Docker Compose file into a POSIX `sh` script that runs its services as a **single Podman pod**.

Built for CI and test environments where you can't use `docker compose` or `podman kube play`:
Expand Down
17 changes: 17 additions & 0 deletions planning/deferred.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

Real-but-unscheduled items, each with a revisit trigger.

## Add the compose2pod brand lockup to the README header

Sibling org repos (`db-retry`, `eof-fixer`, `semvertag`, …) open their README
with a centered brand lockup (`<picture>` → `modern-python/.github`
`brand/projects/<name>/lockup-{dark,light}.svg` + `lockup.png`) above the badge
row. compose2pod's README carries the badges but no lockup: the `.github`
repo's `brand/build/projects.py` `MANIFEST` has no `compose2pod` entry, so no
glyph or lockup asset is generated for it. Adding one requires designing a
distinctive gold inner symbol (a `sym.compose2pod(...)` in the brand build),
regenerating assets, and shipping that in a `.github` PR — brand design that
needs the org owner's sign-off.

**Revisit trigger:** the org owner approves a compose2pod brand glyph, or a
`.github` PR adds `compose2pod` to the brand `MANIFEST` and regenerates the
lockup assets. Then wire the `<picture>` block above the badges (dropping the
`# compose2pod` H1) to match siblings.

## Harden the pod-cleanup trap's nested `shlex.quote` for the `emit_script` library path

`emit.py`'s `EXIT` trap quotes the pod name with a nested `shlex.quote` inside
Expand Down