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

> Resource overrides, recoverable root-disk growth, configurable concurrency, inventory host names, and Go 1.27.4.

---

LLMS index: [llms.txt](/llms.txt)

---

[Barn 1.2.0](https://github.com/pgsty/barn/releases/tag/v1.2.0) was released on **2026-11-12** from commit [`90f6158`](https://github.com/pgsty/barn/commit/90f615804b823b4eb491101e642073dcd37a9700). It adds resource overrides, recoverable root-disk growth, configurable lifecycle concurrency, and inventory-based host names. The bilingual [command reference](/docs/reference/commands/) covers all 57 operation commands and their options.

## Upgrade from 1.1.0 {#upgrade-from-110}

Omitted Linux CPU/memory values now resolve to **1 vCPU / 2 GiB**, down from 2 vCPUs / 4 GiB. This also affects existing inventories that omit these fields. To preserve the earlier defaults, set `vm_cpu: 2` and `vm_mem: 4GiB` under `all.vars`, retain any per-host overrides, and inspect `barn plan` before applying changes. Existing applied VMs keep their resources until a resource-changing operation is requested. Root and data-disk defaults remain 64 GiB and 128 GiB.

## VM resources {#vm-resources}

Use `--cpu/-C`, `--mem/-M`, `--scale/-S`, and `--disk/-D` alongside image and architecture selection. Corresponding `BARN_*` environment variables provide defaults; command-line values take precedence. Generated inventories save the base settings. Plans, validation, status, and lifecycle output display effective resources as `SPEC` labels such as `1c2g`; JSON retains numeric resources, bases, scale, and input sources.

`resize --disk/-D` grows an existing root disk. Barn stops QEMU before enlarging the disk, verifies its last plain ext4/XFS partition inside the guest, and records recovery stages so an interrupted operation can resume. It preserves VM identity, keys, and data and restores the original running/stopped intent. Shrinking and unsupported layouts are rejected. See [root growth and recovery](/docs/reference/cli/#root-disk-growth).

## Lifecycle concurrency {#lifecycle-concurrency}

`--parallel/-p` controls node concurrency for `up`, `start`, `stop`, `restart`, `reload`, `recreate`, `destroy`, and `purge`. The default is the logical CPU count minus two, with a minimum of one. Zero runs all selected nodes concurrently; a positive value sets the limit. Retry commands preserve explicit overrides.

## Inventory host names {#inventory-host-names}

Declare service names in `all.vars.vm_hosts`, preview with `barn hosts install -f pigsty.yml --json`, and apply with `barn hosts install -f pigsty.yml --yes`. The inventory path works before VM creation; omitting `-f` continues to use applied node names. Identical mappings merge case-insensitively; conflicting addresses fail. These host-side mappings leave VM identity and guest configuration unchanged. See [extra host mappings](/docs/reference/configuration/#local-hosts).

## Dependencies and packaging {#dependencies-and-packaging}

Source builds, CI, and release artifacts use Go **1.27.4**. The dependency refresh updates `golang.org/x/sys` to 0.50.0, `golang.org/x/term` to 0.48.0, `golang.org/x/text` to 0.44.0, and `github.com/klauspost/compress` to 1.20.4. Packaging uses GoReleaser 2.20.1, bundled nFPM 2.48.0, and Syft 1.57.1. RPM payload verification now requires `SOURCE_DATE_EPOCH` timestamps. Pins and license inventories are recorded in the release source.

`govulncheck` found no vulnerabilities in imported packages or reachable symbols. Its module-level report lists [GO-2026-5932](https://pkg.go.dev/vuln/GO-2026-5932) in `golang.org/x/crypto/openpgp`, which Barn does not import.

## Image catalog {#image-catalog}

The embedded signed catalog remains revision `2026110502`, with 9 distribution families and 17 architecture-specific stable artifacts. Both official repositories passed signature verification, activation in fresh data roots, embedded-byte comparison, and availability/size checks. Ubuntu 24.04 on the native architecture remains the default image.

## Release validation {#local-validation}

The [release validation record](/blog/design/release-1-2-0-readiness/) records source and packaging CI, Developer ID signing and notarization, artifact checks, Linux/KVM root-growth recovery, the native Mac lifecycle, and the published 1.1.0 upgrade test. Historical candidate runs retain their original version and scope.

## Install or build {#build-the-candidate}

Stop running Mac VMs before replacing `Barn.app`, then upgrade through Homebrew:

```bash
brew update
brew upgrade pgsty/infra/barn
```

Or install the versioned release:

```bash
curl -fLO https://github.com/pgsty/barn/releases/download/v1.2.0/install.sh
BARN_VERSION=1.2.0 bash install.sh
barn version
```

The installer verifies archive SHA-256. The Darwin arm64 archive includes the signed, notarized CLI, helper, and `Barn.app`; other archives and Linux DEB/RPM packages contain the CLI and matching helper. See [installation](/docs/start/installation/) and [source builds](/docs/start/source-build/).
