You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: drive cross-compiled matrix packages with matrix/build subcommands
Reconcile the three naming systems for a matrix binary (Rust triple, CI
runner, Node process.platform-process.arch stage dir) in a built-in target
registry, so the tool — not hand-edited YAML — owns the mapping that decides
whether an install can find the published binary.
- config: enrich Target with triple/runner/stage_as/ext/cross (registry-filled
from name/arch) and add per-package bin_name/compress fields.
- add `otf-release matrix` (emit the GH matrix JSON from release.toml) and
`otf-release build --package --target` (cross-compile one target, then brotli-
stage it at bin/<stage_as>/<bin><ext>[.br]).
- init: regenerate the matrix workflow as a dynamic matrix-<pkg> -> build-<pkg>
-> publish DAG that calls the new subcommands; no more `# edit me` target list
or untemplated build command. Publish merges each target's artifact back into
.artifacts/<pkg> before packing.
- publish: refuse a matrix package whose per-platform binaries were not staged,
replacing the removed private:true guard.
- npm: publish prereleases under their dist-tag (1.2.3-dev.x -> --tag dev);
unify the auth secret to NPM_TOKEN across the release and snapshot workflows.
- docs + CHANGELOG updated for the new flow.
|`otf-release version`| ✅ Supported | Interactive local release flow. Use `--dry-run` to preview the plan without writing files, and `--first-release` when a package has no prior matching tag. |
38
-
|`otf-release publish`| ✅ Supported | CI-oriented publish flow. Publishes in dependency order, skips already-published versions, creates `name@version` tags, and creates package releases from notes. |
38
+
|`otf-release publish`| ✅ Supported | CI-oriented publish flow. Publishes in dependency order, skips already-published versions, creates `name@version` tags, and creates package releases from notes. Refuses to publish a matrix package whose per-platform binaries weren't staged. |
39
+
|`otf-release matrix`| ✅ Supported | CI helper. Prints the GitHub Actions build matrix (JSON) for a matrix package from `release.toml`, so `release.yml` never carries a hand-maintained target list. |
40
+
|`otf-release build`| ✅ Supported | CI helper. Builds one matrix target (`--package`/`--target`), cross-compiling as needed, and stages the binary at `bin/<platform>-<arch>/<bin>[.br]` for publish. |
39
41
|`otf-release snapshot`| 🧪 Experimental | Creates hash-based prerelease versions such as `1.2.3-snapshot.a1b2c3d` and publishes them from CI. |
0 commit comments