putitoutthere 0.2.11 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/MIGRATIONS.md +189 -0
- package/README.md +88 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +39 -0
- package/dist/config.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -32,6 +32,12 @@ are prefixed `**BREAKING**` and link to the matching section in
|
|
|
32
32
|
|
|
33
33
|
### Fixed
|
|
34
34
|
|
|
35
|
+
- **Bundled-CLI / napi npm consumers' `npm run build` step now sees `TARGET` and `BUILD` env vars on every matrix row.** The reusable workflow's `_matrix.yml` and `release.yml` previously ran the npm build step with no env block, so consumers' build scripts that read `process.env.TARGET` to know which triple to cross-compile saw `undefined` and either crashed or silently no-oped. Every per-platform matrix row then uploaded an empty `build/<triple>/` directory and `actions/upload-artifact@v7` flagged `No files were found with the provided path: ...`. The internal `e2e-fixture-job.yml` already passed `TARGET` / `BUILD` correctly — meaning the fixture suite passed but a real consumer's first publish still failed; an integration-tier divergence rather than a behavior bug per se. Both the build matrix step and the publish-job rebuild step in `release.yml` now set the env block. `_matrix.yml` exposes `TARGET=${{ matrix.target }}` / `BUILD=${{ matrix.build }}` per row; `release.yml`'s rebuild loop sets `TARGET=main BUILD=` per iteration (the publish-time rebuild only fires for the main package's row, since per-platform sub-packages stage from `artifacts/` via the engine's npm-platform handler). The README's [Bundled-CLI npm family](./README.md#bundled-cli-npm-family) recipe gained the consumer-side build-script contract that was previously missing — TARGET/BUILD vocabulary and a minimal `scripts/build.cjs` covering the simple single-workspace case. Hit in the wild on `thekevinscott/darkfactory`'s first release; tracked at #287. See [MIGRATIONS.md](./MIGRATIONS.md#npm-build-step-target-build-env-vars).
|
|
36
|
+
|
|
37
|
+
- **pypi/maturin `[package.bundle_cli]` now actually ships the bundled binary inside published wheels.** The recipe was advertised as shipped in v0.2.0 (#217) — config parsing accepted `[package.bundle_cli]`, the planner attached it to per-target wheel rows, and `MIGRATIONS.md` named the two scaffolded build steps consumers should expect. None of those steps existed in `.github/workflows/_matrix.yml`. Consumers who declared the block (us, in `thekevinscott/dirsql`) shipped wheels missing the binary; `pip install <pkg> && <pkg> ...` failed at runtime with `FileNotFoundError`. The reusable workflow's build job now, for every per-target wheel row that carries `matrix.bundle_cli`: (1) `rustup target add ${{ matrix.target }}`, (2) `cargo build --release --target ${{ matrix.target }} --bin ${{ matrix.bundle_cli.bin }}` against `crate_path`, (3) copies the resulting binary into `${{ matrix.path }}/${{ matrix.bundle_cli.stage_to }}/` so maturin's `[tool.maturin].include` glob picks it up as wheel data, and (4) runs a permanent post-build wheel-content guard that opens the produced `.whl` and refuses to upload-artifact if `<stage_to>/<bin>` is missing. The guard is independent of staging — it catches any future regression where the cross-compile silently routes the binary to the wrong path. Consumers do not need to change their existing `[package.bundle_cli]` config or their `[tool.maturin].include` glob; the recipe just starts working. The cross-compile assumes the binary is buildable with a vanilla `cargo build --release --bin <bin>` (no `--features`, no env, no special flags); crates that gate the CLI behind a Cargo feature are not yet supported. The `.exe` suffix on Windows is handled. See [README → Recipes → Rust CLI inside a PyPI wheel](./README.md#rust-cli-inside-a-pypi-wheel) and [MIGRATIONS.md](./MIGRATIONS.md#bundle_cli-now-actually-stages-the-binary). #282.
|
|
38
|
+
|
|
39
|
+
- **`putitoutthere.toml` validation now names common typos in the failure message.** A consumer integration shipped a config with `version` at the file root, `[[packages]]` (plural), `registry =` instead of `kind =`, and `files =` instead of `globs =`. The raw zod errors (`Invalid input: expected object, received undefined; ...; Unrecognized keys: "version", "packages"`) were opaque enough that the engine source had to be re-read to recover. A pre-pass in `parseConfig` now detects each of those four mistakes by name and emits a hint that pairs the wrong shape with the right one, e.g. `top-level table is \`[[packages]]\` (plural) but should be \`[[package]]\` (singular)`. README's [Drop in `putitoutthere.toml`](./README.md#2-drop-in-putitoutthere-toml) section grew a four-row "wrong → right" table covering the same four traps so the docs and the engine name them the same way; a new `[!IMPORTANT]` callout in [Drop in `.github/workflows/release.yml`](./README.md#1-drop-in-githubworkflowsreleaseyml) warns consumers off `push: branches: [main]` triggers on lane CI workflows (which fire duplicate runs against the merge commit and contend for runners with `release.yml`); `1b.` was promoted from "Optional" to "Recommended" since `build.yml` is the cheapest place to catch a malformed config before merge. See [MIGRATIONS.md](./MIGRATIONS.md#friendly-config-error-hints).
|
|
40
|
+
|
|
35
41
|
- **pypi/maturin wheels now ship at the planned version instead of the literal in `pyproject.toml`.** The reusable workflow's build matrix (`_matrix.yml`) now bumps `[project].version` in `pyproject.toml` (or `[package].version` in `Cargo.toml` when `pyproject.toml` declares `dynamic = ["version"]`) to `matrix.version` before each `PyO3/maturin-action@v1` invocation. Maturin reads its version source from disk at build time and honors no env override — `SETUPTOOLS_SCM_PRETEND_VERSION` is a setuptools-scm / hatch-vcs feature, not a maturin one. Without the bump, wheels left the build runner at whatever literal happened to be in the consumer's manifest — diverging from the planned version, tripping PyPI's "file already exists" rejection at upload, and turning otherwise-clean release runs red even when crates and npm shipped correctly. The bump is implemented as a new internal `putitoutthere write-version` CLI subcommand and exposed through the JS action's existing surface (new `version:` input on `action.yml`); the e2e fixture harness now verifies wheel `METADATA: Version:` matches `matrix.version` post-build. The CLI subcommand and action input are internal — consumers compose with the reusable workflow, not directly with the CLI. Hit in the wild on `dirsql`'s 0.2.8 release (issue #276). See [MIGRATIONS.md](./MIGRATIONS.md#pypi-maturin-version-bump-at-build).
|
|
36
42
|
|
|
37
43
|
- **npm publish no longer fails red when npm CLI retries a successful PUT.** When the registry acks a publish but the response comes back flaky to the client (timeout / 502 / connection reset), the npm CLI retries with the same payload. The retry lands on a registry that already has the new version and exits `E403 "cannot publish over the previously published versions: <ver>"`. Both the platform-package handler (`src/handlers/npm-platform.ts:npmPublish`) and the main publish path (`src/handlers/npm.ts:publishImpl`) now detect that exact stderr shape and treat it as success — the package is already on the registry at the requested version. Hit in the wild on PR #257's polyglot-everything multi-mode publish (10 platform packages × ~1 in 10 chance per request meant the race was nearly guaranteed).
|
package/MIGRATIONS.md
CHANGED
|
@@ -21,6 +21,187 @@ Each section covers five things, in order:
|
|
|
21
21
|
|
|
22
22
|
## Unreleased
|
|
23
23
|
|
|
24
|
+
### npm build step: TARGET / BUILD env vars
|
|
25
|
+
|
|
26
|
+
**Summary.** The reusable workflow's `_matrix.yml` and `release.yml`
|
|
27
|
+
now set `TARGET=${{ matrix.target }}` and `BUILD=${{ matrix.build }}`
|
|
28
|
+
on the `matrix.kind == 'npm'` build step (and `TARGET=main BUILD=`
|
|
29
|
+
on `release.yml`'s publish-job rebuild loop, which only ever runs
|
|
30
|
+
for the main package's row). Bundled-CLI / napi consumers' build
|
|
31
|
+
scripts read these env vars to know which triple to cross-compile
|
|
32
|
+
and which build mode is active; without them, every per-platform
|
|
33
|
+
matrix row produced an empty `build/<triple>/` directory and
|
|
34
|
+
`actions/upload-artifact@v7` reported
|
|
35
|
+
`No files were found with the provided path: ...`. The internal
|
|
36
|
+
`e2e-fixture-job.yml` already passed `TARGET` / `BUILD` for the
|
|
37
|
+
`js-bundled-cli` fixture, so the fixture suite was green while the
|
|
38
|
+
shape it advertised was broken for real consumers. Tracked at #287;
|
|
39
|
+
hit in the wild on `thekevinscott/darkfactory`'s first release.
|
|
40
|
+
|
|
41
|
+
The README's [Bundled-CLI npm family](./README.md#bundled-cli-npm-family)
|
|
42
|
+
recipe gained the consumer-side build-script contract that was
|
|
43
|
+
previously missing: a documented `scripts/build.cjs` template
|
|
44
|
+
that reads `TARGET`, runs `rustup target add` + `cargo build`
|
|
45
|
+
+ stage-into-`build/<triple>/`, and no-ops on
|
|
46
|
+
`TARGET=main`. Without that section, consumers had to read the
|
|
47
|
+
`js-bundled-cli` test fixture or experiment to discover the
|
|
48
|
+
contract.
|
|
49
|
+
|
|
50
|
+
**Required changes.** None for consumers whose existing build
|
|
51
|
+
script either ignored `TARGET` or used a different env var name —
|
|
52
|
+
those scripts now get the `TARGET` / `BUILD` exports too but
|
|
53
|
+
nothing forces them to read. To start using the contract, mirror
|
|
54
|
+
the README's `scripts/build.cjs` shape and reference it from
|
|
55
|
+
`package.json`'s `scripts.build` field. Existing fixtures and
|
|
56
|
+
the engine's contract are unchanged.
|
|
57
|
+
|
|
58
|
+
**Deprecations removed.** None.
|
|
59
|
+
|
|
60
|
+
**Behavior changes without code changes.** The npm build step
|
|
61
|
+
now runs with `TARGET` and `BUILD` set in its environment.
|
|
62
|
+
Build scripts that previously saw `undefined` and either crashed
|
|
63
|
+
or silently no-oped will now see a defined string. Vanilla npm
|
|
64
|
+
consumers (no `build = "bundled-cli" | "napi"`) see
|
|
65
|
+
`TARGET=main BUILD=` (or `BUILD=undefined` on rows that don't
|
|
66
|
+
declare a build mode); their build scripts that don't read either
|
|
67
|
+
var are unaffected.
|
|
68
|
+
|
|
69
|
+
**Verification.** A bundled-cli consumer following the README
|
|
70
|
+
recipe sees their per-platform matrix rows produce non-empty
|
|
71
|
+
artifacts: each `<pkg>-npm-<triple>` upload contains
|
|
72
|
+
`build/<triple>/<bin-name>`. The release run's `Upload artifact`
|
|
73
|
+
step no longer logs `No files were found with the provided path`
|
|
74
|
+
for any npm row.
|
|
75
|
+
|
|
76
|
+
### `[package.bundle_cli]` now actually stages the binary
|
|
77
|
+
|
|
78
|
+
**Summary.** Wheels published from a maturin pypi package that
|
|
79
|
+
declared `[package.bundle_cli]` previously shipped without the
|
|
80
|
+
bundled CLI binary. The block was parsed by config, attached to
|
|
81
|
+
per-target wheel rows by the planner, and documented in the README
|
|
82
|
+
and MIGRATIONS — but the reusable workflow's build job
|
|
83
|
+
(`.github/workflows/_matrix.yml`) had no step that consumed the
|
|
84
|
+
metadata. Consumers' wheels arrived on PyPI missing the file the
|
|
85
|
+
launcher in `[project.scripts]` resolved at runtime, and
|
|
86
|
+
`pip install <pkg> && <pkg> ...` failed with `FileNotFoundError`.
|
|
87
|
+
The recipe was advertised as shipped in v0.2.0 (#217) but was
|
|
88
|
+
silently a no-op for over a release cycle. Hit in the wild on
|
|
89
|
+
`thekevinscott/dirsql`; tracked in #282.
|
|
90
|
+
|
|
91
|
+
The workflow now runs four new steps for every per-target wheel
|
|
92
|
+
row where `matrix.bundle_cli` is set:
|
|
93
|
+
|
|
94
|
+
1. `rustup target add ${{ matrix.target }}` — make the triple known.
|
|
95
|
+
2. `cargo build --release --target ${{ matrix.target }} --bin ${{ matrix.bundle_cli.bin }}`
|
|
96
|
+
against `crate_path` — produce the binary on the native host
|
|
97
|
+
runner (`defaultRunsOn` in `src/plan.ts` already maps every
|
|
98
|
+
supported triple to a native runner, so cross-compile linkers
|
|
99
|
+
are not needed).
|
|
100
|
+
3. Copy the resulting binary (with `.exe` suffix on Windows) into
|
|
101
|
+
`${{ matrix.path }}/${{ matrix.bundle_cli.stage_to }}/` so
|
|
102
|
+
maturin's `[tool.maturin].include` glob picks it up as wheel
|
|
103
|
+
data.
|
|
104
|
+
4. After `PyO3/maturin-action@v1` produces the `.whl`, open the
|
|
105
|
+
wheel and refuse `upload-artifact` if it does not contain a
|
|
106
|
+
file at any directory ending in `<stage_to>/<bin>`. This guard
|
|
107
|
+
stays useful after the staging steps land — it catches any
|
|
108
|
+
future regression where the cross-compile silently routes the
|
|
109
|
+
binary to the wrong path, and it ensures broken wheels never
|
|
110
|
+
leave the build runner.
|
|
111
|
+
|
|
112
|
+
**Required changes.** None for consumers whose existing
|
|
113
|
+
`[package.bundle_cli]` block follows the documented shape — the
|
|
114
|
+
recipe simply starts working. Consumers who relied on the broken
|
|
115
|
+
state (e.g., shipped a workaround that hardcoded a copy of the
|
|
116
|
+
binary into the source tree before `putitoutthere` ran) can
|
|
117
|
+
remove the workaround.
|
|
118
|
+
|
|
119
|
+
**Constraint not previously documented.** The cross-compile
|
|
120
|
+
assumes the binary is buildable with a vanilla
|
|
121
|
+
`cargo build --release --bin <bin>` — no `--features`, no env
|
|
122
|
+
vars, no special build config. Crates that gate the CLI behind
|
|
123
|
+
a Cargo feature (e.g., `--features cli`) are not currently
|
|
124
|
+
supported; restructure the crate so the binary is built by
|
|
125
|
+
default, or wait for a future `bundle_cli.features` schema
|
|
126
|
+
expansion. The bug reporter's config in #282 does not use
|
|
127
|
+
features, so the basic case is unblocked.
|
|
128
|
+
|
|
129
|
+
**Deprecations removed.** None.
|
|
130
|
+
|
|
131
|
+
**Behavior changes without code changes.** Existing
|
|
132
|
+
`[package.bundle_cli]` blocks change behavior at upgrade time:
|
|
133
|
+
the next release run produces wheels that contain the binary
|
|
134
|
+
(previously the workflow silently published wheels without it).
|
|
135
|
+
If a consumer's `[tool.maturin].include` path resolves to nothing
|
|
136
|
+
(typo, mismatched layout), the new wheel-content guard fails the
|
|
137
|
+
build red instead of silently uploading an unusable wheel.
|
|
138
|
+
|
|
139
|
+
**Verification.** After upgrading, trigger a release on a maturin
|
|
140
|
+
package that declares `[package.bundle_cli]`. The build job's log
|
|
141
|
+
includes a `bundle_cli — verify wheel contains <stage_to>/<bin>`
|
|
142
|
+
step that ends with `ok bundle_cli: <stage_to>/<bin> present in
|
|
143
|
+
<wheel-name>.whl`. The published wheel, when downloaded and
|
|
144
|
+
unzipped, contains the binary at the expected path.
|
|
145
|
+
`pip install <pkg> && <pkg> --version` runs the launcher and the
|
|
146
|
+
launcher resolves the binary inside the wheel.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### Friendly config error hints
|
|
151
|
+
|
|
152
|
+
**Summary.** A consumer integration produced a `putitoutthere.toml`
|
|
153
|
+
with four shape mistakes at once: `version = 1` declared at the
|
|
154
|
+
file root rather than under `[putitoutthere]`, `[[packages]]`
|
|
155
|
+
(plural) instead of `[[package]]` (singular), `registry =` instead
|
|
156
|
+
of `kind =`, and `files =` instead of `globs =`. The engine's
|
|
157
|
+
zod-derived error message named none of those four typos by their
|
|
158
|
+
correct equivalent — `Invalid input: expected object, received
|
|
159
|
+
undefined; ...; Unrecognized keys: "version", "packages"` is
|
|
160
|
+
technically correct and operationally useless. `parseConfig` now
|
|
161
|
+
runs a pre-pass that detects each of these four cases by inspecting
|
|
162
|
+
the parsed TOML before zod runs, and emits a hint that names both
|
|
163
|
+
the wrong key and the right one. The README's [Drop in
|
|
164
|
+
`putitoutthere.toml`](./README.md#2-drop-in-putitoutthere-toml)
|
|
165
|
+
section grew a wrong→right table covering the same four traps so
|
|
166
|
+
the docs and the engine speak the same vocabulary, the
|
|
167
|
+
[Drop in `.github/workflows/release.yml`](./README.md#1-drop-in-githubworkflowsreleaseyml)
|
|
168
|
+
section grew an `[!IMPORTANT]` callout warning consumers off
|
|
169
|
+
`push: branches: [main]` triggers on lane CI workflows, and `1b.
|
|
170
|
+
build-check.yml` was promoted from "Optional" to "Recommended"
|
|
171
|
+
because it's the cheapest pre-merge surface that exercises
|
|
172
|
+
`parseConfig` on the consumer's actual config.
|
|
173
|
+
|
|
174
|
+
**Required changes.** None. The hints fire only on configs that
|
|
175
|
+
were already failing validation; valid configs are unaffected.
|
|
176
|
+
A config that was failing with a confusing zod message before will
|
|
177
|
+
now fail with a hint message that names the fix:
|
|
178
|
+
|
|
179
|
+
| Wrong (still rejected, clearer message) | Right |
|
|
180
|
+
| -------------------------------------------------------------------- | ------------------------------------------------ |
|
|
181
|
+
| `version = 1` at file root, no `[putitoutthere]` table | `[putitoutthere]` table with `version = 1` inside |
|
|
182
|
+
| `[[packages]]` (plural) | `[[package]]` (singular, one block per package) |
|
|
183
|
+
| `registry = "crates"` | `kind = "crates"` |
|
|
184
|
+
| `files = ["src/**"]` | `globs = ["src/**"]` |
|
|
185
|
+
|
|
186
|
+
Consumers with healthy configs can ignore this. Consumers with
|
|
187
|
+
broken configs whose CI was previously red against a zod message
|
|
188
|
+
will see the same red CI with a clearer message — fix the config
|
|
189
|
+
shape per the table above.
|
|
190
|
+
|
|
191
|
+
**Deprecations removed.** None.
|
|
192
|
+
|
|
193
|
+
**Behavior changes without code changes.** Error message text
|
|
194
|
+
on failed config validation. The exit code, the failure surface
|
|
195
|
+
(`parseConfig` throwing inside the engine), and the set of
|
|
196
|
+
configs that pass validation are all unchanged.
|
|
197
|
+
|
|
198
|
+
**Verification.** A failing config with any of the four mistakes
|
|
199
|
+
above will now contain the words `did you mean` in its CI log
|
|
200
|
+
output. Repos with valid configs see no change in any release
|
|
201
|
+
or build-check run.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
24
205
|
### Crates token fallback
|
|
25
206
|
|
|
26
207
|
**Summary.** The reusable workflow now accepts an optional
|
|
@@ -1396,6 +1577,14 @@ Expect no hits outside historical changelog/migration entries.
|
|
|
1396
1577
|
|
|
1397
1578
|
### `[package.bundle_cli]` — stage a Rust CLI into every maturin wheel (#217)
|
|
1398
1579
|
|
|
1580
|
+
> **Note (#282).** The "Behavior changes without code changes"
|
|
1581
|
+
> paragraph below claimed two scaffolded build steps would be
|
|
1582
|
+
> emitted. Those steps were not actually present in `_matrix.yml`
|
|
1583
|
+
> until #282 (Unreleased); for v0.2.0 through v0.2.10 the recipe
|
|
1584
|
+
> was a no-op and wheels shipped without the binary. See the
|
|
1585
|
+
> Unreleased entry "[package.bundle_cli] now actually stages the
|
|
1586
|
+
> binary" above for the actual landing.
|
|
1587
|
+
|
|
1399
1588
|
**Summary.** New optional sub-table under `[[package]]` for pypi packages
|
|
1400
1589
|
that want the `ruff` / `uv` / `pydantic-core` wheel shape: a companion
|
|
1401
1590
|
Rust CLI binary, cross-compiled per target and staged into the Python
|
package/README.md
CHANGED
|
@@ -61,6 +61,18 @@ before `job_workflow_ref` is even checked. Running `pypa/gh-action-pypi-publish`
|
|
|
61
61
|
in your workflow context aligns the claims with your TP registration.
|
|
62
62
|
The job is skipped automatically for repos that don't publish to PyPI.
|
|
63
63
|
|
|
64
|
+
> [!IMPORTANT]
|
|
65
|
+
> **Don't run anything else on `push: branches: [main]`.** If you have
|
|
66
|
+
> per-language CI workflows (`rust.yml`, `node.yml`, `python.yml`,
|
|
67
|
+
> etc.), keep them on `pull_request:` only — drop any `push: branches: [main]`
|
|
68
|
+
> trigger they may carry. Branch protection plus PR-required CI already
|
|
69
|
+
> covered the merge commit's contents on the PR build; firing the lane
|
|
70
|
+
> workflows a second time on the push to `main` is duplicate work that
|
|
71
|
+
> contends for runners with `release.yml` and delays the release. A repo
|
|
72
|
+
> with three lane workflows + paths filters that all match the merge
|
|
73
|
+
> commit will fire four workflows where one was wanted. Fix: keep
|
|
74
|
+
> `release.yml` as the only `push: branches: [main]` workflow.
|
|
75
|
+
|
|
64
76
|
Optional inputs — `with:` block at the call site:
|
|
65
77
|
|
|
66
78
|
| Input | Default | Use when |
|
|
@@ -69,10 +81,13 @@ Optional inputs — `with:` block at the call site:
|
|
|
69
81
|
| `node_version` | `24` | You need a specific Node version for `kind = "npm"` build steps. |
|
|
70
82
|
| `python_version` | `3.12` | You need a specific Python version for `kind = "pypi"` build steps. |
|
|
71
83
|
|
|
72
|
-
### 1b.
|
|
84
|
+
### 1b. Recommended: drop in `.github/workflows/build-check.yml`
|
|
73
85
|
|
|
74
86
|
Run the same plan + build matrix on every PR, with the publish step
|
|
75
|
-
structurally absent
|
|
87
|
+
structurally absent. This is the cheapest way to catch a malformed
|
|
88
|
+
`putitoutthere.toml`, missing `repository` field, or per-target build
|
|
89
|
+
break **before** the merge — by the time the release workflow runs,
|
|
90
|
+
the merge has already happened and the only recourse is a fix-up PR.
|
|
76
91
|
|
|
77
92
|
```yaml
|
|
78
93
|
name: Build check
|
|
@@ -112,6 +127,18 @@ tag_format = "v{version}" # single-package repos often want this
|
|
|
112
127
|
`globs` are the path globs that trigger a release. Any commit touching a
|
|
113
128
|
matching file makes the package a candidate.
|
|
114
129
|
|
|
130
|
+
> [!CAUTION]
|
|
131
|
+
> **Four schema gotchas, one per line.** Every one of these has tripped a
|
|
132
|
+
> consumer at least once; the engine throws a hint when it sees them but
|
|
133
|
+
> they're cheaper to avoid than to debug.
|
|
134
|
+
>
|
|
135
|
+
> | Wrong | Right |
|
|
136
|
+
> |------------------------------------|--------------------------------|
|
|
137
|
+
> | `version = 1` at file root | `[putitoutthere]` table with `version = 1` inside |
|
|
138
|
+
> | `[[packages]]` (plural) | `[[package]]` (singular, one block per package) |
|
|
139
|
+
> | `registry = "crates"` | `kind = "crates"` |
|
|
140
|
+
> | `files = ["src/**"]` | `globs = ["src/**"]` |
|
|
141
|
+
|
|
115
142
|
More config patterns are in [Configuration](#configuration) below.
|
|
116
143
|
|
|
117
144
|
### 3. Register trusted publishers
|
|
@@ -456,6 +483,65 @@ const result = spawnSync(binary, process.argv.slice(2), { stdio: 'inherit' });
|
|
|
456
483
|
process.exit(result.status ?? 1);
|
|
457
484
|
```
|
|
458
485
|
|
|
486
|
+
You also author a `build` script in `package.json` that does the
|
|
487
|
+
cross-compile. The reusable workflow runs the build matrix once
|
|
488
|
+
per `(target × main)` row, sets `TARGET=<triple>` /
|
|
489
|
+
`BUILD=bundled-cli` on the build step, and expects the script to
|
|
490
|
+
stage the compiled binary under `build/<triple>/<bin-name>` (with
|
|
491
|
+
`.exe` suffix on Windows). For every per-target row the engine
|
|
492
|
+
then packages `build/<triple>/` as the platform sub-package's
|
|
493
|
+
artifact; the `main` row is a no-op for the build script (the
|
|
494
|
+
launcher above is committed source). A minimal `package.json`:
|
|
495
|
+
|
|
496
|
+
```json
|
|
497
|
+
{
|
|
498
|
+
"name": "my-cli",
|
|
499
|
+
"scripts": {
|
|
500
|
+
"build": "node scripts/build.cjs"
|
|
501
|
+
},
|
|
502
|
+
"bin": { "my-cli": "bin/my-cli.js" }
|
|
503
|
+
}
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
`scripts/build.cjs`:
|
|
507
|
+
|
|
508
|
+
```js
|
|
509
|
+
const { execFileSync, spawnSync } = require('node:child_process');
|
|
510
|
+
const { mkdirSync, copyFileSync } = require('node:fs');
|
|
511
|
+
const { join } = require('node:path');
|
|
512
|
+
const pkg = require('../package.json');
|
|
513
|
+
|
|
514
|
+
const target = process.env.TARGET;
|
|
515
|
+
// `target === 'main'` is the top-level row: nothing to compile,
|
|
516
|
+
// the launcher is committed source.
|
|
517
|
+
if (!target || target === 'main' || target === 'noarch') process.exit(0);
|
|
518
|
+
|
|
519
|
+
const binName = Object.keys(pkg.bin || {})[0] || pkg.name;
|
|
520
|
+
const ext = target.includes('windows') ? '.exe' : '';
|
|
521
|
+
|
|
522
|
+
execFileSync('rustup', ['target', 'add', target], { stdio: 'inherit' });
|
|
523
|
+
execFileSync(
|
|
524
|
+
'cargo',
|
|
525
|
+
['build', '--release', '--target', target, '--bin', binName],
|
|
526
|
+
{ cwd: '../../crates/my-cli', stdio: 'inherit' },
|
|
527
|
+
);
|
|
528
|
+
|
|
529
|
+
const dir = join('build', target);
|
|
530
|
+
mkdirSync(dir, { recursive: true });
|
|
531
|
+
copyFileSync(
|
|
532
|
+
join('../../crates/my-cli/target', target, 'release', binName + ext),
|
|
533
|
+
join(dir, binName + ext),
|
|
534
|
+
);
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
The build is consumer-owned because `cargo build` flags
|
|
538
|
+
(`--features`, env vars, alternate manifests, Zig-cc cross
|
|
539
|
+
toolchains) vary too much across crates to bake into the
|
|
540
|
+
workflow. For the simple "single workspace member, default
|
|
541
|
+
features" case the script above is the entire integration; tweak
|
|
542
|
+
it as your crate demands. `TARGET` and `BUILD` are the only env
|
|
543
|
+
vars the workflow guarantees.
|
|
544
|
+
|
|
459
545
|
Each per-platform sub-package needs its own npm trusted-publisher
|
|
460
546
|
registration (a policy on `my-cli` does not cover
|
|
461
547
|
`my-cli-x86_64-unknown-linux-gnu`).
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,CAAC,EAAiB,MAAM,KAAK,CAAC;AAgBvC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAID,QAAA,MAAM,KAAK;;kBAIA,CAAC;AA4EZ,QAAA,MAAM,UAAU;;;;;;;;;;;kBAQL,CAAC;AAIZ,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;kBA+BX,CAAC;AAkDJ,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+DT,CAAC;AAEL,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAgE,CAAC;AAW9E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,MAAM,WAAW,MAAM;IACrB,aAAa,EAAE,UAAU,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,CAAC,EAAiB,MAAM,KAAK,CAAC;AAgBvC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAID,QAAA,MAAM,KAAK;;kBAIA,CAAC;AA4EZ,QAAA,MAAM,UAAU;;;;;;;;;;;kBAQL,CAAC;AAIZ,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;kBA+BX,CAAC;AAkDJ,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+DT,CAAC;AAEL,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAgE,CAAC;AAW9E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,MAAM,WAAW,MAAM;IACrB,aAAa,EAAE,UAAU,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2BhD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa/C"}
|
package/dist/config.js
CHANGED
|
@@ -273,6 +273,14 @@ export function parseConfig(toml) {
|
|
|
273
273
|
throw new Error(`putitoutthere.toml: invalid TOML: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
274
274
|
}
|
|
275
275
|
/* v8 ignore stop */
|
|
276
|
+
// Surface common typos before zod runs. The discriminated-union path
|
|
277
|
+
// truncates issue lists (`registry =` makes `kind` look missing and the
|
|
278
|
+
// strict() check on the wrong key never fires), so a pre-pass catches
|
|
279
|
+
// them with hints that name both the mistake and the fix.
|
|
280
|
+
const hints = detectCommonMistakes(raw);
|
|
281
|
+
if (hints.length > 0) {
|
|
282
|
+
throw new Error(`putitoutthere.toml: ${hints.join('; ')}`);
|
|
283
|
+
}
|
|
276
284
|
const result = FILE.safeParse(raw);
|
|
277
285
|
if (!result.success) {
|
|
278
286
|
throw new Error(`putitoutthere.toml: ${formatZodError(result.error)}`);
|
|
@@ -297,6 +305,37 @@ export function loadConfig(path) {
|
|
|
297
305
|
return parseConfig(text);
|
|
298
306
|
}
|
|
299
307
|
/* ----------------------------- internals ----------------------------- */
|
|
308
|
+
// Common consumer typos that zod's raw output describes too obliquely to
|
|
309
|
+
// recover from without re-reading the schema. Each detection names both
|
|
310
|
+
// the mistake and the fix so the failing CI log is self-explanatory.
|
|
311
|
+
// Triggered by the integration failure in #integration-2026-05.
|
|
312
|
+
function detectCommonMistakes(raw) {
|
|
313
|
+
const hints = [];
|
|
314
|
+
if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
|
|
315
|
+
return hints;
|
|
316
|
+
const root = raw;
|
|
317
|
+
if (!('putitoutthere' in root) && 'version' in root) {
|
|
318
|
+
hints.push('missing [putitoutthere] table — move `version` under it: `[putitoutthere]\\nversion = 1`');
|
|
319
|
+
}
|
|
320
|
+
if ('packages' in root && !('package' in root)) {
|
|
321
|
+
hints.push('top-level table is `[[packages]]` (plural) but should be `[[package]]` (singular)');
|
|
322
|
+
}
|
|
323
|
+
const pkgs = root.package ?? root.packages;
|
|
324
|
+
if (Array.isArray(pkgs)) {
|
|
325
|
+
pkgs.forEach((p, i) => {
|
|
326
|
+
if (typeof p !== 'object' || p === null)
|
|
327
|
+
return;
|
|
328
|
+
const pp = p;
|
|
329
|
+
if ('registry' in pp && !('kind' in pp)) {
|
|
330
|
+
hints.push(`package[${i}]: \`registry = ...\` is not a valid field; did you mean \`kind\`?`);
|
|
331
|
+
}
|
|
332
|
+
if ('files' in pp && !('globs' in pp)) {
|
|
333
|
+
hints.push(`package[${i}]: \`files = ...\` is not a valid field; did you mean \`globs\`?`);
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
return hints;
|
|
338
|
+
}
|
|
300
339
|
function assertUniqueNames(packages) {
|
|
301
340
|
const seen = new Set();
|
|
302
341
|
for (const p of packages) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|