Skip to content

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

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.

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