Skip to main content
October 2026

1.0.0

CLI

The first stable release of the Avocado CLI. It follows 1.0.0-rc.5 and is the build to install. Download it from peridio.com/downloads or the GitHub release.

Upgrading from a release candidate

  • Rebuild any multi-runtime OS bundle made with rc.4 or rc.5. Those bundles could carry the wrong build id, which made avocadoctl roll the update back with AVOCADO_OS_BUILD_ID mismatch (see Fixes).
  • The first install and build after the upgrade do some work once. The rootfs, initramfs and other sysroots reinstall once, images rebuild once, and every initramfs build id changes once.
  • On macOS, restart the avocado-vm once: avocado vm stop && avocado vm start. A running VM keeps the old settings until it restarts.
  • cli_requirement: "=1.0.0" now matches only 1.0.0, not the release candidates.

New

  • Add-on feeds by name. A distro.feeds entry that repos: does not define names an add-on the distro feed publishes for the target, such as distro.feeds: [ros2-jazzy], and needs no URL. It enables both the target half and the SDK half off the distro feed's settings. The CLI checks the name against what the target publishes before anything is locked, and suggests the nearest published name if it does not exist. See Package feeds.
  • boot_config and stock device-tree overlays. An extension can list boot_config lines (key=value, such as dtparam=i2c_arm=on) for settings an overlay source cannot express, and a device_tree_overlays entry may omit src to name an overlay the BSP already ships. Both can be scoped to one board with target-<name>:. A board that cannot deliver a declared setting fails the build at the start, naming what it does support. See Device tree overlays.
  • avocado config validate and avocado config schema. validate checks an avocado.yaml without building and reports every schema violation, loader error and ignored key. schema prints the JSON Schema the CLI uses.
  • Warnings for avocado.yaml keys the CLI ignores, with a "did you mean". A new project's avocado.yaml points editors at the schema, so they flag the same keys.
  • kernel.cmdline_extra reaches the kernel on FIT machines. It is written into the signed boot FIT, and setting it requires signing.fit_key or signing.fit_unsigned.
  • Git works on /opt/src in a linked git worktree inside the SDK container.
  • avocado provision --list shows each profile's inputs and how to pass them with --env.
  • SBOMs. avocado connect upload sends one SBOM per uploaded image; --no-sbom skips it, replacing AVOCADO_UPLOAD_NO_SBOM=1. avocado connect runtimes list shows each runtime's SBOM state.

Changed

  • New projects use the 2026 feed. avocado init defaults to release: 2026 on channel edge and the avocadolinux/sdk:2026 image.
  • Target package scriptlets run in OE's offline-install environment, so images carry what an OE build of the same packages has, and depmod runs after the rootfs and initramfs installs.
  • Builds through the avocado-vm on macOS are much faster. On one ROS 2 project, avocado install went from 23 to 5 minutes.
  • Install and build steps reuse one session container per command. Set AVOCADO_NO_SESSION_CONTAINER=1 to turn this off.
  • build and deploy warn when a plain avocado deploy will be rejected. In a Connect project whose server_key differs from the signing key, the image trusts the Connect server key for updates, so a locally signed deploy is refused on the device. build now says so and points to avocado deploy --connect-sign, or to setting server_key to the signing key's own public key for a sideload-capable image. A Connect project with no signing key (Level 0) gets an info line instead.

Fixes

  • OS updates from projects with two or more runtimes no longer roll back. Image stamps are now per runtime, and the bundle's build id comes from the image it ships. Regression in rc.4.
  • An exact version pin in avocado.yaml wins over a stale lock entry, and parallel extension installs no longer revert each other's lock entries.
  • avocado build -r <runtime> works right after a plain avocado install on a project with more than one runtime, and an empty extension sysroot is reinstalled instead of shipped as an empty image.
  • Files dropped from an overlay are removed from the image, and overlays no longer strip setuid and setgid bits from package files.
  • Images no longer enable the bare getty@.service template.
  • Rootfs verity. Turning it off no longer breaks i.MX builds, and turning it on with no initramfs fails the build instead of booting unverified.
  • Commands report failure. A failed sdk run command exits non-zero, provision fails when the SD card write is not confirmed, and deploy no longer hangs on a dropped link or reports a stale success.
  • The locked feed snapshot is used everywhere, by sdk dnf, sdk run, sdk compile, ext build and build, as it already was by install.
  • A project that switches to Connect Level 0 no longer ships its old trust anchor. A root.json from an earlier signed build stayed in the var image, so the device trusted that key instead of the one Connect delivers at claim time, and connect upload sent the earlier build's content delegation. Changing connect.org or connect.server_key now rebuilds the runtime.
  • Build hooks get the kernel the lock pins. AVOCADO_KERNEL_IMAGE and avocado kernel image used whichever staged kernel sorted first, so after a kernel pin moved, a hook such as a UKI rebuild could package an old kernel whose modules the rootfs does not carry. Hooks also get AVOCADO_KERNEL_VERSION. A build now fails if the pinned kernel is not staged while others are.
  • save, load, update and fetch run through the avocado-vm on macOS. They reached the local Docker daemon instead, so save archived an empty volume, load filled one no build used, fetch failed, and update reported success while the next avocado install skipped dnf. load also restores file owners, hardlinks and special files as saved.
  • Feeds under the avocado-vm. repos: feeds and loopback feed URLs work on macOS, and the per-run feeds directory, which can hold feed passwords, is removed when the CLI exits.
  • Smaller fixes. permissions: group membership and GIDs, clean -f on a volume that is already gone, git extension refs that are tags or commits, PREEMPT_RT kernel pins, erofs block size on the Pi 5, extension modprobe entries, projects with src_dir, and a kernel compile: section reached through a runtime's named kernel: reference.
  • Security. quinn-proto, rustls, rustls-webpki and webpki-root-certs bumped for RUSTSEC advisories.

The full record is in the CHANGELOG.