Repository navigation
Conversation
colima 0.8.1 creates VMs with Linux 6.8.0-50, which misreports SVE2 on Apple M4 and newer (see the kernel upgrade in `devenv colima start`). 0.10.3's image ships 6.8.0-117, which doesn't, so VMs created from now on are right from the start. It also gets new VMs a separate data disk for container data (colima 0.9), so recreating a VM no longer has to lose containers and volumes. colima 0.10 configures rosetta the way lima 2 expects (vmOpts.vz), so lima 1.0.3 would silently drop it. lima 2 only looks for its guest agents relative to limactl, in ../share/lima, so install upstream's release tarball as a prefix instead of plucking files out of a homebrew bottle; upstream builds support macOS 15, which devenv already requires. Also: - --cpu was renamed --cpus - pass --mount-inotify, which colima 0.10.2 turned off by default - the DNS fixer restarts dnsmasq on VMs created since colima 0.9, which replaced systemd-resolved with it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fixer picked dnsmasq only if it was running. But a crashed dnsmasq breaks DNS on colima >= 0.9 VMs, since colima points their resolv.conf at it. In that case the fixer restarted systemd-resolved instead, which leaves DNS broken but still reports success. Pick by whether dnsmasq is installed instead. That's what colima itself goes by when it decides to configure dnsmasq for a VM. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fake release in test_limactl wrote non-executable binaries, so shutil.which never found them. install_global() then reinstalled whatever the guest agents' state, and the test passed even with the check removed. Mark the binaries executable, and also cover a complete install, which must not be reinstalled. When only the guest agents are missing, install_global() printed "installed limactl 2.2.1 is unexpected!" for the version it expects. Name the missing directories instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vaind
force-pushed
the
ivan/bump-colima-0.10
branch
from
October 20, 2026 15:09
786221d to
c6b38f4
Compare
joshuarli
marked this pull request as ready for review
October 20, 2026 16:42
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
devenv pins colima 0.8.1, whose VM image runs Linux 6.8.0-50. On Apple M4/M5 that kernel tells containers they have SVE2, and they crash with SIGILL. #236 fixes existing VMs in place. This PR makes new VMs correct from the start.
colima 0.10.3's default image runs
6.8.0-117-generic(Ubuntu 24.04.4). On an M4 Pro it has nosve*/sme*hwcaps, andimport cryptography.hazmat.bindings._rustworks in an arm64 container.New VMs also get colima 0.9's separate data disk. Recreating a VM then no longer has to lose containers and volumes (
colima deletekeeps them unless you pass--data).Changes
.sha256sumassets.vmOpts.vz.rosetta, which only lima ≥ 2 understands. lima 1.0.3 drops it without an error.limactl, in../share/limaand../libexec/lima. So devenv now installs upstream's release tarball as a prefix under~/.local/share/sentry-devenv, instead of picking files out of a Homebrew Sonoma bottle. Those bottles were only needed while devenv supported macOS 14.uninstall()also removes the lima 1 layout frombin/.install_global()reinstalls if a guest agent directory is missing, the same lesson as fix(tenv): reinstall when a shim is missing #231.--cpu→--cpus.--cpuwas renamed in colima 0.8.2 and is still accepted as a hidden alias.--mount-inotifyis now passed explicitly. colima 0.10.2 turned it off by default, and this keeps new VMs consistent with existing ones.limaDnsfixer restartsdnsmasqon VMs whose image ships it, which colima ≥ 0.9 makes the resolver, andsystemd-resolvedotherwise. It checks that dnsmasq is installed rather than running, so a crashed dnsmasq gets restarted too.There is no automatic migration, and nothing is deleted. I tested it: I started a VM created by colima 0.8.1, holding a named volume, a container and pulled images, using these binaries and devenv's flags.
features.containerd-snapshotter: trueto/etc/docker/daemon.jsonon every start, so docker switches to the containerd image store. Afterwardsdocker imagesanddocker ps -awere empty.Open questions for DevInfra
devservices upre-pulling? Or should devenv keep existing VMs on overlay2 by settingdocker.features(buildkit only) in~/.colima/default/colima.yaml, given that colima has no flag for it? The containerd store is docker's default for new installs now.colima delete+devenv colima start) to get the data disk and drop the orphaned data?--mount-inotify. Does any repo still rely on file events reaching containers? If not, matching colima's new default (off) is cheaper.Testing
uv run pytest: 143 passed. New tests:tests/lib/test_limactl.pycovers the prefix layout, reinstalling over a previous install, removing the lima 1 layout, and reinstalling when a guest agent directory is missing but not when the install is complete.tests/checks/test_limaDns.pycovers which resolver gets restarted, including when dnsmasq is installed but not running.HOME:install_global()replaced a colima 0.8.1 + lima 1.0.3 install, downloading and checking both sha256s. Thendevenv colima startcreated a fresh VM. It runs kernel6.8.0-117-genericwith clean hwcaps. Rosetta works (--platform linux/amd64givesx86_64). It hasmountInotify: true, a 20 GiB root disk plus a 512 GiB data disk, and docker 29.5.2.devenv doctorpasses, and thelimaDnsfix worked on the dnsmasq VM. That run used an earliersystemctl is-activeprobe. Thesystemctl cat dnsmasq.serviceprobe that replaced it picks systemd-resolved on a colima 0.8.1 VM, but hasn't been re-run on a dnsmasq VM yet.🤖 Generated with Claude Code