Skip to content

Barn Blog

Engineering updates, architectural essays, and release records for Barn. For step-by-step usage guides and command references, see the Documentation.

  • Release Notes — Version highlights, upgrade instructions, and dated validation records. Current release: Barn 1.1.0.
  • Design Notes — Architectural decisions behind Barn’s single-deployment model, Ansible inventory compatibility, in-place convergence, and host networking.
Barn Blog
Barn 1.2.0 release readiness and acceptance ReleaseTestingCLI
Barn 1.2.0: resources, root growth, and host names LinuxmacOSCLI
In-place root growth: recovery and native acceptance CLIQEMUStorage
VM specification parameters: commands, short flags, environment, and root disks CLIPigstyConfiguration
Pigsty host setup: fixed names and CA trust PigstyDNSSecurity
Main and command reference review CLIDocumentationValidation
Host DNS and domain resolution for Pigsty on Barn PigstyDNSNetworking
Replacing Vagrant with Barn in Pigsty: resources, names, and migration work PigstyVagrantDNS
Barn 1.1.0: image selection and live progress LinuxmacOSCLIImages
Beyond amd64 and arm64 ArchitectureQEMUImages
Running Barn from Windows WindowsWSLQEMU
What Barn Can Learn from Vagrant VagrantPigstyWorkflow
From Upstream Images to a Signed Catalog ImagesSupply ChainReleases
Barn 1.0.0: the first stable release LinuxmacOSCLIImages
Evolving the CLI Without Breaking Its Contracts CLICompatibilityArchitecture
Barn 0.9.3: safer resizing, selected nodes, and recovery LinuxmacOSCLIImages
Barn 0.9.2: signed Barn.app and explicit SSH/exec arguments macOSHomebrewCLI
Barn 0.9.1: Go 1.27.3 toolchain and Barn.app rename GomacOSToolchain
Barn 0.9.0: native macOS guests and smoother Linux recovery macOSLinuxRecovery
The Lifetime of a Native Mac VM macOSRecoveryArchitecture
Barn 0.8.0: clearer recovery and refreshed images QEMURecoveryImages
Barn 0.7.0: simpler test labs and automatic recovery QEMURecoveryStorage
Barn 0.6.0: Ubuntu 24.04 and smoother local labs QEMUUbuntuLifecycle
Barn 0.5.0: explicit disposal, explicit repositories, reproducible images QEMUImagesSupply Chain
Barn 0.4.0: one command, working data disks, one voice QEMUStorageCLI
Barn 0.3.0: explicit catalogs and actionable readiness QEMUCatalogReadiness
Barn 0.2.0: selected convergence and release integrity QEMUNetworkingSupply Chain
repo.yaml Is Intent; catalog.json Is Evidence ImagesSupply ChainCatalog
A PID Is Not a Virtual Machine QMPRecoverySafety
Declarative Does Not Mean Destructive LifecycleDriftSafety
Why Every Barn Node Has Two NICs NetworkingQEMUPigsty
Why Barn Has No Projects ArchitectureinventoryState
RC6 development candidate: owner-scoped Tier-1 delivery RC6QEMUNetworking
Development snapshot: the Go 1.27 product surface PrototypeQEMUPigsty
  • Barn 1.2.0 release readiness and acceptance

    In Design 1516 words 8 min

    DesignReleaseTestingCLI

    Status, 2026-11-12: Barn 1.2.0 is published as stable/latest. Its final acceptance is recorded below; the candidate sections preserve the earlier review and its original scope. Final release Tag v1.2.0 points to …

    Status, 2026-11-12: Barn 1.2.0 is published as stable/latest. Its final acceptance is recorded below; the candidate sections preserve the earlier review and its original scope. Final release Tag v1.2.0 points to …

  • Barn 1.2.0: resources, root growth, and host names

    In Releases 583 words 3 min

    ReleaseLinuxmacOSCLI

    Barn 1.2.0 was released on 2026-11-12 from commit 90f6158. It adds resource overrides, recoverable root-disk growth, configurable lifecycle concurrency, and inventory-based host names. The bilingual command reference covers all 57 operation commands …

    Barn 1.2.0 was released on 2026-11-12 from commit 90f6158. It adds resource overrides, recoverable root-disk growth, configurable lifecycle concurrency, and inventory-based host names. The bilingual command reference covers all 57 operation commands …

  • In-place root growth: recovery and native acceptance

    In Design 949 words 5 min

    DesignCLIQEMUStorage

    Status (2026-11-11): The unreleased development build implements barn resize -D, with ext4 and XFS acceptance on macOS/arm64 using QEMU/HVF guests. Released 1.1.0 still limits resize to CPU/memory. See VM specification design for input precedence and …

    Status (2026-11-11): The unreleased development build implements barn resize -D, with ext4 and XFS acceptance on macOS/arm64 using QEMU/HVF guests. Released 1.1.0 still limits resize to CPU/memory. See VM specification design for input precedence and …

  • VM specification parameters: commands, short flags, environment, and root disks

    In Design 2708 words 13 min

    DesignCLIPigstyConfiguration

    Image, architecture, CPU, memory, scale, and root disk size form one set of VM specification inputs, with consistent names, value rules, and source tracking. Each command declares which fields it accepts and which changes it can apply; the resolution …

    Image, architecture, CPU, memory, scale, and root disk size form one set of VM specification inputs, with consistent names, value rules, and source tracking. Each command declares which fields it accepts and which changes it can apply; the resolution …

  • Pigsty host setup: fixed names and CA trust

    In Design 1940 words 10 min

    DesignPigstyDNSSecurity

    Recommend one optional host setup operation: install a fixed set of Pigsty names and trust the lab’s public root CA certificate. Keep one entry address, defaulting to 10.10.10.10, and reuse the same CA across ordinary lab rebuilds. With unchanged …

    Recommend one optional host setup operation: install a fixed set of Pigsty names and trust the lab’s public root CA certificate. Keep one entry address, defaulting to 10.10.10.10, and reuse the same CA across ordinary lab rebuilds. With unchanged …

  • Main and command reference review

    In Design 858 words 5 min

    DesignCLIDocumentationValidation

    Reviewed on 2026-11-11. Both repositories were on main, but neither had a clean working tree or matched its fetched remote head. The source checks passed on the reviewed working tree. The documentation now has a complete command reference with …

    Reviewed on 2026-11-11. Both repositories were on main, but neither had a clean working tree or matched its fetched remote head. The source checks passed on the reviewed working tree. The documentation now has a complete command reference with …

  • Host DNS and domain resolution for Pigsty on Barn

    In Design 5494 words 26 min

    DesignPigstyDNSNetworking

    Note Scope narrowed on 2026-11-11: the first delivery is now fixed core names and Pigsty CA trust. This page retains the broader exporter and resolver research; its general inventory and split-DNS work is optional expansion, not a prerequisite for …

    Note Scope narrowed on 2026-11-11: the first delivery is now fixed core names and Pigsty CA trust. This page retains the broader exporter and resolver research; its general inventory and split-DNS work is optional expansion, not a prerequisite for …

  • Replacing Vagrant with Barn in Pigsty: resources, names, and migration work

    In Design 1872 words 9 min

    DesignPigstyVagrantDNS

    Pigsty can use one inventory for Barn and Ansible. The migration needs to preserve topology selection, image matrices, resource scaling, fixed addresses, and SSH workflows while replacing the old scripts’ implicit addressing, naming, and destruction …

    Pigsty can use one inventory for Barn and Ansible. The migration needs to preserve topology selection, image matrices, resource scaling, fixed addresses, and SSH workflows while replacing the old scripts’ implicit addressing, naming, and destruction …

  • Barn 1.1.0: image selection and live progress

    In Releases 511 words 3 min

    ReleaseLinuxmacOSCLIImages

    Released on 2026-11-09. Barn 1.1.0 adds image and guest-architecture overrides, live progress tables, and more reliable CPU/memory resizing. It embeds signed image catalog revision 2026110502, with 9 distribution releases and 17 architecture-specific …

    Released on 2026-11-09. Barn 1.1.0 adds image and guest-architecture overrides, live progress tables, and more reliable CPU/memory resizing. It embeds signed image catalog revision 2026110502, with 9 distribution releases and 17 architecture-specific …

  • Beyond amd64 and arm64

    In Design 903 words 5 min

    DesignArchitectureQEMUImages

    Barn currently supports amd64 and arm64 Linux guests. QEMU can emulate more architectures, but each additional Barn target needs an image and a complete boot-and-operation contract. This design assessment, reviewed on 2026-11-08, separates the …

    Barn currently supports amd64 and arm64 Linux guests. QEMU can emulate more architectures, but each additional Barn target needs an image and a complete boot-and-operation contract. This design assessment, reviewed on 2026-11-08, separates the …

  • Running Barn from Windows

    In Design 752 words 4 min

    DesignWindowsWSLQEMU

    Barn’s current host profiles and release binaries cover macOS and Linux on amd64 and arm64. There is no native Windows Barn release. A Windows user can operate Barn through a Linux host; WSL2 and a nested Linux VM are candidates for bringing that …

    Barn’s current host profiles and release binaries cover macOS and Linux on amd64 and arm64. There is no native Windows Barn release. A Windows user can operate Barn through a Linux host; WSL2 and a nested Linux VM are candidates for bringing that …

  • What Barn Can Learn from Vagrant

    In Design 858 words 5 min

    DesignVagrantPigstyWorkflow

    Barn already creates multi-node Linux labs from Pigsty-compatible inventories, manages their lifecycle, and exposes SSH and structured output. The useful lessons from Vagrant concern what happens between creating a VM and repeating an experiment: run …

    Barn already creates multi-node Linux labs from Pigsty-compatible inventories, manages their lifecycle, and exposes SSH and structured output. The useful lessons from Vagrant concern what happens between creating a VM and repeating an experiment: run …

  • From Upstream Images to a Signed Catalog

    In Design 935 words 5 min

    DesignImagesSupply ChainReleases

    An image audit answers a narrower question than an image release. It can find a newer upstream file, but Barn may add that file to its signed catalog only after the artifact, runtime profile, and boot path have all been verified. The image reference …

    An image audit answers a narrower question than an image release. It can find a newer upstream file, but Barn may add that file to its signed catalog only after the artifact, runtime profile, and boot path have all been verified. The image reference …

  • Barn 1.0.0: the first stable release

    In Releases 711 words 4 min

    ReleaseLinuxmacOSCLIImages

    Released on 2026-11-05. Barn 1.0.0 is the first stable release. For the latest stable release, see Barn 1.1.0. Barn 1.0.0 completes a pre-release audit of destructive operations, data-disk recovery, catalog integrity, and process cancellation. It …

    Released on 2026-11-05. Barn 1.0.0 is the first stable release. For the latest stable release, see Barn 1.1.0. Barn 1.0.0 completes a pre-release audit of destructive operations, data-disk recovery, catalog integrity, and process cancellation. It …

  • Evolving the CLI Without Breaking Its Contracts

    In Design 958 words 5 min

    DesignCLICompatibilityArchitecture

    Barn already uses Cobra. The useful part of the 2026-11-04 CLI proposal is its separation of command syntax, application orchestration, and observable behavior. This essay retains that design, checked against v1.1.0 on 2026-11-09. The package split …

    Barn already uses Cobra. The useful part of the 2026-11-04 CLI proposal is its separation of command syntax, application orchestration, and observable behavior. This essay retains that design, checked against v1.1.0 on 2026-11-09. The package split …

  • Barn 0.9.3: safer resizing, selected nodes, and recovery

    In Releases 404 words 2 min

    ReleaseLinuxmacOSCLIImages

    Released on 2026-10-31. Barn 0.x releases use GitHub’s pre-release channel. For the latest release, see Barn 1.1.0. Barn 0.9.3 focuses on safer changes to local labs. It adds resource-only VM resize, lets selected nodes converge independently, …

    Released on 2026-10-31. Barn 0.x releases use GitHub’s pre-release channel. For the latest release, see Barn 1.1.0. Barn 0.9.3 focuses on safer changes to local labs. It adds resource-only VM resize, lets selected nodes converge independently, …

  • Barn 0.9.2: signed Barn.app and explicit SSH/exec arguments

    In Releases 377 words 2 min

    ReleasemacOSHomebrewCLI

    Released on 2026-10-30. Barn 0.x releases use GitHub’s pre-release channel. Barn 0.9.2 includes the complete native macOS guest runtime in the Apple Silicon download and Homebrew installation. You can create Linux and macOS VMs after installing a …

    Released on 2026-10-30. Barn 0.x releases use GitHub’s pre-release channel. Barn 0.9.2 includes the complete native macOS guest runtime in the Apple Silicon download and Homebrew installation. You can create Linux and macOS VMs after installing a …

  • Barn 0.9.1: Go 1.27.3 toolchain and Barn.app rename

    In Releases 400 words 2 min

    ReleaseGomacOSToolchain

    Released on 2026-10-22. Barn 0.x releases are published via GitHub’s pre-release channel. For the latest release with a signed and notarized Barn.app in the Apple Silicon archive and Homebrew formula, see Barn 1.1.0. Barn 0.9.1 updates the Go …

    Released on 2026-10-22. Barn 0.x releases are published via GitHub’s pre-release channel. For the latest release with a signed and notarized Barn.app in the Apple Silicon archive and Homebrew formula, see Barn 1.1.0. Barn 0.9.1 updates the Go …

  • Barn 0.9.0: native macOS guests and smoother Linux recovery

    In Releases 566 words 3 min

    ReleasemacOSLinuxRecovery

    Released on 2026-09-30. Barn 0.9.0 manages both Linux labs and native macOS machines from a single CLI, while improving diagnostics and recovery after interrupted operations. For the latest release, see Barn 1.1.0. Install Barn · Download 0.9.0 …

    Released on 2026-09-30. Barn 0.9.0 manages both Linux labs and native macOS machines from a single CLI, while improving diagnostics and recovery after interrupted operations. For the latest release, see Barn 1.1.0. Install Barn · Download 0.9.0 …

  • The Lifetime of a Native Mac VM

    In Design 804 words 4 min

    DesignmacOSRecoveryArchitecture

    barn mac manages named macOS VMs through Apple’s Virtualization.framework, independently of the Linux inventory. Introduced in 0.9.0, it uses the native host app Barn.app, included in Apple Silicon release archives since 0.9.2. This essay distills …

    barn mac manages named macOS VMs through Apple’s Virtualization.framework, independently of the Linux inventory. Introduced in 0.9.0, it uses the native host app Barn.app, included in Apple Silicon release archives since 0.9.2. This essay distills …

  • Barn 0.8.0: clearer recovery and refreshed images

    In Releases 776 words 4 min

    ReleaseQEMURecoveryImages

    Note Historical release record (0.8.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.8.0 cuts down on manual cleanup after interrupted host setup or partial VM starts, and refreshes the Debian and …

    Note Historical release record (0.8.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.8.0 cuts down on manual cleanup after interrupted host setup or partial VM starts, and refreshes the Debian and …

  • Barn 0.7.0: simpler test labs and automatic recovery

    In Releases 521 words 3 min

    ReleaseQEMURecoveryStorage

    Note Historical release record (0.7.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.7.0 streamlines first-run startup and recovery for local test labs: re-running barn up finishes interrupted work, …

    Note Historical release record (0.7.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.7.0 streamlines first-run startup and recovery for local test labs: re-running barn up finishes interrupted work, …

  • Barn 0.6.0: Ubuntu 24.04 and smoother local labs

    In Releases 515 words 3 min

    ReleaseQEMUUbuntuLifecycle

    Note Historical release record (0.6.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.6.0 makes Ubuntu 24.04 the default guest image and improves planning, startup, scale-out, and node recreation for …

    Note Historical release record (0.6.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.6.0 makes Ubuntu 24.04 the default guest image and improves planning, startup, scale-out, and node recreation for …

  • Barn 0.5.0: explicit disposal, explicit repositories, reproducible images

    In Releases 511 words 3 min

    ReleaseQEMUImagesSupply Chain

    Note Historical release record (0.5.0). Official mirror failover was later added in 0.7.0, and the rm alias was removed in 0.9.0. Old release downloads are retired; see the CLI reference and installation guide for current usage. Barn 0.5.0 adds an …

    Note Historical release record (0.5.0). Official mirror failover was later added in 0.7.0, and the rm alias was removed in 0.9.0. Old release downloads are retired; see the CLI reference and installation guide for current usage. Barn 0.5.0 adds an …

  • Barn 0.4.0: one command, working data disks, one voice

    In Releases 451 words 3 min

    ReleaseQEMUStorageCLI

    Note Historical release record (0.4.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.4.0 turns the first run into a single command, makes default data disks work out of the box on Debian and Ubuntu …

    Note Historical release record (0.4.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.4.0 turns the first run into a single command, makes default data disks work out of the box on Debian and Ubuntu …

  • Barn 0.3.0: explicit catalogs and actionable readiness

    In Releases 310 words 2 min

    ReleaseQEMUCatalogReadiness

    Note Historical release record (0.3.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.3.0 replaces implicit catalog refreshes with explicit update commands, reports guest bootstrap failures per node, …

    Note Historical release record (0.3.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.3.0 replaces implicit catalog refreshes with explicit update commands, reports guest bootstrap failures per node, …

  • Barn 0.2.0: selected convergence and release integrity

    In Releases 351 words 2 min

    ReleaseQEMUNetworkingSupply Chain

    Note Historical release record (0.2.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.2.0 keeps the Pigsty inventory and on-disk deployment format introduced in 0.1.0 while fixing VPN route preflight …

    Note Historical release record (0.2.0). Old release downloads are retired; use the installation guide for the current release. Barn 0.2.0 keeps the Pigsty inventory and on-disk deployment format introduced in 0.1.0 while fixing VPN route preflight …

  • repo.yaml Is Intent; catalog.json Is Evidence

    In Design 833 words 4 min

    DesignImagesSupply ChainCatalog

    This essay explains the Linux image repository contract in Barn 1.1.0 (macOS guests manage Apple .ipsw restore images and APFS base images separately via barn mac). A static VM image repository needs two kinds of metadata: human policy decisions …

    This essay explains the Linux image repository contract in Barn 1.1.0 (macOS guests manage Apple .ipsw restore images and APFS base images separately via barn mac). A static VM image repository needs two kinds of metadata: human policy decisions …

  • A PID Is Not a Virtual Machine

    In Design 890 words 5 min

    DesignQMPRecoverySafety

    This essay explains Linux runtime process identity and crash recovery in Barn 1.1.0. The separate native Mac lifecycle uses per-machine operation locks and runner protocol 2. A pidfile records a process ID at the moment it was written. Minutes or …

    This essay explains Linux runtime process identity and crash recovery in Barn 1.1.0. The separate native Mac lifecycle uses per-machine operation locks and runner protocol 2. A pidfile records a process ID at the moment it was written. Minutes or …

  • Declarative Does Not Mean Destructive

    In Design 1118 words 6 min

    DesignLifecycleDriftSafety

    This essay explains the Linux VM convergence model in Barn 1.1.0 (macOS guests are managed independently). A declarative tool compares live state against a configuration file—but in daily development, that file might be temporarily edited for …

    This essay explains the Linux VM convergence model in Barn 1.1.0 (macOS guests are managed independently). A declarative tool compares live state against a configuration file—but in daily development, that file might be temporarily edited for …

  • Why Every Barn Node Has Two NICs

    In Design 890 words 5 min

    DesignNetworkingQEMUPigsty

    This essay explains the Linux lab network architecture in Barn 1.1.0 (macOS guests use independent per-VM vmnet NAT subnets). A Pigsty inventory identifies every database node by a stable IPv4 address: PostgreSQL streaming replication, Patroni/etcd …

    This essay explains the Linux lab network architecture in Barn 1.1.0 (macOS guests use independent per-VM vmnet NAT subnets). A Pigsty inventory identifies every database node by a stable IPv4 address: PostgreSQL streaming replication, Patroni/etcd …

  • Why Barn Has No Projects

    In Design 644 words 4 min

    DesignArchitectureinventoryState

    This essay explains the Linux lab deployment model in Barn 1.1.0 (macOS guests are managed as independent named VMs). Early prototypes of Barn treated every working directory as a separate project: a hidden directory marker identified the project, a …

    This essay explains the Linux lab deployment model in Barn 1.1.0 (macOS guests are managed as independent named VMs). Early prototypes of Barn treated every working directory as a separate project: a hidden directory marker identified the project, a …

  • RC6 development candidate: owner-scoped Tier-1 delivery

    In Releases 584 words 3 min

    DevelopmentRC6QEMUNetworking

    Note Pre-Barn historical archive (Piglet 1.0.0-rc.6, 2026-08-25). This candidate was a local verification milestone and was never published as a GitHub Release or package repository; the SHA-256 digests below record the retained local build …

    Note Pre-Barn historical archive (Piglet 1.0.0-rc.6, 2026-08-25). This candidate was a local verification milestone and was never published as a GitHub Release or package repository; the SHA-256 digests below record the retained local build …

  • Development snapshot: the Go 1.27 product surface

    In Releases 626 words 3 min

    DevelopmentPrototypeQEMUPigsty

    Note Pre-Barn historical archive (Piglet, 2026-08-24). At this snapshot there was no public release tag, signed production artifact, or package repository, and all embedded image records were marked testing. For current Barn behavior and support …

    Note Pre-Barn historical archive (Piglet, 2026-08-24). At this snapshot there was no public release tag, signed production artifact, or package repository, and all embedded image records were marked testing. For current Barn behavior and support …