Skip to content

docs: Podman experimental status + 1.0 roadmap + CHANGELOG bootstrap (PR-7 of 7)#31

Merged
pofallon merged 2 commits into
mainfrom
pr7-docs-podman-changelog
May 25, 2026
Merged

docs: Podman experimental status + 1.0 roadmap + CHANGELOG bootstrap (PR-7 of 7)#31
pofallon merged 2 commits into
mainfrom
pr7-docs-podman-changelog

Conversation

@pofallon

Copy link
Copy Markdown
Contributor

Last of the four parallelizable Tier 1 PRs from `docs/ROADMAP_TO_1.0.md`. No runtime behavior changes beyond a single one-time WARN.

Podman repositioned as experimental for 1.0

Trait-level Podman integration is already complete in `crates/core/src/runtime.rs` (`DockerRuntime` + `PodmanRuntime` fully implement `Docker`, `ContainerOps`, `DockerLifecycle` traits), but lacks test coverage and rootless-Podman parity items (`label=disable`, `--userns=keep-id`, `--uidmap`/`--gidmap`). README/CLAUDE.md previously said "planned" / "in development" — neither accurate nor honest. Documenting as experimental for 1.0; promoting in 1.1 (tracked at #30).

  • README.md "Currently Unsupported" row + "Runtime Selection" section: replace "Planned. Docker is fully supported; Podman coming later" with the experimental-status narrative + tracking issue link.
  • CLAUDE.md "Container Runtimes" section: same update.
  • `crates/deacon/src/cli.rs`: `--runtime` help text now reads "docker or podman [experimental]"; `RuntimeOption::Podman` doc comment marked.
  • `crates/core/src/runtime.rs`: `detect_runtime()` emits a one-time WARN (`std::sync::Once` + `tracing::warn!`) when Podman is selected — by CLI flag or `DEACON_RUNTIME` env var. Idempotent across calls per process.

`CHANGELOG.md` (new)

Keep-a-Changelog format, seeded with the `[Unreleased]` section capturing PR-1..PR-3 + PR-7 changes. Includes a `### Notes` subsection recording the four "non-issues" surfaced by the 1.0 audit (`serde_yaml` not used; TAR CVE not vulnerable; `json5` advisory inapplicable; #1 already resolved via bead 14b) so the audit trail lives in code, not memory.

`docs/ROADMAP_TO_1.0.md`

The 1.0 readiness report produced ahead of the implementation work, deferred from PR-1's chore commit per agreed scoping.

Tracking issue

#30 — Podman parity: promote from experimental to supported in 1.1

Test plan

  • `cargo fmt --all -- --check`
  • `cargo clippy --all-targets -- -D warnings`
  • `cargo nextest run --profile dev-fast --no-default-features` → 1927/1927 pass
  • `cargo test --doc --workspace` → 130/130 pass
  • `runtime::tests` 11/11 pass
  • `deacon --help` shows updated runtime text and `[experimental]` marker
  • CI green

Refs

`docs/ROADMAP_TO_1.0.md` Tier 1 items: Podman story decision and CHANGELOG.md.

🤖 Generated with Claude Code

@github-actions github-actions Bot added the docs Documentation changes label May 25, 2026
pofallon and others added 2 commits May 25, 2026 14:45
Last of the four parallelizable Tier 1 PRs from docs/ROADMAP_TO_1.0.md.
No runtime behavior changes beyond a single one-time WARN.

## Podman repositioned as experimental for 1.0

Trait-level Podman integration is already complete in crates/core/src/
runtime.rs (DockerRuntime + PodmanRuntime fully implement Docker,
ContainerOps, DockerLifecycle traits), but lacks test coverage and
rootless-Podman parity items (label=disable, --userns=keep-id,
--uidmap/--gidmap). README/CLAUDE.md previously said "planned" / "in
development" — that's not accurate, but neither is "fully supported".
Documenting as experimental for 1.0; promoting in 1.1 (tracked at #30).

- README.md "Currently Unsupported" row + "Runtime Selection" section:
  replace "Planned. Docker is fully supported; Podman coming later"
  with the experimental-status narrative + tracking issue link.
- CLAUDE.md "Container Runtimes" section: same update.
- crates/deacon/src/cli.rs: --runtime help text now reads "docker or
  podman [experimental]"; RuntimeOption::Podman doc comment marked.
- crates/core/src/runtime.rs: detect_runtime() emits a one-time WARN
  (std::sync::Once + tracing::warn!) when Podman is selected — by CLI
  flag or DEACON_RUNTIME env var. Idempotent across calls per process.

## CHANGELOG.md (new)

Keep-a-Changelog format, seeded with the Unreleased section capturing
PR-1..PR-3 + PR-7 changes. Includes a Notes subsection recording the
four "non-issues" surfaced by the 1.0 audit (serde_yaml not used; TAR
CVE not vulnerable; json5 advisory inapplicable; issue #1 already
resolved via bead 14b) so the audit trail lives in code, not memory.

## docs/ROADMAP_TO_1.0.md

The 1.0 readiness report produced ahead of the implementation work,
deferred from PR-1's chore commit per agreed scoping.

## Tracking issue filed

#30 — "Podman parity: promote from experimental to supported in 1.1"

## Verified

- cargo fmt --all -- --check
- cargo clippy --all-targets -- -D warnings
- cargo nextest run --profile dev-fast --no-default-features: 1927/1927 pass
- cargo test --doc --workspace: 130/130 pass
- 11/11 runtime::tests pass
- deacon --help shows updated runtime text and [experimental] marker

Refs: docs/ROADMAP_TO_1.0.md Tier 1 items "Podman story decision" and
"CHANGELOG.md".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…#38)

Issue #34's tracker explicitly flags that the CHANGELOG (currently on this
branch under [Unreleased]) should be extended to cover the four PRs opened
after PR-7 was first drafted:

- #35 — lockfile graduation phase 2 (writer wiring in up; closes #32)
- #36 — set-up subcommand MVP scaffold + lifecycle hooks
- #37 — set-up dotfiles installer
- #38 — set-up /etc/environment + /etc/profile root patches

All four are recorded under "Added" since they're net-new user-visible
surface. The existing "Changed"/"Fixed"/"Notes" sections are untouched.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pofallon
pofallon force-pushed the pr7-docs-podman-changelog branch from e6b929c to da85dab Compare May 25, 2026 18:45
@pofallon
pofallon merged commit d0c1d4d into main May 25, 2026
7 checks passed
@pofallon
pofallon deleted the pr7-docs-podman-changelog branch May 25, 2026 18:58
pofallon added a commit that referenced this pull request May 25, 2026
…ng-build (#45)

Follow-up to the Tier 1 merge cascade — closes out the [Unreleased]
section with entries for the two tracks that landed after PR-7 (#31)
was first drafted:

- `upgrade` subcommand (PR-5a #44 + PR-5b #40 pinning)
- features-during-build for Dockerfile configs (PR-4c #41)

The lockfile and set-up entries were added earlier in commit e6b929c.
This commit completes the Unreleased section.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant