Skip to content

Improve ballast-go release installer portability by removing shell tool assumptions #65

@markcallen

Description

@markcallen

Problem

ballast doctor --fix and ballast install-cli --language go currently install released ballast-go binaries by running a shell/PowerShell download and extract flow. On Unix this assumes sh, curl, tar, and install are available; on Windows it assumes PowerShell cmdlets are available.

That works in common environments, but it is brittle in minimal containers, restricted CI environments, or locked-down developer machines. Failures currently surface as generic install errors.

Goal

Make released ballast-go installs more portable and self-contained.

Recommended scope

  1. Reimplement the release download, checksum verification, archive extraction, and binary placement in Go.
  2. Keep OS/arch selection aligned with the published ballast-go_<version>_<os>_<arch> assets.
  3. Return clear actionable errors for unsupported platforms and verification failures.
  4. Add tests covering checksum verification and unsupported platform handling.

Notes

This was identified during PR #64 while fixing the broken Go backend install path used by ballast doctor --fix.

The immediate PR addresses checksum verification and docs, but leaves the shell-tool dependency as follow-up work to keep the fix scoped.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions