putitoutthere 0.2.26 → 0.2.28
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 +2 -0
- package/MIGRATIONS.md +244 -0
- package/README.md +75 -64
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +10 -1
- package/dist/check.js.map +1 -1
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +59 -0
- package/dist/config.js.map +1 -1
- package/dist/error-codes.d.ts +10 -0
- package/dist/error-codes.d.ts.map +1 -1
- package/dist/error-codes.js +11 -0
- package/dist/error-codes.js.map +1 -1
- package/dist/handlers/pypi.d.ts +0 -8
- package/dist/handlers/pypi.d.ts.map +1 -1
- package/dist/handlers/pypi.js +25 -47
- package/dist/handlers/pypi.js.map +1 -1
- package/dist/plan.d.ts +1 -1
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +15 -2
- package/dist/plan.js.map +1 -1
- package/dist/preflight.d.ts +38 -0
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +86 -0
- package/dist/preflight.js.map +1 -1
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +7 -1
- package/dist/publish.js.map +1 -1
- package/dist/write-version.d.ts +20 -33
- package/dist/write-version.d.ts.map +1 -1
- package/dist/write-version.js +33 -73
- package/dist/write-version.js.map +1 -1
- package/package.json +1 -1
package/dist/publish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAgB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,IAAI,EAAkB,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
|
package/dist/write-version.d.ts
CHANGED
|
@@ -1,43 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pre-build version bump used by `_matrix.yml`'s maturin steps. #276.
|
|
3
3
|
*
|
|
4
|
-
* Maturin reads `[
|
|
5
|
-
* `[
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* versioned.
|
|
4
|
+
* Maturin reads `[package].version` from a sibling `Cargo.toml` (when
|
|
5
|
+
* pyproject declares `dynamic = ["version"]`) at build time. There is
|
|
6
|
+
* no env override the build job can inject —
|
|
7
|
+
* `SETUPTOOLS_SCM_PRETEND_VERSION` is honored by hatch-vcs /
|
|
8
|
+
* setuptools-scm but not by maturin. So Cargo.toml has to be
|
|
9
|
+
* rewritten before `maturin build` runs. crates and npm bump at
|
|
10
|
+
* publish (cargo / npm read the manifest at upload time, not before);
|
|
11
|
+
* maturin is the one path where the artifact (the wheel) leaves the
|
|
12
|
+
* build runner already versioned.
|
|
14
13
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* Static `[project].version` literals are rejected at preflight time
|
|
15
|
+
* (`requirePypiVersionSource`); this function refuses the same shape
|
|
16
|
+
* for the same reason, so a CLI-direct invocation surfaces the same
|
|
17
|
+
* actionable error rather than building an under-versioned artifact.
|
|
19
18
|
*/
|
|
20
19
|
/**
|
|
21
|
-
* Rewrite the version source
|
|
22
|
-
*
|
|
20
|
+
* Rewrite the version source for a maturin package and return the list
|
|
21
|
+
* of absolute paths that were modified.
|
|
23
22
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* pyproject literal AND a Cargo `[package].version` literal will
|
|
30
|
-
* have the two manifests disagree post-bump if only pyproject is
|
|
31
|
-
* rewritten, and maturin's mismatch-resolution behavior varies
|
|
32
|
-
* by platform / version (PR #277 hit this on Windows: wheels
|
|
33
|
-
* shipped at the stale Cargo literal even though pyproject was
|
|
34
|
-
* bumped). Bumping both keeps the contract straightforward.
|
|
35
|
-
* - `[project].dynamic = ["version", ...]` → rewrite the sibling
|
|
36
|
-
* `Cargo.toml`'s `[package].version`. Errors if Cargo.toml is
|
|
37
|
-
* missing.
|
|
38
|
-
*
|
|
39
|
-
* Throws on missing pyproject.toml, malformed TOML, or a `[project]`
|
|
40
|
-
* table that declares neither a literal nor `dynamic = ["version"]`.
|
|
23
|
+
* Contract: pyproject must declare `[project].dynamic = ["version"]`.
|
|
24
|
+
* The bump targets the sibling `Cargo.toml`'s `[package].version`.
|
|
25
|
+
* Errors if Cargo.toml is missing, pyproject is missing, pyproject is
|
|
26
|
+
* malformed, the `[project]` table is absent, or pyproject carries a
|
|
27
|
+
* static `[project].version` literal (#333).
|
|
41
28
|
*
|
|
42
29
|
* I/O uses `readFileSync` with `try` / `catch (ENOENT)` instead of an
|
|
43
30
|
* `existsSync` precheck — the precheck is a TOCTOU race CodeQL flags
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-version.d.ts","sourceRoot":"","sources":["../src/write-version.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"write-version.d.ts","sourceRoot":"","sources":["../src/write-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAaH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAuD9E"}
|
package/dist/write-version.js
CHANGED
|
@@ -1,48 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pre-build version bump used by `_matrix.yml`'s maturin steps. #276.
|
|
3
3
|
*
|
|
4
|
-
* Maturin reads `[
|
|
5
|
-
* `[
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* versioned.
|
|
4
|
+
* Maturin reads `[package].version` from a sibling `Cargo.toml` (when
|
|
5
|
+
* pyproject declares `dynamic = ["version"]`) at build time. There is
|
|
6
|
+
* no env override the build job can inject —
|
|
7
|
+
* `SETUPTOOLS_SCM_PRETEND_VERSION` is honored by hatch-vcs /
|
|
8
|
+
* setuptools-scm but not by maturin. So Cargo.toml has to be
|
|
9
|
+
* rewritten before `maturin build` runs. crates and npm bump at
|
|
10
|
+
* publish (cargo / npm read the manifest at upload time, not before);
|
|
11
|
+
* maturin is the one path where the artifact (the wheel) leaves the
|
|
12
|
+
* build runner already versioned.
|
|
14
13
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* Static `[project].version` literals are rejected at preflight time
|
|
15
|
+
* (`requirePypiVersionSource`); this function refuses the same shape
|
|
16
|
+
* for the same reason, so a CLI-direct invocation surfaces the same
|
|
17
|
+
* actionable error rather than building an under-versioned artifact.
|
|
19
18
|
*/
|
|
20
19
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
21
20
|
import { join } from 'node:path';
|
|
22
21
|
import { parse as parseToml } from 'smol-toml';
|
|
22
|
+
import { ErrorCodes } from './error-codes.js';
|
|
23
23
|
import { replaceCargoVersion } from './handlers/crates.js';
|
|
24
|
-
|
|
24
|
+
const DYNAMIC_VERSION_DOC_POINTER = 'https://thekevinscott.github.io/putitoutthere/guide/dynamic-versions';
|
|
25
25
|
/**
|
|
26
|
-
* Rewrite the version source
|
|
27
|
-
*
|
|
26
|
+
* Rewrite the version source for a maturin package and return the list
|
|
27
|
+
* of absolute paths that were modified.
|
|
28
28
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* pyproject literal AND a Cargo `[package].version` literal will
|
|
35
|
-
* have the two manifests disagree post-bump if only pyproject is
|
|
36
|
-
* rewritten, and maturin's mismatch-resolution behavior varies
|
|
37
|
-
* by platform / version (PR #277 hit this on Windows: wheels
|
|
38
|
-
* shipped at the stale Cargo literal even though pyproject was
|
|
39
|
-
* bumped). Bumping both keeps the contract straightforward.
|
|
40
|
-
* - `[project].dynamic = ["version", ...]` → rewrite the sibling
|
|
41
|
-
* `Cargo.toml`'s `[package].version`. Errors if Cargo.toml is
|
|
42
|
-
* missing.
|
|
43
|
-
*
|
|
44
|
-
* Throws on missing pyproject.toml, malformed TOML, or a `[project]`
|
|
45
|
-
* table that declares neither a literal nor `dynamic = ["version"]`.
|
|
29
|
+
* Contract: pyproject must declare `[project].dynamic = ["version"]`.
|
|
30
|
+
* The bump targets the sibling `Cargo.toml`'s `[package].version`.
|
|
31
|
+
* Errors if Cargo.toml is missing, pyproject is missing, pyproject is
|
|
32
|
+
* malformed, the `[project]` table is absent, or pyproject carries a
|
|
33
|
+
* static `[project].version` literal (#333).
|
|
46
34
|
*
|
|
47
35
|
* I/O uses `readFileSync` with `try` / `catch (ENOENT)` instead of an
|
|
48
36
|
* `existsSync` precheck — the precheck is a TOCTOU race CodeQL flags
|
|
@@ -74,58 +62,30 @@ export function writeVersionForBuild(pkgDir, version) {
|
|
|
74
62
|
}
|
|
75
63
|
const project = parsed?.project;
|
|
76
64
|
if (!project) {
|
|
77
|
-
throw new Error(`write-version: ${pyProjectPath} has no [project] table -- declare [project].
|
|
65
|
+
throw new Error(`write-version: ${pyProjectPath} has no [project] table -- declare [project].dynamic = ["version"]. See ${DYNAMIC_VERSION_DOC_POINTER}.`);
|
|
78
66
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
try {
|
|
83
|
-
cargoOriginal = readFileSync(cargoPath, 'utf8');
|
|
84
|
-
}
|
|
85
|
-
catch (err) {
|
|
86
|
-
if (err.code === 'ENOENT') {
|
|
87
|
-
throw new Error(`write-version: pyproject.toml declares dynamic = ["version"] but Cargo.toml is missing at ${cargoPath}. Maturin's dynamic-version mode reads [package].version from Cargo.toml; without it there's nothing to bump.`, { cause: err });
|
|
88
|
-
}
|
|
89
|
-
/* v8 ignore next -- non-ENOENT read errors surface as-is */
|
|
90
|
-
throw err;
|
|
67
|
+
if (!isDynamicVersion(project)) {
|
|
68
|
+
if (typeof project.version === 'string') {
|
|
69
|
+
throw new Error(`[${ErrorCodes.PYPI_STATIC_VERSION}] write-version: ${pyProjectPath} declares a static \`[project].version\` literal. Use \`[project].dynamic = ["version"]\` with hatch-vcs (recommended), setuptools-scm, or the maturin Cargo.toml-driven path — putitoutthere does not edit pyproject.toml at release time. See ${DYNAMIC_VERSION_DOC_POINTER}.`);
|
|
91
70
|
}
|
|
92
|
-
|
|
93
|
-
if (cargoUpdated !== cargoOriginal)
|
|
94
|
-
writeFileSync(cargoPath, cargoUpdated, 'utf8');
|
|
95
|
-
return [cargoPath];
|
|
71
|
+
throw new Error(`write-version: ${pyProjectPath}: [project] table declares no version source -- add \`dynamic = ["version"]\`. See ${DYNAMIC_VERSION_DOC_POINTER}.`);
|
|
96
72
|
}
|
|
97
|
-
const
|
|
98
|
-
const pyUpdated = replacePyProjectVersion(pyOriginal, version);
|
|
99
|
-
if (pyUpdated !== pyOriginal)
|
|
100
|
-
writeFileSync(pyProjectPath, pyUpdated, 'utf8');
|
|
101
|
-
written.push(pyProjectPath);
|
|
102
|
-
// Bump a sibling Cargo.toml's [package].version too, when present.
|
|
103
|
-
// Pure-python pyproject (no Rust crate) → no Cargo.toml → skip.
|
|
104
|
-
// Cargo.toml without [package].version (workspace root) → skip
|
|
105
|
-
// (replaceCargoVersion throws on missing field; catch and continue).
|
|
73
|
+
const cargoPath = join(pkgDir, 'Cargo.toml');
|
|
106
74
|
let cargoOriginal;
|
|
107
75
|
try {
|
|
108
76
|
cargoOriginal = readFileSync(cargoPath, 'utf8');
|
|
109
77
|
}
|
|
110
78
|
catch (err) {
|
|
111
|
-
if (err.code === 'ENOENT')
|
|
112
|
-
|
|
79
|
+
if (err.code === 'ENOENT') {
|
|
80
|
+
throw new Error(`write-version: pyproject.toml declares dynamic = ["version"] but Cargo.toml is missing at ${cargoPath}. Maturin's dynamic-version mode reads [package].version from Cargo.toml; without it there's nothing to bump.`, { cause: err });
|
|
81
|
+
}
|
|
113
82
|
/* v8 ignore next -- non-ENOENT read errors surface as-is */
|
|
114
83
|
throw err;
|
|
115
84
|
}
|
|
116
|
-
|
|
117
|
-
try {
|
|
118
|
-
cargoUpdated = replaceCargoVersion(cargoOriginal, version);
|
|
119
|
-
}
|
|
120
|
-
catch {
|
|
121
|
-
// No [package].version in Cargo.toml — nothing to bump on the
|
|
122
|
-
// Cargo side. The pyproject bump above is the source of truth.
|
|
123
|
-
return written;
|
|
124
|
-
}
|
|
85
|
+
const cargoUpdated = replaceCargoVersion(cargoOriginal, version);
|
|
125
86
|
if (cargoUpdated !== cargoOriginal)
|
|
126
87
|
writeFileSync(cargoPath, cargoUpdated, 'utf8');
|
|
127
|
-
|
|
128
|
-
return written;
|
|
88
|
+
return [cargoPath];
|
|
129
89
|
}
|
|
130
90
|
function isDynamicVersion(project) {
|
|
131
91
|
const { dynamic } = project;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-version.js","sourceRoot":"","sources":["../src/write-version.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"write-version.js","sourceRoot":"","sources":["../src/write-version.ts"],"names":[],"mappings":"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"}
|