Skip to content

Stop bundling a Node tarball now that Omarchy installs Node lazily - #290

Merged
ryanrhughes merged 2 commits into
quattrofrom
lazy-node
Oct 20, 2026
Merged

ryanrhughes merged 2 commits into
quattrofrom
lazy-node

Conversation

@ryanrhughes

@ryanrhughes ryanrhughes commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

omacom/omarchy#15876 made Node a lazy mise tool, so an Omarchy runtime from it on never reads the Node tarball the ISO bundles. The build now bundles Node only for a runtime that still needs it, and the installer no longer requires it:

  • build-iso.sh reads the bundled runtime's install/user/mise-work.sh, the same way it reads setup-form.sh, and downloads Node into /opt/packages only when that script still unpacks the tarball. Stable 4.0.6 does, and its setup stops the install without one ("bundled Node.js tarball missing"). quattro from #15876 on doesn't, so edge and --local-source builds carry no Node. Once stable has #15876 this never runs, and the block and node-release.sh can go.
  • The installer bind-mounts /opt/packages only when the ISO has it.
  • stage_provisioning_state stops copying the tarball into /var/lib/omarchy/provisioning/packages, which raised on any install without one, and _validate_provisioning_state stops refusing a deferred-provisioning install with no tarball staged. An older runtime's first-boot setup and factory reset fall back to the network for Node without failing.
  • test/arm64-install accepts either: Node waiting for its first use, or the ISO's Node for aarch64.

Tests: an ISO built from this branch's first commit with --local-source on #15876, run in a VM and compared with an ISO built without either change.

Run Result Same without these changes
Normal install + acceptance suite 218 ok, 5 not ok Yes
--provision first boot Setup completes with no warnings; 171 ok, 6 not ok Yes
test/integration factory-reset The reset and its first boot complete; setup has no warnings Yes

That ISO had no /opt, and installs left /var/lib/omarchy/provisioning empty. The install test here covers the other path: x86_64 builds from stable, whose runtime still needs the tarball. The unit tests pass; nightly-test.sh fails only under an en_US locale, as it does without this change.

The factory-reset scenario fails on quattro for two unrelated reasons: under sudo the reset prompt is blank, because OMARCHY_PATH isn't exported and omarchy-i18n aborts, and staging drops the fixture's Windows and foreign Linux entries. For the run above, the scenario passed OMARCHY_PATH through sudo and went on past the dual-boot checks.

@github-actions

github-actions Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Install test passed

x86_64 vs quattro aarch64 vs quattro
Result ✅ passed ✅ passed
Build the ISO 112.0 s −27.0 s 213.0 s −29.0 s
Install 82.0 s −24.9 s 117.3 s −17.1 s
First boot 13.1 s −2.8 s 6.2 s −0.3 s
Everyday boot 14.2 s −0.8 s 5.1 s −0.3 s

Boots are loader, kernel and userspace, without the VM's firmware.

Install phases, x86_64
Phase This PR quattro
Preparing live environment 0.2 s 0.2 s
Preparing install target 0 s 0 s
Installing Arch + Omarchy 67.4 s 87.9 s
Configuring hibernation 0.3 s 0.4 s
Configuring system 2.3 s 3.3 s
Staging provisioning 0 s 0.3 s
Finalizing Limine boot 8.4 s 10.8 s
Finalizing user 3.2 s 3.7 s
Configuring login 0.1 s 0.1 s
Configuring SSH access 0.2 s 0.3 s
Configuring Tailscale 0 s 0 s
Configuring DNS resolver 0 s 0 s
Validating boot setup 0 s 0 s
Creating factory snapshot 0 s 0.1 s
Install phases, aarch64
Phase This PR quattro
Preparing live environment 0.1 s 0.1 s
Preparing install target 0 s 0 s
Installing Arch + Omarchy 102.6 s 115.7 s
Configuring hibernation 0 s 0 s
Configuring system 3.8 s 5.3 s
Staging provisioning 0 s 0.1 s
Finalizing Limine boot 6.8 s 8.4 s
Finalizing user 3.5 s 4.3 s
Configuring login 0.1 s 0.1 s
Configuring SSH access 0.2 s 0.2 s
Configuring Tailscale 0 s 0 s
Configuring DNS resolver 0 s 0 s
Validating boot setup 0.1 s 0.1 s
Creating factory snapshot 0.1 s 0.1 s

Run · 380a611

@ryanrhughes
ryanrhughes marked this pull request as ready for review October 20, 2026 03:56
@ryanrhughes
ryanrhughes merged commit 3972e41 into quattro Oct 20, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant