0.35.0
New features
Btrfs subvolumes for var partitions
Runtime var partitions can now declare btrfs subvolumes with per-path options for compression, quotas, NOCOW, and read-only state. Subvolumes may be declared at the extension level (where they travel with the extension) or at the runtime level (where they override extension-declared values).
extensions:
my-ext:
subvolumes:
lib/docker:
nodatacow: true
quota: '10G'
lib/myapp/cache: true
runtimes:
dev:
extensions: [my-ext]
var:
compression: 'zstd:3' # partition-wide default
subvolumes:
lib/docker:
writable: false # override: make it read-only
lib/avocado: true # built-in, declared here to suppress warnings
Subvolume config participates in the rebuild input hash, so adding, removing, or changing a subvolume triggers a proper rebuild of the var image. Short forms (true, false, "ro") are supported alongside the full object form, and conflict detection emits warnings for exact-path collisions between extensions and for nested subvolume paths that would leak quota isolation.
See Var partition configuration for the full option reference.
avocado connect clean
Removes Connect configuration from a project: strips the connect: section and avocado-ext-connect-config extension from avocado.yaml, and deletes the overlay/etc/avocado-conn/ directory. Useful when disconnecting a project from the Connect platform or resetting state for a fresh avocado connect init.
avocado connect clean # clean dev runtime (default)
avocado connect clean -r prod # clean a specific runtime
SDK version locking per host architecture
SDK package lock files now store full NEVRA versions per host architecture instead of stripping the .ARCH suffix. This gives exact package pinning per host arch and removes a reproducibility gap where x86-64 and aarch64 hosts could resolve to slightly different SDK packages from the same lock file.
Bug fixes
- Subvolumes are now created as read-write at
mkfs.btrfstime and flipped to read-only after properties are applied via loop mount, sincebtrfs property setrejects read-only subvolumes. - Compression is skipped on
nodatacowsubvolumes — NOCOW and transparent compression are mutually exclusive on btrfs (COW is required for compression). - Replaced the unsupported
mkfs.btrfs --inode-flagsflag with--compressat image creation time plus post-creation loop mount (chattr +Cfor NOCOW,btrfs property setfor per-subvolume compression and quotas).
Other
avocado init --referencenow resolves references against the standaloneavocado-linux/referencesrepository instead ofavocado-linux/avocado-os/references/.- Per-property echo output during subvolume post-creation setup makes the build log transparent about which properties (nodatacow, compression, quota, read-only) are being applied to which path.