Files
doos/CHANGELOG.md
T
2026-10-23 23:26:57 +02:00

4.8 KiB

Changelog

Docs: README · SPEC · ARCHITECTURE · RESEARCH · COMPARISON · AGENTS · CHANGELOG

1.1.4 - 2026-10-23

  • Docs: COMPARISON section 6.1 answers whether doos is a security-wise Docker replacement (same class as rootless Podman, not for untrusted code), summarized in the README safety summary.

1.1.3 - 2026-10-23

  • Charts: startup time, executable size and CPU limit as SVG (light and dark palettes, doos highlighted), embedded in COMPARISON and RESEARCH.
  • Reproducible measurements: scripts/bench.sh writes docs/charts/bench.json; docs/charts/make_charts.py builds the charts and rewrites every generated number and table in the documents from it, so text, tables and charts cannot drift apart.
  • Makefile wrapper (make help), expanded .gitignore.

1.1.2 - 2026-10-23

  • Docs: new COMPARISON (doos against Docker, rootless Docker, Podman, bubblewrap, systemd-nspawn, LXC/Incus, Apptainer, Distrobox/Toolbx, gVisor, Kata/Firecracker) with sourced pros and cons, startup and disk measurements against Docker, Podman and bubblewrap on the same machine, a gaps list tied to code, and a conclusion.
  • Docs: every document now has a navigation line and links to every other document. scripts/check-docs.sh enforces it (and that relative links resolve) and runs inside scripts/release.sh.

1.1.1 - 2026-10-23

  • doos apparmor prints a profile for the exact path of the running binary (own profile name per path, so several installs coexist). A start that fails because of AppArmor now prints the install command instead of only mount bind /: Permission denied. Verified with a copy in ~/.local/bin.
  • apparmor/doos (packaging) covers more standard install paths.
  • Docs: Networking section with a verified example per mode (slirp, pasta, host, none), the inbound/loopback behavior of each, and the pasta port-detection delay.
  • Tests: 86 checks (adds apparmor output, none, slirp has no inbound path, pasta container to container).

1.1.0 - 2026-10-23

  • Limits: --memory, --pids, --cpus (cgroup v2; whole-container OOM kill; reports OOM kills and pid-limit hits). Later attaches run in their own cgroup leaf with the same limits.
  • Hardening (default): Docker's default capability set, a seccomp filter (arch check, x32 guard, clone3 ENOSYS, no nested user namespaces, no mounts/keyrings/bpf/perf/io_uring/...), host /etc allowlist. --hardening relaxed turns it off per container.
  • Networking: --net pasta (host-like reachability, private namespace and abstract sockets). --net host now prints a note.
  • Size cap: measured from inside the id map (counts other uids), paced by scan cost (2 s floor), RLIMIT_FSIZE bounds single files.
  • Images: Debian in the catalog (debian, debian-RELEASE); Alpine and Ubuntu signatures verified against pinned key fingerprints.
  • Fix: a failed get_or_create no longer leaves an unreadable container directory behind.
  • Tests: 83 end-to-end checks.

1.0.0 - 2026-10-23

Breaking: state layout changed (private /etc, meta keys). Containers from 0.x must be deleted and recreated.

  • Images: doos image list|add|delete, --image NAME on get_or_create/attach (fetched on demand). Catalog: alpine, ubuntu, ubuntu-VERSION; also https URL with --sha256, or a local tarball. sha256 verified before extraction.
  • --size: cap for what a container writes (default 4g). Warns at 80%, freezes at 100% via cgroup v2, thaws below 95%.
  • --ids: subuid mapping through newuidmap/newgidmap by default (chown, su and apt's _apt work); falls back to one id.
  • Host mode fixes: directory skeleton so host-owned directories are writable, private copy of /etc, pre-seeded /var and dpkg state. apt-get install now completes.
  • Deleting trees with subuid-owned files works (runs inside the id map).
  • Usage measurement counts hard links once.
  • Tests: 56 end-to-end checks, including real image downloads, apt/apk installs and the size freeze.

0.1.3 - 2026-10-23

  • Docs: field trial of apt and common tools, new gap G7 (host-owned lower layer), README limits section. No code change.

0.1.2 - 2026-10-23

  • Docs: researched solutions for all known gaps (G1 to G6) in docs/RESEARCH.md, with measurements. Nothing implemented yet.

0.1.1 - 2026-10-23

  • Docs: AGENTS.md release workflow, ARCHITECTURE.md, expanded README, this changelog.
  • Tooling: scripts/release.sh (bump, build, test, commit, tag).

0.1.0 - 2026-10-23

  • First release: list, get_or_create, attach, delete.
  • overlayfs over host /usr /etc /opt, user/mount/pid/uts/ipc/net namespaces.
  • Networking: slirp4netns (default), host, none.
  • End-to-end test suite and AppArmor profile for Ubuntu 24.04+.