Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 22 Aug 21:01
· 21 commits to main since this release
b22e658

Container orchestration over CRI, with service images built straight from
Nix closures instead of Dockerfiles.

nix-compose speaks CRI gRPC directly to containerd or CRI-O — no daemon,
no compose file, nothing shelling out to another tool. A service can name a
package instead of a registry image, and its image is built from that
package's Nix closure and imported into the runtime: no Dockerfile, nothing
pushed or pulled.

Install

nix run github:systemstart/nix-compose -- up -d
# or
go install github.com/systemstart/nix-compose/cmd/nix-compose@latest

Or download an archive below. Linux only; needs containerd or CRI-O.
Run nix-compose doctor first — it checks every prerequisite and each
finding carries its fix.

Before you adopt it

Read docs/limitations.md
— a deliberately complete account of what does not work, not a marketing
document. The changes in this release are listed below.

What changed in 0.2.0

A maintenance release. No behaviour change to the tool itself — if v0.1.0
works for you, this is a drop-in update.

The minimum Go version is now 1.26.5 (was 1.26.3). This affects
go install only; the flake and the release binaries are unaffected.

Dependency updates, all verified against the full test suite first:

  • k8s.io/cri-api 0.36.1 → 0.36.4 — carried a breaking API change in a
    patch release (KeyValue.Value moved from string to []byte), handled
    internally and invisible from the CLI
  • github.com/containerd/containerd/v2 2.3.3 → 2.3.4
  • github.com/containerd/platforms 1.0.0-rc.4 → 1.0.0-rc.5
  • google.golang.org/grpc 1.81.1 → 1.83.1
  • google.golang.org/protobuf → 1.36.12, off an unreleased pseudo-version
    onto the actual release
  • go.etcd.io/bbolt 1.4.3 → 1.5.0
  • golang.org/x/term 0.44.0 → 0.45.0

Repository tooling, no effect on users of the binary: flake.lock
refreshed with pkg/nixpins kept in step by make sync-nixpins (wired into
Renovate, so a lock-file bump no longer leaves the pins stale); jq and
yq-go added to the dev shell; a pre-commit hook running make lint.

Changelog

Other changes


While the major version is 0, the nix-compose.yaml schema and the CLI
surface may still change between minor releases.

Archives are attested with build provenance; verify with
gh attestation verify <archive> --repo systemstart/nix-compose.