Skip to content

refactor: extract isMusl() to a shared module (deduplicate 4 implementations) #822

@anandgupta42

Description

@anandgupta42

Found during v0.7.1 release review (Tech Lead persona).

The same musl-detection logic exists in four places:

  • packages/opencode/script/build.ts:208-220 — TS, used by build-time --single guard
  • packages/opencode/bin/altimate:156-171 — JS (the npm wrapper) — early-exit
  • packages/opencode/script/postinstall.mjs:50-71 — MJS, npm postinstall early-exit
  • install:117-133 — bash, curl-install early-exit

The TS/JS/MJS copies should be lifted to packages/opencode/script/lib/platform.mjs (or equivalent) and imported. The bash one stays — different language.

Why this isn't in v0.7.1

The review explicitly flagged this as a P2 (drifting fix points), and the user's rule is "Don't add features, refactor, or introduce abstractions beyond what the task requires." The v0.7.1 fix scope was the curl-install crash + binary rename. Refactor in a follow-up.

Acceptance

  • Single shared implementation, imported by all three callers.
  • Existing musl tests still pass.
  • A new test that asserts the three callers' detection results agree on a fixture set of /etc/alpine-release + ldd --version outputs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions