Skip to content

INT-04: compiler distribution strategy (native OCaml binary — not JSR/npm) #260

@hyperpolymath

Description

@hyperpolymath

Split out of #181. Packaging prep (docs/PACKAGING.adoc) made the JS runtime packages JSR-publishable (@hyperpolymath/affine-js, @hyperpolymath/affinescript-tea — manual workflow scaffolded, not yet published). But #181 also says "publish compiler", and the compiler is a native OCaml binary, not a JSR/npm package.

Decision needed (one-way-door)

How is the compiler distributed so consumers (and affinescript-lsp, INT-10) can install it?

Options:

  1. GitHub Releases binaries — per-platform artifacts via the existing release.yml (v* tags); install script / fetch-pin.
  2. Guix/Nix channel — aligns with the repo's primary packaging (guix.scm/flake.nix); reproducible, but narrower audience.
  3. Thin JSR/npm shim — a small package that downloads a pinned, checksummed prebuilt binary on install (gives deno/npm ergonomics without shipping OCaml source).
  4. Combination (e.g. 1 + 3).

Why filed, not guessed

Irreversible-ish (sets the install contract + the LSP distribution path, INT-10) and outside the bounded packaging-prep scope. The JS-package publish path is ready and independent of this.

Refs #181. Blocks INT-10 (affinescript-lsp distribution).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions