Skip to content

fix: resolve install failures for tuckr, spectral, and bats helpers - #4

Merged
tomdavidson merged 14 commits into
mainfrom
fix/plugin-install-errors
May 11, 2026
Merged

fix: resolve install failures for tuckr, spectral, and bats helpers#4
tomdavidson merged 14 commits into
mainfrom
fix/plugin-install-errors

Conversation

@tomdavidson

Copy link
Copy Markdown
Owner

Fixes four plugins that were failing during smoke-install in CI.

tuckr

  • Added missing exe-path for all platforms — proto could not find the binary after download because no path was configured
  • Added aarch64 to [install.arch] mapping
  • Added missing [platform.macos] section

spectral

  • Added no-unpack = true — spectral ships as a single binary, not an archive, so proto was trying to unpack a file that needed no unpacking, leaving the binary unresolvable
  • exe-path already correctly uses {arch} template which resolves to the downloaded filename

bats-file, bats-support, bats-assert

  • Added no-bin = true to all three — these are shell libraries sourced via BATS_LIB_PATH, not executables. Proto was warning on every install that it could not create a symlink because there is no binary to link. They still install correctly; bats discovers them through the proto tools directory.

tomdavidson and others added 14 commits May 10, 2026 20:22
The smoke-test step runs from /tmp/proto-smoke (no plugins/ dir), so the
relative plugins/$id.toml lookup always failed — plugin_file stayed empty,
the no-bin branch never fired, and proto bin bats-assert blew up.

Fix: derive REPO_ROOT from the script's own path via $0 so the plugin
file lookup works regardless of cwd, both in CI and locally.

Also switch from positional-args-only to accept $TARGETS env var as
fallback so the CI env: block works without dirty coupling — args win
when provided, env var is the fallback, all-plugins is the last resort."
Proto auto-renames the downloaded binary to the tool name. The explicit
exe-path = "spectral-linux-{arch}" overrode that rename and pointed to
a filename that no longer exists, causing proto bin to fail with
missing_executable. no-unpack is also the wrong key; unpack = false is
the correct schema field (matching sops, dasel pattern).
The spectral bug was caused by following the old 'bare binary' example
which said to set exe-path. Proto auto-renames a bare binary to the tool
name after download, so exe-path must be omitted. unpack = false is also
the correct field (not no-unpack = true which is silently ignored).
Root-level no-bin is not a valid Schema field and is silently ignored,
so proto's linker still attempted symlinks and warned about missing
executables. InstallSchema.no_bin is the correct location.
@tomdavidson
tomdavidson merged commit cdfc9e0 into main May 11, 2026
1 check passed
@tomdavidson
tomdavidson deleted the fix/plugin-install-errors branch May 11, 2026 04:59
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