Skip to content

v0.9.1 — every install path actually works

Choose a tag to compare

@vonzelle-vzt vonzelle-vzt released this 30 Jul 06:58
· 46 commits to main since this release

A correctness release. v0.9.0 shipped with three broken install paths, and none of them was reachable from a development checkout — which is the only way this package had ever been run.

Fixed

  • 🔴 The editor never installed on a fresh machine. install_deps tapped cloudmanic/spice-edit — upstream, which ships spice-edit.rb only — while installing vonzelle-vzt/herdr-edit/herdr-edit from a tap it never added. Skipped entirely whenever an editor is already present, so it failed only on machines that had never worked.
  • 🔴 brew install had no formula to install. The README documented brew tap + brew install while there was no Formula/ directory. The tap succeeded; the install failed with "No available formula or cask".
  • 🔴 Neither install path could find its own files. REPO used abspath(__file__), which does not follow symlinks — and both paths put a symlink on PATH (install.sh does ln -sf, the formula links out of libexec). Every command needing a package file died with package file missing: <symlink dir>/plugin/herdr-plugin.toml.

version kept working throughout all three, because it needs no package files. That is precisely why running ./bin/herdr-extensions from a checkout never revealed any of it.

Added

  • doctor warns when the editor on PATH is behind the tap. A source-built editor never updates itself, while every push to the fork's main auto-tags a release — so the two drift silently, with the stale binary still first on PATH and still reporting success. The check reads the tapped formula on disk, so it stays offline; no tap means no check.

Verification

./tests/live-check.sh20 checks, 0 failures, delegating to six offline suites. New oracle 25 (tests/check-deps.sh, 5 checks) pins tap/install agreement and invocation through a symlink, mutation-verified by restoring both bugs.

Both install paths were then run end to end: brew audit --strict --online clean, brew fetch checksum verified, brew install + brew test passing with install --dry-run exit 0 from the keg, and the curl path cloning and linking with exit 0.