putitoutthere 0.2.2 → 0.2.3
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 +3 -0
- package/MIGRATIONS.md +70 -0
- package/README.md +61 -2
- package/dist/config.d.ts +22 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +99 -4
- package/dist/config.js.map +1 -1
- package/dist/handlers/npm-platform.d.ts +70 -13
- package/dist/handlers/npm-platform.d.ts.map +1 -1
- package/dist/handlers/npm-platform.js +122 -40
- package/dist/handlers/npm-platform.js.map +1 -1
- package/dist/handlers/npm.d.ts.map +1 -1
- package/dist/handlers/npm.js +15 -5
- package/dist/handlers/npm.js.map +1 -1
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +34 -21
- package/dist/plan.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -13,6 +13,7 @@ are prefixed `**BREAKING**` and link to the matching section in
|
|
|
13
13
|
### Added
|
|
14
14
|
|
|
15
15
|
- **`PIOT_PUBLISH_EMPTY_PLAN` error code.** Surfaced when `publish` is invoked with an empty matrix. Joins `PIOT_AUTH_NO_TOKEN` in the stable error-code vocabulary; foreign agents debugging a failed publish can fingerprint on the code without parsing prose.
|
|
16
|
+
- **`kind = "npm"` `build` accepts an array of entries with consumer-defined platform-package name templates** (#dirsql). For packages that ship both a napi-rs Node addon and a CLI binary from the same npm package (the `@swc/core` / dirsql shape), declare `build = [{ mode = "napi", name = "@scope/lib-{triple}" }, { mode = "bundled-cli", name = "@scope/cli-{triple}" }]`. Each entry contributes its own per-platform package family; the main package's `optionalDependencies` spans both. Entries can be bare mode strings (`"napi"`, defaults to `{name}-{triple}` template) or `{ mode, name }` objects. Variables surfaced in `name` templates: `{name}`, `{scope}`, `{base}`, `{triple}`, `{mode}`. `{version}` is intentionally not surfaced. Single-mode string form (`build = "napi"`) preserved byte-for-byte — same artifact-name layout, same platform-package names, no migration pressure on existing consumers. See [README → Recipes → Multi-mode npm family](./README.md#multi-mode-npm-family) and [MIGRATIONS.md](./MIGRATIONS.md#npm-build-accepts-array-of-entries).
|
|
16
17
|
|
|
17
18
|
### Changed
|
|
18
19
|
|
|
@@ -28,6 +29,8 @@ are prefixed `**BREAKING**` and link to the matching section in
|
|
|
28
29
|
|
|
29
30
|
### Fixed
|
|
30
31
|
|
|
32
|
+
- **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).
|
|
33
|
+
|
|
31
34
|
- **Crates publish no longer refuses on workflow-managed install state in sibling packages.** Before, the engine's pre-publish dirty-workspace check (`scanDirtyOutsideManifest`) flagged anything dirty outside the package's `Cargo.toml`. For polyglot consumers (rust + js in one repo), the reusable workflow's `Build npm packages` step (#256) creates `node_modules/`, `package-lock.json`, and `dist/` inside each npm package's path before cargo publish runs — these are workflow scratch, not stray edits, and cargo can't pack them anyway (it only packs files inside the crate's own dir). The check now whitelists every other configured package's path, similar to how it already whitelists `artifacts/`. Stray edits elsewhere in the repo (a `README.md` change, etc.) still fail the check. Hit in the wild on the polyglot-everything e2e fixture; would also have hit any consumer with the same shape.
|
|
32
35
|
|
|
33
36
|
- **Dogfood release workflow no longer silently downgrades `release: minor` to `patch`.** `release-npm.yml`'s "Fold action bundle into release commit" step now forwards the parent commit's body into the bundle commit, so any `release:` trailer the operator wrote in the merge commit survives into the new HEAD. Without the forward, `putitoutthere`'s publish-time plan re-derivation read HEAD (the bundle commit), saw no trailer on a single-parent commit, and defaulted the bump to `patch` — silently downgrading a `release: minor` to `0.x.(y+1)`. Hit in the wild on the 0.1.51 → 0.2.0 attempt that landed as 0.1.52. The reusable consumer-facing `release.yml` was unaffected (it never adds a commit between plan and publish). Internal-seam fix; no consumer-side action required.
|
package/MIGRATIONS.md
CHANGED
|
@@ -102,6 +102,76 @@ either bypass the workflow gate or invoke the CLI directly. Expect
|
|
|
102
102
|
exit 1, with `PIOT_PUBLISH_EMPTY_PLAN` in stderr. A healthy release
|
|
103
103
|
where the plan job's matrix is non-empty is unaffected.
|
|
104
104
|
|
|
105
|
+
### npm `build` accepts array of entries
|
|
106
|
+
|
|
107
|
+
**Summary.** `kind = "npm"` packages can now declare `build` as an array
|
|
108
|
+
of entries to publish multiple per-platform package families from a
|
|
109
|
+
single main package — for example, a napi-rs Node addon plus a CLI
|
|
110
|
+
binary, both selected via `optionalDependencies` on a shared top-level
|
|
111
|
+
package. Each entry has a `mode` (`napi` / `bundled-cli`) and an
|
|
112
|
+
optional `name` template (e.g. `"@dirsql/lib-{triple}"`) that the
|
|
113
|
+
consumer fully controls. The previous single-mode string form is
|
|
114
|
+
preserved.
|
|
115
|
+
|
|
116
|
+
**Required changes.** None. `build = "napi"` and `build = "bundled-cli"`
|
|
117
|
+
keep producing the same per-platform package names, the same artifact
|
|
118
|
+
directory layout, and the same matrix shape they did before. Adopt the
|
|
119
|
+
array form only if you need a multi-family npm package.
|
|
120
|
+
|
|
121
|
+
| Field | Before | After |
|
|
122
|
+
|---|---|---|
|
|
123
|
+
| `build` (single mode) | `build = "napi"` | unchanged — `build = "napi"` still valid |
|
|
124
|
+
| `build` (single mode, array form) | _new_ | `build = ["napi"]` — equivalent to the string form |
|
|
125
|
+
| `build` (single mode, custom name) | _new_ | `build = [{ mode = "napi", name = "@scope/lib-{triple}" }]` |
|
|
126
|
+
| `build` (multi mode) | _new_ | `build = [{ mode = "napi", name = "@scope/lib-{triple}" }, { mode = "bundled-cli", name = "@scope/cli-{triple}" }]` |
|
|
127
|
+
|
|
128
|
+
Variables in `name` templates: `{name}`, `{scope}`, `{base}`,
|
|
129
|
+
`{triple}`, `{mode}`. `{triple}` is required in every template.
|
|
130
|
+
`{version}` is not surfaced — platform package names are immutable
|
|
131
|
+
identifiers; the version is pinned via `optionalDependencies`.
|
|
132
|
+
|
|
133
|
+
**Validation rules** enforced at config load:
|
|
134
|
+
|
|
135
|
+
- Each `mode` value (`napi`, `bundled-cli`) appears at most once per package.
|
|
136
|
+
- Every `name` template must contain `{triple}`.
|
|
137
|
+
- Unknown placeholders are rejected.
|
|
138
|
+
- Templates across entries must be pairwise distinct (collision-free).
|
|
139
|
+
|
|
140
|
+
**Multi-mode artifact layout.** When `build` has more than one entry,
|
|
141
|
+
the build-side artifact directory and path get a mode infix to keep
|
|
142
|
+
families separate:
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
artifacts/
|
|
146
|
+
dirsql-napi-linux-x64-gnu/ # napi family
|
|
147
|
+
dirsql-bundled-cli-linux-x64-gnu/ # bundled-cli family
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
The build job for a multi-mode row writes to
|
|
151
|
+
`<pkg.path>/build/<mode>-<triple>/`. Single-mode (string form or
|
|
152
|
+
length-1 array) still uses `<pkg.path>/build/<triple>/` —
|
|
153
|
+
byte-for-byte unchanged.
|
|
154
|
+
|
|
155
|
+
**Trusted-publisher registrations.** Each platform package across
|
|
156
|
+
*every* family needs its own npm trusted-publisher registration. A
|
|
157
|
+
multi-mode package with N families × M targets needs N×M registrations
|
|
158
|
+
plus one for the top-level. There's no shorthand on npm's side; this
|
|
159
|
+
is the cost of the dual-family install pattern.
|
|
160
|
+
|
|
161
|
+
**Deprecations removed.** None.
|
|
162
|
+
|
|
163
|
+
**Behavior changes without code changes.** None for single-mode
|
|
164
|
+
configs. Multi-mode is new surface — no prior behavior to compare
|
|
165
|
+
against.
|
|
166
|
+
|
|
167
|
+
**Verification.** For an existing single-mode config, `putitoutthere
|
|
168
|
+
plan` should emit identical matrix rows before and after the upgrade
|
|
169
|
+
(same `artifact_name`, same `artifact_path`, same `target`). For a
|
|
170
|
+
new multi-mode config, you should see one matrix row per `(mode,
|
|
171
|
+
triple)` plus a single `target = "main"` row, and the matrix
|
|
172
|
+
`artifact_name` should carry the mode infix
|
|
173
|
+
(`<name>-<mode>-<triple>`).
|
|
174
|
+
|
|
105
175
|
---
|
|
106
176
|
|
|
107
177
|
## v0.1.51 → v0.2.0
|
package/README.md
CHANGED
|
@@ -155,8 +155,8 @@ version = 1 # required; only 1 is valid today
|
|
|
155
155
|
| `npm` | string | Override `name` → npm name (for scoped packages). |
|
|
156
156
|
| `access` | enum | `public` \| `restricted`. Default `public`. |
|
|
157
157
|
| `tag` | string | dist-tag. Default `latest`. |
|
|
158
|
-
| `build` |
|
|
159
|
-
| `targets` | (string \| object)[] | Required when `build
|
|
158
|
+
| `build` | string \| array | `"napi"` \| `"bundled-cli"` (single mode), or an array of entries (each: a bare mode string or `{ mode, name }` with a [name template](#multi-mode-npm-family)). Omitted = vanilla. See [Recipes → Bundled-CLI npm family](#bundled-cli-npm-family). |
|
|
159
|
+
| `targets` | (string \| object)[] | Required when `build` is set. |
|
|
160
160
|
|
|
161
161
|
### Example: polyglot Rust library
|
|
162
162
|
|
|
@@ -384,6 +384,65 @@ Each per-platform sub-package needs its own npm trusted-publisher
|
|
|
384
384
|
registration (a policy on `my-cli` does not cover
|
|
385
385
|
`my-cli-x86_64-unknown-linux-gnu`).
|
|
386
386
|
|
|
387
|
+
### Multi-mode npm family
|
|
388
|
+
|
|
389
|
+
For a package that is both a napi-rs Node addon (a `.node` library) **and**
|
|
390
|
+
a CLI binary, declare `build` as an array. Each entry contributes its own
|
|
391
|
+
per-platform family; the main package's `optionalDependencies` spans both.
|
|
392
|
+
The `@swc/core` / dirsql distribution shape.
|
|
393
|
+
|
|
394
|
+
```toml
|
|
395
|
+
[[package]]
|
|
396
|
+
name = "dirsql"
|
|
397
|
+
kind = "npm"
|
|
398
|
+
path = "packages/ts"
|
|
399
|
+
globs = ["packages/ts/**", "crates/dirsql/**"]
|
|
400
|
+
build = [
|
|
401
|
+
{ mode = "napi", name = "@dirsql/lib-{triple}" },
|
|
402
|
+
{ mode = "bundled-cli", name = "@dirsql/cli-{triple}" },
|
|
403
|
+
]
|
|
404
|
+
targets = [
|
|
405
|
+
"linux-x64-gnu",
|
|
406
|
+
"darwin-arm64",
|
|
407
|
+
"win32-x64-msvc",
|
|
408
|
+
]
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
Each entry has a **mode** (`napi` or `bundled-cli`) and a **`name`
|
|
412
|
+
template** for its platform packages. Variables:
|
|
413
|
+
|
|
414
|
+
| Variable | Resolves to |
|
|
415
|
+
|-------------|-------------------------------------------------------------------|
|
|
416
|
+
| `{name}` | The main package's npm name (`pkg.npm` if set, else `pkg.name`). |
|
|
417
|
+
| `{scope}` | Scope without `@` for scoped names (e.g. `dirsql`); `""` if unscoped. |
|
|
418
|
+
| `{base}` | Name without scope (e.g. `core` for `@dirsql/core`). |
|
|
419
|
+
| `{triple}` | Target triple as written in `targets` — required in the template. |
|
|
420
|
+
| `{mode}` | The entry's mode (`napi` / `bundled-cli`). |
|
|
421
|
+
|
|
422
|
+
`{version}` is intentionally not surfaced — platform package names are
|
|
423
|
+
immutable identifiers; the version is pinned in `optionalDependencies`,
|
|
424
|
+
not the name.
|
|
425
|
+
|
|
426
|
+
**Single-mode (string) form is preserved.** `build = "napi"` and
|
|
427
|
+
`build = ["napi"]` are equivalent and produce the historical
|
|
428
|
+
`<name>-<triple>` platform-package names byte-for-byte. The mode-infix
|
|
429
|
+
artifact-directory naming (`<name>-napi-<triple>`, `<name>-bundled-cli-<triple>`)
|
|
430
|
+
only applies when `build` has more than one entry.
|
|
431
|
+
|
|
432
|
+
**Validation rules** enforced at config load:
|
|
433
|
+
|
|
434
|
+
- Each `mode` value (`napi`, `bundled-cli`) appears at most once per package.
|
|
435
|
+
- Every `name` template must contain `{triple}`.
|
|
436
|
+
- Unknown placeholders are rejected.
|
|
437
|
+
- All entries must produce distinct platform-package name templates.
|
|
438
|
+
|
|
439
|
+
Each platform package across **every** family needs its own npm
|
|
440
|
+
trusted-publisher registration. For the dirsql config above, that's
|
|
441
|
+
`@dirsql/lib-linux-x64-gnu`, `@dirsql/lib-darwin-arm64`,
|
|
442
|
+
`@dirsql/lib-win32-x64-msvc`, `@dirsql/cli-linux-x64-gnu`,
|
|
443
|
+
`@dirsql/cli-darwin-arm64`, `@dirsql/cli-win32-x64-msvc` — six total,
|
|
444
|
+
one per platform package, plus the top-level `dirsql`.
|
|
445
|
+
|
|
387
446
|
### Rust CLI inside a PyPI wheel
|
|
388
447
|
|
|
389
448
|
`pip install my-lib` on any platform gets a working CLI on `PATH` without
|
package/dist/config.d.ts
CHANGED
|
@@ -67,10 +67,19 @@ declare const NPM_PKG: z.ZodObject<{
|
|
|
67
67
|
restricted: "restricted";
|
|
68
68
|
}>>;
|
|
69
69
|
tag: z.ZodOptional<z.ZodString>;
|
|
70
|
-
build: z.ZodOptional<z.ZodEnum<{
|
|
70
|
+
build: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
71
71
|
napi: "napi";
|
|
72
72
|
"bundled-cli": "bundled-cli";
|
|
73
|
-
}
|
|
73
|
+
}>, z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
|
|
74
|
+
napi: "napi";
|
|
75
|
+
"bundled-cli": "bundled-cli";
|
|
76
|
+
}>, z.ZodObject<{
|
|
77
|
+
mode: z.ZodEnum<{
|
|
78
|
+
napi: "napi";
|
|
79
|
+
"bundled-cli": "bundled-cli";
|
|
80
|
+
}>;
|
|
81
|
+
name: z.ZodString;
|
|
82
|
+
}, z.core.$strict>]>>]>>;
|
|
74
83
|
targets: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
75
84
|
triple: z.ZodString;
|
|
76
85
|
runner: z.ZodOptional<z.ZodString>;
|
|
@@ -124,10 +133,19 @@ declare const PACKAGE: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
124
133
|
restricted: "restricted";
|
|
125
134
|
}>>;
|
|
126
135
|
tag: z.ZodOptional<z.ZodString>;
|
|
127
|
-
build: z.ZodOptional<z.ZodEnum<{
|
|
136
|
+
build: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
128
137
|
napi: "napi";
|
|
129
138
|
"bundled-cli": "bundled-cli";
|
|
130
|
-
}
|
|
139
|
+
}>, z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
|
|
140
|
+
napi: "napi";
|
|
141
|
+
"bundled-cli": "bundled-cli";
|
|
142
|
+
}>, z.ZodObject<{
|
|
143
|
+
mode: z.ZodEnum<{
|
|
144
|
+
napi: "napi";
|
|
145
|
+
"bundled-cli": "bundled-cli";
|
|
146
|
+
}>;
|
|
147
|
+
name: z.ZodString;
|
|
148
|
+
}, z.core.$strict>]>>]>>;
|
|
131
149
|
targets: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
132
150
|
triple: z.ZodString;
|
|
133
151
|
runner: z.ZodOptional<z.ZodString>;
|
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;
|
|
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,CAmBhD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa/C"}
|
package/dist/config.js
CHANGED
|
@@ -145,7 +145,50 @@ const PYPI_PKG = z
|
|
|
145
145
|
// without `targets` would produce only an sdist, and the staged
|
|
146
146
|
// binary wouldn't end up in any wheel.
|
|
147
147
|
{ message: 'bundle_cli requires at least one entry in `targets`' });
|
|
148
|
-
const
|
|
148
|
+
const NPM_BUILD_MODE = z.enum(['napi', 'bundled-cli']);
|
|
149
|
+
// #dirsql: must mirror ALLOWED_NAME_VARIABLES in src/handlers/npm-platform.ts.
|
|
150
|
+
// `{version}` is intentionally excluded — see resolvePlatformName.
|
|
151
|
+
const NPM_NAME_TEMPLATE_VARS = ['name', 'scope', 'base', 'triple', 'mode'];
|
|
152
|
+
const NPM_NAME_TEMPLATE_PLACEHOLDER_RE = /\{([^}]+)\}/g;
|
|
153
|
+
function validateNameTemplate(template) {
|
|
154
|
+
if (template.length === 0)
|
|
155
|
+
return 'name template must not be empty';
|
|
156
|
+
if (!template.includes('{triple}')) {
|
|
157
|
+
return 'name template must contain {triple} (otherwise platform packages would collide)';
|
|
158
|
+
}
|
|
159
|
+
const allowed = new Set(NPM_NAME_TEMPLATE_VARS);
|
|
160
|
+
const unknown = [];
|
|
161
|
+
for (const match of template.matchAll(NPM_NAME_TEMPLATE_PLACEHOLDER_RE)) {
|
|
162
|
+
const v = match[1];
|
|
163
|
+
if (!allowed.has(v))
|
|
164
|
+
unknown.push(v);
|
|
165
|
+
}
|
|
166
|
+
if (unknown.length > 0) {
|
|
167
|
+
return `name template contains unknown placeholder(s): ${[...new Set(unknown)].map((u) => `{${u}}`).join(', ')} (allowed: ${NPM_NAME_TEMPLATE_VARS.map((v) => `{${v}}`).join(', ')})`;
|
|
168
|
+
}
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
// Object form of a build entry: explicit mode + a `name` template the
|
|
172
|
+
// consumer fully controls. String form (a bare mode) implies the
|
|
173
|
+
// historical `{name}-{triple}` template — backward-compat with the
|
|
174
|
+
// pre-multi-mode shape.
|
|
175
|
+
const NPM_BUILD_ENTRY_OBJ = z
|
|
176
|
+
.object({
|
|
177
|
+
mode: NPM_BUILD_MODE,
|
|
178
|
+
name: z.string(),
|
|
179
|
+
})
|
|
180
|
+
.strict()
|
|
181
|
+
.superRefine((entry, ctx) => {
|
|
182
|
+
const reason = validateNameTemplate(entry.name);
|
|
183
|
+
if (reason !== null) {
|
|
184
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: reason, path: ['name'] });
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
const NPM_BUILD_ENTRY = z.union([NPM_BUILD_MODE, NPM_BUILD_ENTRY_OBJ]);
|
|
188
|
+
// `build` accepts a single mode string ("napi" / "bundled-cli") for
|
|
189
|
+
// backward compat, OR a non-empty array of entries (each: a bare mode
|
|
190
|
+
// string or an object with `{mode, name}`).
|
|
191
|
+
const NPM_BUILD = z.union([NPM_BUILD_MODE, z.array(NPM_BUILD_ENTRY).min(1)]);
|
|
149
192
|
const NPM_PKG = z
|
|
150
193
|
.object({
|
|
151
194
|
...PACKAGE_BASE,
|
|
@@ -157,9 +200,61 @@ const NPM_PKG = z
|
|
|
157
200
|
targets: z.array(TARGET_ENTRY).optional(),
|
|
158
201
|
})
|
|
159
202
|
.strict()
|
|
160
|
-
.
|
|
161
|
-
// §12.2: targets only
|
|
162
|
-
|
|
203
|
+
.superRefine((p, ctx) => {
|
|
204
|
+
// §12.2: targets only when build is set on an npm package. Both
|
|
205
|
+
// string-mode and array forms count.
|
|
206
|
+
if (p.targets !== undefined && p.build === undefined) {
|
|
207
|
+
ctx.addIssue({
|
|
208
|
+
code: z.ZodIssueCode.custom,
|
|
209
|
+
message: 'targets is only valid when build = "napi" or "bundled-cli" on npm packages',
|
|
210
|
+
});
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (Array.isArray(p.build)) {
|
|
214
|
+
// Each mode value can appear at most once. There's no meaningful
|
|
215
|
+
// "two napi build entries on the same package".
|
|
216
|
+
const seenModes = new Set();
|
|
217
|
+
const dupModes = [];
|
|
218
|
+
for (const e of p.build) {
|
|
219
|
+
const mode = typeof e === 'string' ? e : e.mode;
|
|
220
|
+
if (seenModes.has(mode))
|
|
221
|
+
dupModes.push(mode);
|
|
222
|
+
seenModes.add(mode);
|
|
223
|
+
}
|
|
224
|
+
if (dupModes.length > 0) {
|
|
225
|
+
ctx.addIssue({
|
|
226
|
+
code: z.ZodIssueCode.custom,
|
|
227
|
+
message: `build entries must have unique modes; duplicates: ${[...new Set(dupModes)].join(', ')}`,
|
|
228
|
+
path: ['build'],
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
// Resolved platform-package names must be pairwise distinct. Since
|
|
232
|
+
// `{triple}` is the only per-row varying placeholder, comparing the
|
|
233
|
+
// canonical templates is sufficient: identical templates collide on
|
|
234
|
+
// every triple, distinct templates differ on every triple. Bare-string
|
|
235
|
+
// entries default to '{name}-{triple}'.
|
|
236
|
+
const seenTemplates = new Map();
|
|
237
|
+
const collisions = [];
|
|
238
|
+
for (const e of p.build) {
|
|
239
|
+
const mode = typeof e === 'string' ? e : e.mode;
|
|
240
|
+
const tpl = typeof e === 'string' ? '{name}-{triple}' : e.name;
|
|
241
|
+
const prior = seenTemplates.get(tpl);
|
|
242
|
+
if (prior !== undefined) {
|
|
243
|
+
collisions.push(`"${tpl}" used by both ${prior} and ${mode}`);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
seenTemplates.set(tpl, mode);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
if (collisions.length > 0) {
|
|
250
|
+
ctx.addIssue({
|
|
251
|
+
code: z.ZodIssueCode.custom,
|
|
252
|
+
message: `build entries must have distinct platform-package name templates; ${collisions.join('; ')}`,
|
|
253
|
+
path: ['build'],
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
});
|
|
163
258
|
const PACKAGE = z.discriminatedUnion('kind', [CRATES_PKG, PYPI_PKG, NPM_PKG]);
|
|
164
259
|
const FILE = z
|
|
165
260
|
.object({
|
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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"}
|
|
@@ -3,34 +3,71 @@
|
|
|
3
3
|
* `build = "bundled-cli"`.
|
|
4
4
|
*
|
|
5
5
|
* Flow per plan §13.7:
|
|
6
|
-
* 1. For each target, synthesize a per-platform package
|
|
7
|
-
*
|
|
8
|
-
* platform binary.
|
|
6
|
+
* 1. For each (build entry, target), synthesize a per-platform package
|
|
7
|
+
* with narrowed os/cpu fields and the platform binary.
|
|
9
8
|
* 2. Publish each per-platform package (skip already-published).
|
|
10
9
|
* 3. Rewrite the main package's `package.json` to add
|
|
11
|
-
* `optionalDependencies` pointing at the just-published versions
|
|
10
|
+
* `optionalDependencies` pointing at the just-published versions
|
|
11
|
+
* across every build entry's family.
|
|
12
12
|
* 4. Caller (npm.ts:publishImpl) publishes the main package last.
|
|
13
13
|
*
|
|
14
14
|
* Ordering is enforced: a failed platform publish short-circuits
|
|
15
15
|
* before step 3, so the main package isn't published in an
|
|
16
16
|
* inconsistent state.
|
|
17
17
|
*
|
|
18
|
+
* Multi-mode (#dirsql): when `build` is an array with more than one
|
|
19
|
+
* entry, each entry contributes its own platform-package family. The
|
|
20
|
+
* artifact directory for each (mode, triple) carries a mode infix to
|
|
21
|
+
* keep `napi` and `bundled-cli` artifacts distinct on the build side.
|
|
22
|
+
*
|
|
18
23
|
* Issue #19. Plan: §13.7, §12.2.
|
|
19
24
|
*/
|
|
20
25
|
import type { Ctx } from '../types.js';
|
|
26
|
+
export type NpmBuildMode = 'napi' | 'bundled-cli';
|
|
27
|
+
/**
|
|
28
|
+
* Default template for platform package names. Resolves to
|
|
29
|
+
* `<main-name>-<triple>`, matching the historical single-mode shape.
|
|
30
|
+
*/
|
|
31
|
+
export declare const DEFAULT_NAME_TEMPLATE = "{name}-{triple}";
|
|
32
|
+
/** Variables surfaced to `name` templates. `{version}` is intentionally
|
|
33
|
+
* excluded — platform package names are immutable identifiers; the
|
|
34
|
+
* registry pins `name@version` in optionalDependencies, so embedding
|
|
35
|
+
* the version in the name itself defeats the cascade. */
|
|
36
|
+
export declare const ALLOWED_NAME_VARIABLES: readonly ["name", "scope", "base", "triple", "mode"];
|
|
37
|
+
/** A normalized build entry. Object form of every entry the consumer
|
|
38
|
+
* may write under `build`; the config layer coerces string entries
|
|
39
|
+
* (`"napi"`) into this shape with `name = DEFAULT_NAME_TEMPLATE`. */
|
|
40
|
+
export interface NpmBuildEntry {
|
|
41
|
+
mode: NpmBuildMode;
|
|
42
|
+
name: string;
|
|
43
|
+
}
|
|
44
|
+
/** Raw `build` field as written in toml — string, array, or absent. */
|
|
45
|
+
export type NpmBuildField = NpmBuildMode | readonly (NpmBuildMode | {
|
|
46
|
+
mode: NpmBuildMode;
|
|
47
|
+
name: string;
|
|
48
|
+
})[] | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Coerce any of the accepted `build` shapes into a normalized entry
|
|
51
|
+
* array. Bare-string entries default to `DEFAULT_NAME_TEMPLATE` so
|
|
52
|
+
* historical `build = "napi"` configs produce the same platform-package
|
|
53
|
+
* names as before. Returns `[]` when `build` is omitted, which signals
|
|
54
|
+
* "vanilla — no platform packages".
|
|
55
|
+
*/
|
|
56
|
+
export declare function normalizeBuild(build: NpmBuildField): readonly NpmBuildEntry[];
|
|
21
57
|
export interface PlatformPkg {
|
|
22
58
|
name: string;
|
|
23
59
|
path: string;
|
|
24
60
|
npm?: string | undefined;
|
|
25
61
|
access?: 'public' | 'restricted' | undefined;
|
|
26
62
|
tag?: string | undefined;
|
|
27
|
-
|
|
63
|
+
/** One or more entries — at least one mode, optionally a `name` template. */
|
|
64
|
+
build: readonly NpmBuildEntry[];
|
|
28
65
|
targets: readonly string[];
|
|
29
66
|
}
|
|
30
67
|
/**
|
|
31
|
-
* Publish every per-platform package
|
|
32
|
-
* package.json to add `optionalDependencies`. Returns
|
|
33
|
-
* published platform names so the caller can log them.
|
|
68
|
+
* Publish every per-platform package across every build entry, then
|
|
69
|
+
* rewrite the main package.json to add `optionalDependencies`. Returns
|
|
70
|
+
* the list of published platform names so the caller can log them.
|
|
34
71
|
*
|
|
35
72
|
* On any failure, throws before the main package.json is modified.
|
|
36
73
|
*/
|
|
@@ -39,12 +76,32 @@ export declare function publishPlatforms(pkg: PlatformPkg, version: string, ctx:
|
|
|
39
76
|
skipped: string[];
|
|
40
77
|
}>;
|
|
41
78
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
79
|
+
* Resolve a platform-package name template. `{name}`, `{scope}`,
|
|
80
|
+
* `{base}`, `{triple}`, and `{mode}` are substituted; unknown
|
|
81
|
+
* placeholders throw (config-load validation should catch these
|
|
82
|
+
* earlier — this guard is defensive).
|
|
83
|
+
*/
|
|
84
|
+
export declare function resolvePlatformName(template: string, vars: {
|
|
85
|
+
name: string;
|
|
86
|
+
triple: string;
|
|
87
|
+
mode: NpmBuildMode;
|
|
88
|
+
}): string;
|
|
89
|
+
/**
|
|
90
|
+
* Plan-time + handler-time: compute the artifact directory name for a
|
|
91
|
+
* given (package, mode, triple). The mode infix is only added when
|
|
92
|
+
* the package has multiple build entries, so single-mode packages keep
|
|
93
|
+
* their historical `<safe>-<triple>` artifact layout byte-for-byte.
|
|
94
|
+
*/
|
|
95
|
+
export declare function platformArtifactName(pkgName: string, mode: NpmBuildMode, triple: string, isMulti: boolean): string;
|
|
96
|
+
/**
|
|
97
|
+
* Match the specific stderr npm emits when its internal retry-on-transient-
|
|
98
|
+
* network-error fires after a successful PUT: the second attempt lands on a
|
|
99
|
+
* registry that already has the version and gets `E403 ... You cannot
|
|
100
|
+
* publish over the previously published versions: <ver>`. The package is
|
|
101
|
+
* already where we wanted it; npm just exits non-zero on the duplicate
|
|
102
|
+
* write.
|
|
46
103
|
*/
|
|
47
|
-
export declare function
|
|
104
|
+
export declare function looksLikePublishOverRace(stderr: string | undefined): boolean;
|
|
48
105
|
interface OsCpu {
|
|
49
106
|
os: string[];
|
|
50
107
|
cpu: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-platform.d.ts","sourceRoot":"","sources":["../../src/handlers/npm-platform.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"npm-platform.d.ts","sourceRoot":"","sources":["../../src/handlers/npm-platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAQH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD;;;0DAG0D;AAC1D,eAAO,MAAM,sBAAsB,sDAAuD,CAAC;AAE3F;;sEAEsE;AACtE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uEAAuE;AACvE,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,SAAS,CAAC,YAAY,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,GAChE,SAAS,CAAC;AAEd;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,aAAa,EAAE,CAQ7E;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,6EAA6E;IAC7E,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,GAAG,GACP,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAuCrD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GACzD,MAAM,CAsBR;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GACf,MAAM,CAGR;AAsHD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAG5E;AA4BD,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AA8CD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAQnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAM/E"}
|
|
@@ -3,18 +3,23 @@
|
|
|
3
3
|
* `build = "bundled-cli"`.
|
|
4
4
|
*
|
|
5
5
|
* Flow per plan §13.7:
|
|
6
|
-
* 1. For each target, synthesize a per-platform package
|
|
7
|
-
*
|
|
8
|
-
* platform binary.
|
|
6
|
+
* 1. For each (build entry, target), synthesize a per-platform package
|
|
7
|
+
* with narrowed os/cpu fields and the platform binary.
|
|
9
8
|
* 2. Publish each per-platform package (skip already-published).
|
|
10
9
|
* 3. Rewrite the main package's `package.json` to add
|
|
11
|
-
* `optionalDependencies` pointing at the just-published versions
|
|
10
|
+
* `optionalDependencies` pointing at the just-published versions
|
|
11
|
+
* across every build entry's family.
|
|
12
12
|
* 4. Caller (npm.ts:publishImpl) publishes the main package last.
|
|
13
13
|
*
|
|
14
14
|
* Ordering is enforced: a failed platform publish short-circuits
|
|
15
15
|
* before step 3, so the main package isn't published in an
|
|
16
16
|
* inconsistent state.
|
|
17
17
|
*
|
|
18
|
+
* Multi-mode (#dirsql): when `build` is an array with more than one
|
|
19
|
+
* entry, each entry contributes its own platform-package family. The
|
|
20
|
+
* artifact directory for each (mode, triple) carries a mode infix to
|
|
21
|
+
* keep `napi` and `bundled-cli` artifacts distinct on the build side.
|
|
22
|
+
*
|
|
18
23
|
* Issue #19. Plan: §13.7, §12.2.
|
|
19
24
|
*/
|
|
20
25
|
import { execFileSync } from 'node:child_process';
|
|
@@ -24,9 +29,34 @@ import { join } from 'node:path';
|
|
|
24
29
|
import { sanitizeArtifactName } from '../config.js';
|
|
25
30
|
import { buildSubprocessEnv, nonEmpty } from '../env.js';
|
|
26
31
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
|
|
32
|
+
* Default template for platform package names. Resolves to
|
|
33
|
+
* `<main-name>-<triple>`, matching the historical single-mode shape.
|
|
34
|
+
*/
|
|
35
|
+
export const DEFAULT_NAME_TEMPLATE = '{name}-{triple}';
|
|
36
|
+
/** Variables surfaced to `name` templates. `{version}` is intentionally
|
|
37
|
+
* excluded — platform package names are immutable identifiers; the
|
|
38
|
+
* registry pins `name@version` in optionalDependencies, so embedding
|
|
39
|
+
* the version in the name itself defeats the cascade. */
|
|
40
|
+
export const ALLOWED_NAME_VARIABLES = ['name', 'scope', 'base', 'triple', 'mode'];
|
|
41
|
+
/**
|
|
42
|
+
* Coerce any of the accepted `build` shapes into a normalized entry
|
|
43
|
+
* array. Bare-string entries default to `DEFAULT_NAME_TEMPLATE` so
|
|
44
|
+
* historical `build = "napi"` configs produce the same platform-package
|
|
45
|
+
* names as before. Returns `[]` when `build` is omitted, which signals
|
|
46
|
+
* "vanilla — no platform packages".
|
|
47
|
+
*/
|
|
48
|
+
export function normalizeBuild(build) {
|
|
49
|
+
if (build === undefined)
|
|
50
|
+
return [];
|
|
51
|
+
const arr = typeof build === 'string' ? [build] : build;
|
|
52
|
+
return arr.map((e) => typeof e === 'string'
|
|
53
|
+
? { mode: e, name: DEFAULT_NAME_TEMPLATE }
|
|
54
|
+
: { mode: e.mode, name: e.name });
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Publish every per-platform package across every build entry, then
|
|
58
|
+
* rewrite the main package.json to add `optionalDependencies`. Returns
|
|
59
|
+
* the list of published platform names so the caller can log them.
|
|
30
60
|
*
|
|
31
61
|
* On any failure, throws before the main package.json is modified.
|
|
32
62
|
*/
|
|
@@ -34,39 +64,70 @@ export async function publishPlatforms(pkg, version, ctx) {
|
|
|
34
64
|
const mainName = pkg.npm ?? pkg.name;
|
|
35
65
|
const published = [];
|
|
36
66
|
const skipped = [];
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
67
|
+
const isMulti = pkg.build.length > 1;
|
|
68
|
+
for (const entry of pkg.build) {
|
|
69
|
+
for (const target of pkg.targets) {
|
|
70
|
+
const platformName = resolvePlatformName(entry.name, {
|
|
71
|
+
name: mainName,
|
|
72
|
+
triple: target,
|
|
73
|
+
mode: entry.mode,
|
|
74
|
+
});
|
|
75
|
+
if (await isPlatformPublished(platformName, version, ctx)) {
|
|
76
|
+
skipped.push(platformName);
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const stagingDir = synthesizePlatformPackage(pkg, entry, target, platformName, version, ctx, isMulti);
|
|
80
|
+
try {
|
|
81
|
+
npmPublish(stagingDir, pkg, ctx);
|
|
82
|
+
published.push(platformName);
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
/* v8 ignore next -- cleanup after publish; failure here is cosmetic */
|
|
86
|
+
rmSync(stagingDir, { recursive: true, force: true });
|
|
87
|
+
}
|
|
51
88
|
}
|
|
52
89
|
}
|
|
53
90
|
rewriteOptionalDependencies(pkg, version, [...published, ...skipped]);
|
|
54
91
|
return { published, skipped };
|
|
55
92
|
}
|
|
56
93
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
94
|
+
* Resolve a platform-package name template. `{name}`, `{scope}`,
|
|
95
|
+
* `{base}`, `{triple}`, and `{mode}` are substituted; unknown
|
|
96
|
+
* placeholders throw (config-load validation should catch these
|
|
97
|
+
* earlier — this guard is defensive).
|
|
61
98
|
*/
|
|
62
|
-
export function
|
|
63
|
-
const scopedMatch = /^@([^/]+)\/(.+)$/.exec(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
99
|
+
export function resolvePlatformName(template, vars) {
|
|
100
|
+
const scopedMatch = /^@([^/]+)\/(.+)$/.exec(vars.name);
|
|
101
|
+
const scope = scopedMatch ? scopedMatch[1] : '';
|
|
102
|
+
const base = scopedMatch ? scopedMatch[2] : vars.name;
|
|
103
|
+
return template.replace(/\{(\w+)\}/g, (_match, key) => {
|
|
104
|
+
switch (key) {
|
|
105
|
+
case 'name':
|
|
106
|
+
return vars.name;
|
|
107
|
+
case 'scope':
|
|
108
|
+
return scope;
|
|
109
|
+
case 'base':
|
|
110
|
+
return base;
|
|
111
|
+
case 'triple':
|
|
112
|
+
return vars.triple;
|
|
113
|
+
case 'mode':
|
|
114
|
+
return vars.mode;
|
|
115
|
+
/* v8 ignore start -- config-load validation rejects unknown placeholders; this branch is defensive */
|
|
116
|
+
default:
|
|
117
|
+
throw new Error(`unknown placeholder {${key}} in name template`);
|
|
118
|
+
}
|
|
119
|
+
/* v8 ignore stop */
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Plan-time + handler-time: compute the artifact directory name for a
|
|
124
|
+
* given (package, mode, triple). The mode infix is only added when
|
|
125
|
+
* the package has multiple build entries, so single-mode packages keep
|
|
126
|
+
* their historical `<safe>-<triple>` artifact layout byte-for-byte.
|
|
127
|
+
*/
|
|
128
|
+
export function platformArtifactName(pkgName, mode, triple, isMulti) {
|
|
129
|
+
const safe = sanitizeArtifactName(pkgName);
|
|
130
|
+
return isMulti ? `${safe}-${mode}-${triple}` : `${safe}-${triple}`;
|
|
70
131
|
}
|
|
71
132
|
/* --------------------------- internals --------------------------- */
|
|
72
133
|
function isPlatformPublished(platformName, version, ctx) {
|
|
@@ -81,14 +142,12 @@ function isPlatformPublished(platformName, version, ctx) {
|
|
|
81
142
|
return Promise.resolve(false);
|
|
82
143
|
}
|
|
83
144
|
}
|
|
84
|
-
function synthesizePlatformPackage(pkg, target, version, ctx) {
|
|
85
|
-
const mainName = pkg.npm ?? pkg.name;
|
|
86
|
-
const platformName = platformPackageName(mainName, target);
|
|
145
|
+
function synthesizePlatformPackage(pkg, entry, target, platformName, version, ctx, isMulti) {
|
|
87
146
|
const staging = mkdtempSync(join(tmpdir(), 'putitoutthere-plat-'));
|
|
88
147
|
// #237: encode pkg.name to match the on-disk artifact directory the
|
|
89
148
|
// planner emitted (slash-containing names like `js/foo` land at
|
|
90
149
|
// `artifacts/js__foo-<triple>/`, not `artifacts/js/foo-<triple>/`).
|
|
91
|
-
const artifactName =
|
|
150
|
+
const artifactName = platformArtifactName(pkg.name, entry.mode, target, isMulti);
|
|
92
151
|
/* v8 ignore next -- tests inject artifactsRoot explicitly; publish.ts always sets it */
|
|
93
152
|
const artifactsRoot = ctx.artifactsRoot ?? join(ctx.cwd, 'artifacts');
|
|
94
153
|
const artifactDir = join(artifactsRoot, artifactName);
|
|
@@ -116,7 +175,7 @@ function synthesizePlatformPackage(pkg, target, version, ctx) {
|
|
|
116
175
|
os,
|
|
117
176
|
cpu,
|
|
118
177
|
files: fileList,
|
|
119
|
-
main: pickMainFile(fileList,
|
|
178
|
+
main: pickMainFile(fileList, entry.mode),
|
|
120
179
|
...(libc !== undefined ? { libc } : {}),
|
|
121
180
|
...(mainPkg['repository'] !== undefined ? { repository: mainPkg['repository'] } : {}),
|
|
122
181
|
...(mainPkg['license'] !== undefined ? { license: mainPkg['license'] } : {}),
|
|
@@ -144,10 +203,33 @@ function npmPublish(stagingDir, pkg, ctx) {
|
|
|
144
203
|
}
|
|
145
204
|
catch (err) {
|
|
146
205
|
const stderr = err.stderr?.toString('utf8').trim();
|
|
206
|
+
// npm CLI's retry-on-transient-network-error: a successful PUT that
|
|
207
|
+
// the registry acked but for which npm saw a flaky response (timeout,
|
|
208
|
+
// 502, connection reset) gets retried with the same payload. The
|
|
209
|
+
// retry's PUT lands on a registry that already has the new version
|
|
210
|
+
// and gets E403 "cannot publish over the previously published versions".
|
|
211
|
+
// The first attempt actually succeeded — the package + provenance are
|
|
212
|
+
// on the registry — so treat this exact stderr shape as success.
|
|
213
|
+
if (looksLikePublishOverRace(stderr)) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
147
216
|
const base = err instanceof Error ? err.message : String(err);
|
|
148
217
|
throw new Error(`npm publish (platform) failed${stderr ? `:\n${stderr}` : `: ${base}`}`, { cause: err });
|
|
149
218
|
}
|
|
150
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Match the specific stderr npm emits when its internal retry-on-transient-
|
|
222
|
+
* network-error fires after a successful PUT: the second attempt lands on a
|
|
223
|
+
* registry that already has the version and gets `E403 ... You cannot
|
|
224
|
+
* publish over the previously published versions: <ver>`. The package is
|
|
225
|
+
* already where we wanted it; npm just exits non-zero on the duplicate
|
|
226
|
+
* write.
|
|
227
|
+
*/
|
|
228
|
+
export function looksLikePublishOverRace(stderr) {
|
|
229
|
+
if (!stderr)
|
|
230
|
+
return false;
|
|
231
|
+
return /cannot publish over the previously published versions/i.test(stderr);
|
|
232
|
+
}
|
|
151
233
|
function rewriteOptionalDependencies(pkg, version, platformPackages) {
|
|
152
234
|
const p = join(pkg.path, 'package.json');
|
|
153
235
|
const raw = readFileSync(p, 'utf8');
|
|
@@ -238,8 +320,8 @@ export function assertTripleSupported(triple, packageName) {
|
|
|
238
320
|
function unmappedTripleMessage(target) {
|
|
239
321
|
return `Target triple "${target}" is not mapped to npm os/cpu. Add it to TRIPLE_MAP in src/handlers/npm-platform.ts.`;
|
|
240
322
|
}
|
|
241
|
-
function pickMainFile(files,
|
|
242
|
-
if (
|
|
323
|
+
function pickMainFile(files, mode) {
|
|
324
|
+
if (mode === 'napi') {
|
|
243
325
|
const node = files.find((f) => f.endsWith('.node'));
|
|
244
326
|
/* v8 ignore next -- completeness check for napi ensures a .node file is present */
|
|
245
327
|
return node ?? files[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-platform.js","sourceRoot":"","sources":["../../src/handlers/npm-platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"npm-platform.js","sourceRoot":"","sources":["../../src/handlers/npm-platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/handlers/npm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAA6B,KAAK,OAAO,EAAwC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/handlers/npm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAA6B,KAAK,OAAO,EAAwC,MAAM,aAAa,CAAC;AA8L5G;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBvE;AAYD,eAAO,MAAM,GAAG,EAAE,OAKjB,CAAC"}
|
package/dist/handlers/npm.js
CHANGED
|
@@ -11,7 +11,7 @@ import { execFileSync } from 'node:child_process';
|
|
|
11
11
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
12
12
|
import { join } from 'node:path';
|
|
13
13
|
import { normalizeTarget } from '../types.js';
|
|
14
|
-
import { publishPlatforms } from './npm-platform.js';
|
|
14
|
+
import { looksLikePublishOverRace, normalizeBuild, publishPlatforms, } from './npm-platform.js';
|
|
15
15
|
import { buildSubprocessEnv, nonEmpty } from '../env.js';
|
|
16
16
|
import { USER_AGENT } from '../version.js';
|
|
17
17
|
function npmNameFor(pkg) {
|
|
@@ -70,16 +70,15 @@ async function publishImpl(pkg, version, ctx) {
|
|
|
70
70
|
// napi / bundled-cli: publish platform packages first, then rewrite
|
|
71
71
|
// the main package.json to add optionalDependencies, then fall through
|
|
72
72
|
// to the normal main-package publish path below. §13.7.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
pkg.targets.length > 0) {
|
|
73
|
+
const buildEntries = normalizeBuild(pkg.build);
|
|
74
|
+
if (buildEntries.length > 0 && pkg.targets !== undefined && pkg.targets.length > 0) {
|
|
76
75
|
const platformPkg = {
|
|
77
76
|
name: pkg.name,
|
|
78
77
|
path: pkg.path,
|
|
79
78
|
npm: pkg.npm,
|
|
80
79
|
access: pkg.access,
|
|
81
80
|
tag: pkg.tag,
|
|
82
|
-
build:
|
|
81
|
+
build: buildEntries,
|
|
83
82
|
// Platform publishing only cares about the triple — the `runner`
|
|
84
83
|
// override is a planner/CI concern. Normalize away the union here
|
|
85
84
|
// so npm-platform.ts keeps its `readonly string[]` contract.
|
|
@@ -114,6 +113,17 @@ async function publishImpl(pkg, version, ctx) {
|
|
|
114
113
|
const stderr = err.stderr?.toString('utf8').trim();
|
|
115
114
|
const base = err instanceof Error ? err.message : String(err);
|
|
116
115
|
const name = npmNameFor(pkg);
|
|
116
|
+
// npm CLI's retry-on-transient-network-error: a successful PUT that
|
|
117
|
+
// came back flaky (timeout / 502 / reset) gets retried, the second
|
|
118
|
+
// PUT lands on a registry that already has the version, npm exits
|
|
119
|
+
// E403 "cannot publish over the previously published versions". The
|
|
120
|
+
// first attempt actually succeeded — treat as already-published.
|
|
121
|
+
if (looksLikePublishOverRace(stderr)) {
|
|
122
|
+
return {
|
|
123
|
+
status: 'already-published',
|
|
124
|
+
url: `https://www.npmjs.com/package/${name}/v/${version}`,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
117
127
|
// npm trusted publishing (OIDC) requires the package to already
|
|
118
128
|
// exist on the registry; the first-ever publish must go through a
|
|
119
129
|
// token. Detect that exact shape — auth failure + OIDC in play +
|
package/dist/handlers/npm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/handlers/npm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAgE,MAAM,aAAa,CAAC;AAC5G,OAAO,
|
|
1
|
+
{"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/handlers/npm.ts"],"names":[],"mappings":"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"}
|
package/dist/plan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,OAAO,EAA8B,KAAK,IAAI,EAAoB,MAAM,YAAY,CAAC;AAIrF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,UAAU,CAAC,EAAE;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAuC5D"}
|
package/dist/plan.js
CHANGED
|
@@ -12,7 +12,7 @@ import { join } from 'node:path';
|
|
|
12
12
|
import { computeCascade } from './cascade.js';
|
|
13
13
|
import { loadConfig, sanitizeArtifactName } from './config.js';
|
|
14
14
|
import { commitBody, commitParents, diffNames, headCommit, lastTag } from './git.js';
|
|
15
|
-
import { assertTripleSupported } from './handlers/npm-platform.js';
|
|
15
|
+
import { assertTripleSupported, normalizeBuild, platformArtifactName, } from './handlers/npm-platform.js';
|
|
16
16
|
import { parseTagVersion } from './tag-template.js';
|
|
17
17
|
import { normalizeTarget } from './types.js';
|
|
18
18
|
import { parseTrailer } from './trailer.js';
|
|
@@ -166,31 +166,45 @@ function rowsForPackage(pkg, version) {
|
|
|
166
166
|
return out;
|
|
167
167
|
}
|
|
168
168
|
case 'npm': {
|
|
169
|
-
const
|
|
169
|
+
const rawBuild = pkg.build;
|
|
170
|
+
const buildEntries = normalizeBuild(rawBuild);
|
|
170
171
|
const targets = pkg.targets ?? [];
|
|
171
|
-
if (
|
|
172
|
+
if (buildEntries.length > 0) {
|
|
172
173
|
// Plan-time guard: bail before a CI matrix runs on an unmapped
|
|
173
174
|
// triple. Handler-time validation remains as belt-and-suspenders.
|
|
174
175
|
// Issue #170 follow-up.
|
|
175
|
-
for (const
|
|
176
|
-
assertTripleSupported(normalizeTarget(
|
|
176
|
+
for (const tEntry of targets) {
|
|
177
|
+
assertTripleSupported(normalizeTarget(tEntry).triple, pkg.name);
|
|
177
178
|
}
|
|
179
|
+
const isMulti = buildEntries.length > 1;
|
|
178
180
|
const out = [];
|
|
179
|
-
for (const
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
181
|
+
for (const bEntry of buildEntries) {
|
|
182
|
+
for (const tEntry of targets) {
|
|
183
|
+
const { triple, runner } = normalizeTarget(tEntry);
|
|
184
|
+
// #dirsql: multi-mode rows carry a mode infix in both the
|
|
185
|
+
// artifact-name and artifact-path so napi `.node` files and
|
|
186
|
+
// bundled-cli binaries don't collide on the build side.
|
|
187
|
+
// Single-mode shape preserved byte-for-byte.
|
|
188
|
+
const artifactName = platformArtifactName(pkg.name, bEntry.mode, triple, isMulti);
|
|
189
|
+
const artifactPath = isMulti
|
|
190
|
+
? at(`build/${bEntry.mode}-${triple}`)
|
|
191
|
+
: at(`build/${triple}`);
|
|
192
|
+
out.push({
|
|
193
|
+
name: pkg.name,
|
|
194
|
+
kind: 'npm',
|
|
195
|
+
version,
|
|
196
|
+
target: triple,
|
|
197
|
+
runs_on: runner ?? defaultRunsOn(triple),
|
|
198
|
+
artifact_name: artifactName,
|
|
199
|
+
artifact_path: artifactPath,
|
|
200
|
+
path: pkg.path,
|
|
201
|
+
build: bEntry.mode,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
192
204
|
}
|
|
193
|
-
// Plus the main package row.
|
|
205
|
+
// Plus the main package row. The main row's `build` is informational
|
|
206
|
+
// (no per-target compile happens for it); we set it to the first
|
|
207
|
+
// entry's mode so length-1 array forms match the string-form shape.
|
|
194
208
|
out.push({
|
|
195
209
|
name: pkg.name,
|
|
196
210
|
kind: 'npm',
|
|
@@ -200,7 +214,7 @@ function rowsForPackage(pkg, version) {
|
|
|
200
214
|
artifact_name: `${safe}-main`,
|
|
201
215
|
artifact_path: at('package.json'),
|
|
202
216
|
path: pkg.path,
|
|
203
|
-
build,
|
|
217
|
+
build: buildEntries[0].mode,
|
|
204
218
|
});
|
|
205
219
|
return out;
|
|
206
220
|
}
|
|
@@ -215,7 +229,6 @@ function rowsForPackage(pkg, version) {
|
|
|
215
229
|
artifact_name: `${safe}-pkg`,
|
|
216
230
|
artifact_path: at('package.json'),
|
|
217
231
|
path: pkg.path,
|
|
218
|
-
...(build !== undefined ? { build } : {}),
|
|
219
232
|
},
|
|
220
233
|
];
|
|
221
234
|
}
|
package/dist/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAgB,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
|