Skip to content

Releases: flaticols/ComposeKit

v0.0.3 (in development)

Pre-release

Choose a tag to compare

@flaticols flaticols released this 21 Jun 13:04
Immutable release. Only release title and notes can be modified.
v0.0.3
bebaef2

Warning

ComposeKit is still in active development (pre-1.0). The API and behavior may
change between releases. Not recommended for production use.

Breaking: ComposeKit is now a pure, runtime-agnostic Compose parser. The container translation/orchestration layer (the former ComposeKitContainer product) moved to its consumer, container-compose. If you depended on ComposeKitContainer, it no longer exists here.

Changes

  • Pure spec core: parse, interpolate, .env merge, profiles, Planner, include/extends — Yams-only.
  • Fixes: container-port-only ports (e.g. "80") are skipped with a warning (container can't auto-assign a host port); IPv6 host_ip in long-form ports is bracketed ([::1]:8080:80).
  • Quality: idiomatic cleanups, KeyValuePairsKeyValueMap rename, more tests (34), dependency-free compose-bench, richer DocC (zero warnings).

Full changelog: v0.0.2...v0.0.3

Install

.package(url: "https://github.com/flaticols/ComposeKit.git", from: "0.0.3"),

v0.0.2

Choose a tag to compare

@flaticols flaticols released this 20 Jun 16:38
Immutable release. Only release title and notes can be modified.
v0.0.2
95ed40f

Warning

ComposeKit is still in active development (pre-1.0). The API and behavior may
change between releases. Not recommended for production use.

Patch release.

Fixes

  • Fractional cpus failed to start (#8). Compose cpus (and
    deploy.resources.limits.cpus) is a fraction of CPU time, but container --cpus
    takes an integer vCPU count, so a value like 0.5 made container run exit 64.
    Values are now rounded up to whole vCPUs (minimum 1): 0.5 -> 1, 1.5 -> 2.
    Non-positive/non-numeric values emit no --cpus flag.

Full changelog: v0.0.1...v0.0.2

Install

.package(url: "https://github.com/flaticols/ComposeKit.git", from: "0.0.2"),

v0.0.1 (in development)

Choose a tag to compare

@flaticols flaticols released this 20 Jun 11:44
Immutable release. Only release title and notes can be modified.
v0.0.1
21e8aa3

Warning

ComposeKit is still in active development (pre-1.0). The API and behavior may
change between releases, and not every Compose feature is supported yet.
Not recommended for production use.

First 0.0.1 release. A Docker Compose parsing & orchestration engine for Apple's container, focused on running local-dev dependency stacks.

Highlights

Two layers

  • ComposeKit — runtime-agnostic spec core (parse, interpolate, profiles, plan); Yams-only.
  • ComposeKitContainer — maps the model onto container and orchestrates it.

Spec coverage (parse + translate)

  • Images, ports, environment/env_file, named + bind volumes, networks, labels.
  • depends_on with conditions: service_started, service_healthy (healthcheck-gated), service_completed_successfully (run-to-completion gated).
  • profiles activation, configs/secrets provisioning, extends + include (deep-merge), advanced build fields.
  • Popular run flags: ulimits, shm_size, tty/stdin_open, dns options, runtime, and more; unsupported-but-popular fields are decoded and warned.

Orchestration

  • up / down / ps / logs / exec / pull / stop / start / restart.

Tooling & docs

  • compose-validate CLI (parse / --plan / --profile).
  • Swift-DocC site: https://flaticols.github.io/ComposeKit/
  • Interop CI: compose-spec JSON Schema validation + docker compose config parity + nightly schema sync.

Not yet

Multi-file -f merge / auto compose.override.yaml, restart: policy enforcement, network aliases / volume driver options, and full field-specific merge rules.

Install

.package(url: "https://github.com/flaticols/ComposeKit.git", from: "0.0.1"),

v0.0.1-beta1

v0.0.1-beta1 Pre-release
Pre-release

Choose a tag to compare

@flaticols flaticols released this 17 Jun 21:08
v0.0.1-beta1
f19a1cb

First beta of ComposeKit — the Docker Compose parsing & orchestration engine behind container-compose (Apple container compatibility layer).

Highlights

  • Two-layer split
    • ComposeKit — runtime-agnostic spec core (parse, interpolate, profiles, plan). Yams-only.
    • ComposeKitContainer — maps the model onto Apple's container CLI and orchestrates up/down/ps/logs.
  • Popular local-dev spec fields
    • Translated onto real container run flags: tty, stdin_open, ulimits, shm_size, dns_search, dns_opt, runtime.
    • Decoded + warned (no container equivalent): extra_hosts, hostname, network_mode, devices, sysctls, security_opt, stop_signal/stop_grace_period, pull_policy, gpus.
    • Polymorphic decoders kept as tolerant as docker (short/long forms, string-or-int).
  • Profile activation — Docker-compatible (--profile / COMPOSE_PROFILES), with dependencies pulled in.
  • compose-validate CLIparse / --plan / --profile, no dependencies.

Interop testing

CI validates parse/translate fidelity (Apple container can't run in CI):

  • swift build/test on macOS (Swift 6).
  • Schema validation of all fixtures against the official compose-spec JSON Schema (vendored).
  • docker compose configcompose-validate parse parity.
  • Nightly workflow that refreshes the vendored schema, re-validates, and opens a PR on spec drift.

Use as a dependency

.package(url: "https://github.com/flaticols/ComposeKit.git", from: "0.0.1-beta1"),

Not yet (deferred)

extends / include, configs/secrets provisioning, and full 92-field translation (pending container flag support).