Skip to content

hu release: the aarch64 Linux tarball ships without ever being executed #327

Description

@YuanYuYuan

The hu release publishes hu-<version>-aarch64-unknown-linux-gnu.tar.gz. No job has ever executed the binary inside it.

Split out of #309, which is closed. G1, G2 and G3 are fixed; this is the residual.

What is and is not covered

Covered by
it cross-compiles hu cross-compiles for aarch64 Linux in ci.yml, on every pull request
it packages into a tarball the same job
the binary starts, and hu plugin list finds its plugins nothing

Both the CI job and the release workflow say so in their own comments:

Deliberately build-and-package only, no execution: qemu-user is expensive to provision (it killed a whole job while still realizing) and running the binary is a separate question from whether the release artifact can be produced.

The aarch64-linux tarball has no leg here because no GitHub-hosted runner can execute it; it stays unexercised by this workflow, deliberately and visibly.

The other two published targets do have an execution leg. smoke-test-binaries installs from the published release on ubuntu-latest and macos-latest, asserts hu --version, and asserts hu plugin list shows meter and monitor. aarch64-unknown-linux-gnu has no equivalent.

What could go wrong

hu links wasmtime, rusqlite's bundled C, ring's assembly and axum. A cross-compile proves each object builds for the target. It does not prove the linked binary starts, that wasmtime's JIT works there, or that plugin discovery resolves the right paths. An ARM Linux user would be the first to find out.

v0.2.0 shipped that tarball under exactly these conditions.

Why it stays open rather than fixed

Executing it needs either a runner that is natively aarch64, or qemu-user emulation. The comment above records that qemu was tried and abandoned because provisioning it killed a job.

Options, none costed:

  1. A GitHub-hosted arm64 Linux runner, if one is available to this repository.
  2. A self-hosted aarch64 runner.
  3. qemu-user, provisioned more carefully than the attempt that was abandoned.
  4. Accept it, and say so in docs/tools/hu-install.md so an ARM user knows the tarball is unexercised.

Option 4 is the honest minimum and costs nothing. It is not currently done: the install docs list the aarch64 tarball beside the other two, with no caveat.

Not blocking

#309 called this "deliberately not prioritised", and nothing here changes that. It is filed so the limitation has a number rather than living in two code comments and a closed issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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