Skip to content

Releases: kwmx/virmill

Virmill 1.0.0-beta.6 (owner-test pre-release)

Choose a tag to compare

@kwmx kwmx released this 16 Sep 17:36

Owner-test pre-release. This is not a certified Virmill 1.0. 2 of the 71
acceptance scenarios are accepted, and the project's release gate still blocks
1.0. The packages are unsigned. Install it only on a disposable host, with images
you're allowed to use, and never run the CLI or TUI as root.

Built from 3e24ce8f41a3674e48e3ca9b835c167002fd0d34 with the pinned Go 1.27.1
toolchain and vendored dependencies, offline.

What's new since beta.5

This release is about the most important thing: getting from an image to a VM
you can use.

  • New VM. Press n (or choose New VM) and pick an ISO, a disk image or
    an OVA. Virmill reads it and shows one page: name, CPU, memory, the
    installer's disk size, and Start it and open its display, which is on.
    Press Enter on Create VM, read one confirmation, press Enter again. That's
    it. Everything else is under Advanced settings, and Esc asks before it
    throws your settings away.
  • No more "no storage pool" dead end. If there's no usable pool, the same
    confirmation sets up libvirt's standard pool first, or starts a stopped one.
    On a host with several pools, the one that starts with the host (or the one
    with the most free space) is picked and shown.
  • Progress on the same screen, one line per step, until the VM is running.
  • The display opens by itself when the VM starts, in its own window, and
    Virmill stays usable while it's open. To open it again, press v on a
    running VM, or choose Display. If the viewer can't attach, it says why.
  • One plain confirmation for every change. No more checkbox per item or
    raw identifiers: it lists what you agree to in plain words. d shows the
    technical plan.
  • Your own VMs start without a manual libvirt step. The packages ship a
    per-user libvirt socket that starts with Virmill's coordinator.
  • The installer disk defaults to a size that fits your free space, and a
    refused preview is shown on the page instead of disappearing.

From a host with nothing set up, a disk image took 72 keypresses and two
reviews in beta.5. It now takes three keypresses after choosing the file.

See CHANGELOG.md.

Install

Check the downloads first:

sha256sum -c SHA256SUMS

Fedora:

sudo dnf install ./virmill-1.0.0-0.beta.6.x86_64.rpm

Debian/Ubuntu:

sudo apt install ./virmill_1.0.0.beta.6_amd64.deb

If you already run beta.4 or beta.5, virmill update installs this one for you.
After upgrading, restart the coordinator once so it picks up the new libvirt
socket: systemctl --user restart virmilld.service.

GitHub doesn't allow ~ in download names, so the DEB files here use . instead.
The package version inside is still 1.0.0~beta.6.

What is tested, and what is not

On a disposable Fedora 44 test VM, through the installed packages:

  • New VM from a disk image, an ISO and an OVA, each reaching a running VM with
    its viewer open in three keypresses and one confirmation: on your own session
    connection starting with no storage pool, and on the system connection with
    several pools and the default network. Screenshots showed each viewer window
    drawing the VM's screen.
  • VMs starting on the session connection after libvirt's own idle exit, with no
    manual step.
  • An RPM upgrade from beta.5, and DEB installation in Debian 13 and Ubuntu 24.04
    containers.

Not yet tested: the system connection with no storage pool, a real desktop (the
viewer ran on a virtual display), and appliances whose network adapters need a
network on a host that has none.

Known problem: removing a VM together with its disks no longer refuses just
because other VMs use disk files outside storage pools. But on a system
connection where pool images are readable only by root or qemu (common), it
still refuses, now with "permission denied". Removing the VM while keeping its
disks works. No guest operating system, physical hardware or real
Debian/Ubuntu host is qualified by these results.

Virmill 1.0.0-beta.5 (owner-test pre-release)

Choose a tag to compare

@kwmx kwmx released this 16 Sep 11:27

Owner-test pre-release. This is not a certified Virmill 1.0. 2 of the 71
acceptance scenarios are accepted, and the project's release gate still blocks
1.0. The packages are unsigned. Install it only on a disposable host, with images
you're allowed to use, and never run the CLI or TUI as root.

Built from cdcd0958f5f3a92ce395f680a70f4580a3068187 with the pinned Go 1.27.1
toolchain and vendored dependencies, offline.

What's new since beta.4

This is the everyday VM lifecycle release: the things you do to a VM after it
exists.

  • Power actions you can rely on. Start, graceful stop, force off, restart,
    pause, resume, save and restore, on both your own session and the system
    connection. Force off is in the TUI, and it works on a paused VM too.
    When a guest ignores a shutdown request — because it has no operating system,
    or just ignores the power button — the job now says so after 60 seconds and
    leaves the VM free, instead of holding it while nothing happens.
  • Change CPU and memory while a VM runs. The change is saved for the next
    boot; the running VM keeps what it has until you shut it down. Unknown parts
    of a VM's definition are preserved.
  • Grow a disk. Make a stopped VM's disk larger, on a file or a pool volume.
    Partitions inside the guest keep their size — extend them there.
  • Add a disk. Give a stopped VM one more empty disk in its own pool, at the
    next free target on the bus its disks already use. If an addition stops part
    way, Close disk addition finishes it: keep the new disk, or delete the
    unused volume. Nothing is left holding the VM.
  • Move a disk to another pool. The disk is copied, checked against the
    original byte for byte, and only then does the VM start using the copy; the
    original is deleted unless you keep it. The guest sees the same disk in the
    same place.
  • Remove a VM Virmill made, or a UEFI VM. The definition goes and the disks
    stay, together with a UEFI VM's firmware settings file and an emulated TPM's
    state.

Two ways a VM could get stuck, now fixed

  • A boot that never reached the guest used to leave the VM locked by a job that
    could not be resolved — so you could not even force it off. A boot that
    provably did nothing now fails plainly and frees the VM.
  • On a host where nothing has started libvirt for your own user, the coordinator
    would start it itself, and that copy can never launch QEMU, so every start
    failed with a bare permission error. Virmill now says so before making a plan,
    with the one command that fixes it, and virmill doctor reports the same
    thing.

See CHANGELOG.md.

Install

Check the downloads first:

sha256sum -c SHA256SUMS

Fedora:

sudo dnf install ./virmill-1.0.0-0.beta.5.x86_64.rpm

Debian/Ubuntu:

sudo apt install ./virmill_1.0.0.beta.5_amd64.deb

If you already run beta.4, virmill update installs this one for you.

GitHub doesn't allow ~ in download names, so the DEB files here use . instead.
The package version inside is still 1.0.0~beta.5.

What is tested, and what is not

Everything above was run on a disposable Fedora 44 test VM through the installed
packages, and each run is recorded in docs/evidence. Disk add and move are
qualified on your own session connection only, not yet on the system
connection, and moving a booted guest's own boot disk is untested. Full clones,
live CPU and memory changes, console access and autostart across a host restart
are not done yet. No guest operating system, physical hardware or real
Debian/Ubuntu host is qualified by these results.

Virmill 1.0.0-beta.4 (owner-test pre-release)

Choose a tag to compare

@kwmx kwmx released this 14 Sep 08:27

Owner-test pre-release. This is not a certified Virmill 1.0. 2 of the 71
acceptance scenarios are accepted, and the project's release gate still blocks
1.0. The packages are unsigned. Install it only on a disposable host, with images
you're allowed to use, and never run the CLI or TUI as root.

Built from f6a2c9a98bfcc272765ca93f99fd4f40ffc1607b with the pinned Go 1.27.1
toolchain and vendored dependencies, offline.

What's new since beta.3

  • virmill update. Virmill checks GitHub for a newer release at most once a
    day and tells you in the TUI and after interactive commands. virmill update
    downloads the RPM or DEB packages you use, checks them against the release's
    SHA256SUMS and their own package name and version, installs them with dnf or
    apt (which asks for your password) and restarts your coordinator. It refuses
    while jobs are running. Turn the daily check off with virmill update checks off.
    This is the first beta with the updater: install it by hand once, and later
    betas can be installed with virmill update.
  • A simpler TUI.
    • The header shows the page, running or failed jobs and the connection.
    • One line lists the keys for the current page, and buttons wrap instead of
      hiding.
    • The Overview is a home screen: VMs, storage, whether the host is ready, jobs
      and the last job.
    • Lists show CPU and RAM for VMs, network type and address, pool size and
      free space, and jobs by task and VM instead of an ID.
    • Network and storage details are written in plain language, and x shows
      libvirt XML as XML.
    • Settings shows the host check with install commands.
    • Menus offer only the power actions the VM's state allows, and Help is
      grouped by task.
    • Unfinished sections are labeled.
  • A readable virmill doctor that lists what is missing and gives the exact
    dnf or apt command to install it.
  • Stripped binaries, about a third smaller.

See CHANGELOG.md.

Install

Check the downloads first:

sha256sum -c SHA256SUMS

Fedora:

sudo dnf install ./virmill-1.0.0-0.beta.4.x86_64.rpm

Debian/Ubuntu:

sudo apt install ./virmill_1.0.0.beta.4_amd64.deb

GitHub doesn't allow ~ in download names, so the DEB files here use . instead.
The package version inside is still 1.0.0~beta.4.

The virmill-host-helper packages hold the privileged helper. Install one only when
a workflow needs it. Installing it grants no permissions; an administrator has to
set up its policy separately.

Then, as your normal user:

systemctl --user daemon-reload
systemctl --user start virmilld.service
virmill doctor
virmill

If you're upgrading from beta.3, stop virmilld.service before installing and start
it again afterwards. The beta guide
walks through a test sequence, and updates
explains the updater.

Tested for this release

  • Fedora 44 test VM, upgraded in place from beta.3: the installed binaries match
    this build, CLI inventory commands work, and the TUI starts and exits at 80×24.
    Existing guests, networks, source media and helper policy were unchanged.
  • TUI walkthroughs on that VM: VM filtering, details and task menus at 80×24 and
    120×36, network creation forms (each matched its CLI plan), Jobs → Activity,
    and source detection for qcow2, raw, VMDK, VDI, VHD, VHDX, ISO and folder
    sources. The installed beta.4 checked GitHub and found no newer release.
    CPU/RAM edits, automatic startup and disk removal through the redesigned menus
    passed on a pre-release build of the same TUI.
  • The updater, on the same VM: a test build labelled 1.0.0-beta.2 ran
    virmill update, which downloaded the published beta.3 RPMs from GitHub,
    verified them, installed them through dnf and restarted the coordinator.
  • Debian 13 and Ubuntu 24.04 containers: both DEBs pass dpkg's archive checks,
    install with apt, verify, run virmill version as a normal user, and purge
    without leaving files behind. lintian reports no errors.
  • Full Go test suite, vet and package integration tests. Two clean builds of this
    commit produced byte-identical binaries and packages, matching the files
    attached here.

These checks used generated test images and containers. They don't certify any
guest operating system, physical hardware, or a real Debian/Ubuntu host.

Known limitations

  • Not available yet: UEFI/TPM restore, restores that keep the original VM identity,
    and snapshot revert.
  • Not available yet: lab apply/teardown, physical bridges, Wi-Fi bridging, port
    forwards, USB/PCI device attachment, and IPv6 networking.
  • Backups can't be scheduled and have no retention yet. Local captures are not
    encrypted; use the encrypted backup repository workflow instead.
  • Packages are unsigned, and no guest OS family is certified. The DEBs were tested
    in containers only.
  • The updater checks downloads against the release's SHA256SUMS. That catches
    damaged files but not a tampered release, because the checksums come from the
    same place. Its apt path is covered by tests but has not updated a real
    Debian or Ubuntu host yet.

Full list: beta guide, incomplete workflows
and the requirements tracker.

SHA-256

File SHA-256
virmill-1.0.0-0.beta.4.x86_64.rpm 1081f117391876d8e659433fd584ad4b984024cab59b31baea5318d162799838
virmill-host-helper-1.0.0-0.beta.4.x86_64.rpm 057e9a59d52f40c397023b9525c53f3a8d1630d2c0e8921e394d4f7d4f9cca83
virmill_1.0.0.beta.4_amd64.deb b07d74af941433977c2f5c9af26398d1f7b10a8a665f41caa42ed0bbd481d052
virmill-host-helper_1.0.0.beta.4_amd64.deb 003b70716a3f0d2912dc5eb536c2e70f0f79c8065512dc987a526c8a78d7b385
virmill-1.0.0-beta.4-source.tar.gz 86d06bc20b878ae257ac516a0faa7e19187b7c6bfc3583ec9badd52aa1717fb3

Virmill 1.0.0-beta.3 (owner-test pre-release)

Choose a tag to compare

@kwmx kwmx released this 13 Sep 19:55

Owner-test pre-release. This is not a certified Virmill 1.0. 2 of the 71
acceptance scenarios are accepted, and the project's release gate still blocks
1.0. The packages are unsigned. Install it only on a disposable host, with images
you're allowed to use, and never run the CLI or TUI as root.

Built from 0627800b70d6e04e826df72d7dc0e257c1c0d7df with the pinned Go 1.27.1
toolchain and vendored dependencies, offline.

What's new since beta.2

  • The DEBs now install on Debian and Ubuntu. The beta.2 DEBs could not be
    installed: dpkg stopped because the packages didn't list their directories.
    The new DEBs also include a copyright file, a changelog, file checksums, a
    maintainer address and a full description.
  • Pressing Esc on an unused Import started from the VM list (i) now takes you
    back to the list instead of leaving the VM's More tasks menu open.

See CHANGELOG.md.

Install

Check the downloads first:

sha256sum -c SHA256SUMS

Fedora:

sudo dnf install ./virmill-1.0.0-0.beta.3.x86_64.rpm

Debian/Ubuntu:

sudo apt install ./virmill_1.0.0.beta.3_amd64.deb

GitHub doesn't allow ~ in download names, so the DEB files here use . instead.
The package version inside is still 1.0.0~beta.3.

The virmill-host-helper packages hold the privileged helper. Install one only when
a workflow needs it. Installing it grants no permissions; an administrator has to
set up its policy separately.

Then, as your normal user:

systemctl --user daemon-reload
systemctl --user start virmilld.service
virmill doctor
virmill

If you're upgrading from beta.2, stop virmilld.service before installing and start
it again afterwards. The beta guide
walks through a test sequence.

Tested for this release

  • Fedora 44 test VM, upgraded in place from beta.2: the installed binaries match
    this build, CLI inventory commands work, and the TUI starts and exits at 80×24.
    Existing guests, networks, source media and helper policy were unchanged.
  • TUI walkthroughs on that VM: VM filtering and details, the CPU/RAM screen, a
    start review (not applied), task menus, the Import file browser and the new Esc
    behavior, network creation forms (each matched its CLI plan), Jobs → Activity, and
    source detection for qcow2, raw, VMDK, VDI, VHD, VHDX, ISO and folder sources.
  • Debian 13 and Ubuntu 24.04 containers: both DEBs pass dpkg's archive checks,
    install with apt, verify, run virmill version as a normal user, and purge
    without leaving files behind.
  • Full Go test suite, vet and package integration tests. Two clean builds of this
    commit produced byte-identical binaries and packages, matching the files
    attached here.

These checks used generated test images and containers. They don't certify any
guest operating system, physical hardware, or a real Debian/Ubuntu host.

Known limitations

  • Not available yet: UEFI/TPM restore, restores that keep the original VM identity,
    and snapshot revert.
  • Not available yet: lab apply/teardown, physical bridges, Wi-Fi bridging, port
    forwards, USB/PCI device attachment, and IPv6 networking.
  • Backups can't be scheduled and have no retention yet. Local captures are not
    encrypted; use the encrypted backup repository workflow instead.
  • Packages are unsigned, and no guest OS family is certified. The DEBs were tested
    in containers only. The programs keep their debug symbols, which Debian's lintian
    reports as an error.

Full list: beta guide, incomplete workflows
and the requirements tracker.

SHA-256

File SHA-256
virmill-1.0.0-0.beta.3.x86_64.rpm fa75f7658731b3087aab1762833dec644204d8039d8a4003929982e55b9ecfae
virmill-host-helper-1.0.0-0.beta.3.x86_64.rpm fe3a154d8b50cd31db47876de1c51c854b988bc3457fb73e7f7e802295c41986
virmill_1.0.0.beta.3_amd64.deb 8c0d005b6eddef4dda9e6ace1305edb3aa648835d19e09025faff8de355e32ea
virmill-host-helper_1.0.0.beta.3_amd64.deb 0707956630e810902968aa2a71a3d51b2051f00c6c6104e3d5b2f36b3f14eae0
virmill-1.0.0-beta.3-source.tar.gz e8fff234771fd97ff2f3973ea3702cc36b9698d7653da0441690f3e5b93453af

Virmill 1.0.0-beta.2 (owner-test pre-release)

Choose a tag to compare

@kwmx kwmx released this 13 Sep 15:16

Owner-test pre-release. This is not a certified Virmill 1.0. 2 of the 71
acceptance scenarios are accepted, and the project's release gate still blocks
1.0. The packages are unsigned. Install it only on a disposable host, with images
you're allowed to use, and never run the CLI or TUI as root.

Built from b327d7bdef5e3c159fcfea1df1cc346e603837d9 with the pinned Go 1.27.1
toolchain and vendored dependencies, offline.

What's new since beta.1

  • The TUI is now a resource workspace, with visible action buttons, grouped task
    menus, keyboard action search and a local file browser.
  • Import: settings export, a review of appliance metadata before preparation,
    cancellable checks for large images, and setup drafts you can resume later.
  • Guided VM setup covers CPU/RAM, firmware, disks, boot order and networks. You can
    create or refresh a network without leaving setup.
  • New graphical guests use a private local SPICE display when the host supports it.
    Serial console access works from a plain terminal.
  • Guest tools setup, guest integration channel edits and backup receipt recovery,
    each behind a review step.
  • Guided network creation for NAT, isolated lab and guest-only networks.
  • VM management: current CPU/RAM values are shown before you edit them, autostart
    can be toggled, and removing a VM keeps its disks unless you pick specific disks
    to delete (vm remove --delete-disk, or the per-disk choices in the TUI).
  • Jobs → Activity shows full event messages with paging. Completed jobs can open
    their VM.

See CHANGELOG.md.

Install

Check the downloads first:

sha256sum -c SHA256SUMS

Fedora:

sudo dnf install ./virmill-1.0.0-0.beta.2.x86_64.rpm

Debian/Ubuntu (built on Fedora; not yet tested on Debian or Ubuntu):

sudo apt install ./virmill_1.0.0.beta.2_amd64.deb

GitHub doesn't allow ~ in download names, so the DEB files here use . instead.
The package version inside is still 1.0.0~beta.2.

The virmill-host-helper packages hold the privileged helper. Install one only when
a workflow needs it. Installing it grants no permissions; an administrator has to
set up its policy separately.

Then, as your normal user:

systemctl --user daemon-reload
systemctl --user start virmilld.service
virmill doctor
virmill

Every change is planned first, and nothing happens until you review and apply that
plan. The beta guide
walks through a test sequence.

Tested for this release

Tested on one Fedora 44 test VM (libvirt 12.0.0, QEMU 10.2.2), upgraded in place
from beta.1:

  • Package upgrade of core and helper: the installed binaries match this build,
    CLI inventory commands work, and the TUI starts and exits at 80×24. Existing
    guests, networks, source media and helper policy were unchanged afterwards.
  • Network creation forms (NAT, lab, guest-only): each TUI preview matched the
    equivalent CLI plan, and nothing was applied.
  • Jobs → Activity: opening, refreshing and returning to a job.
  • End to end: a generated ISO was prepared, a VM was created from it and started,
    and the check read its boot marker over the serial console. The VM was found
    from the TUI's console view, and a SPICE viewer connected to it on a virtual
    desktop.
  • TUI walkthroughs at 80×24 and 120×36: VM filtering and details, the CPU/RAM
    screen, a start review and its confirmation (not applied), task menus, and the
    Import file browser.
  • Source detection for qcow2, raw, VMDK, VDI, VHD, VHDX, ISO and folder sources,
    including the review screen and the guest tools form.
  • Full Go test suite, vet and package integration tests. Two clean builds of this
    commit produced byte-identical binaries and packages, matching the files
    attached here.

These checks used generated test images. They don't certify any guest operating
system, physical hardware, or Linux distribution besides this Fedora setup.

Known limitations

  • Not available yet: UEFI/TPM restore, restores that keep the original VM identity,
    and snapshot revert.
  • Not available yet: lab apply/teardown, physical bridges, Wi-Fi bridging, port
    forwards, USB/PCI device attachment, and IPv6 networking.
  • Backups can't be scheduled and have no retention yet. Local captures are not
    encrypted; use the encrypted backup repository workflow instead.
  • Packages are unsigned, the DEBs are untested on Debian/Ubuntu, and no guest OS
    family is certified.

Full list: beta guide, incomplete workflows
and the requirements tracker.

SHA-256

File SHA-256
virmill-1.0.0-0.beta.2.x86_64.rpm 752dd92f7967e17e45a780516713d4de4cb859b0e86e1e9b655e4c36ab84b7ae
virmill-host-helper-1.0.0-0.beta.2.x86_64.rpm d549501656ed422a4d3e453f059fe6dbc728fdfbf4100db25c5108acd1c2f030
virmill_1.0.0.beta.2_amd64.deb e898a5603d4b7bdbc7459b5ebd7e90648ff789ea1085c830182cf139ddaeffbf
virmill-host-helper_1.0.0.beta.2_amd64.deb 439afc1d9e03ff9efddbe8efda205d2a1dd0d9427901ded01d1c25d05f03b1e5
virmill-1.0.0-beta.2-source.tar.gz a5d774303ab07539ca5c64a58dc969398dc098d78eb21a4848a6c5c82a46a55c