bulletin-deploy 0.7.27-rc.1 → 0.7.27

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.
@@ -9,10 +9,10 @@ import {
9
9
  offerBugReport,
10
10
  scrubSecrets,
11
11
  setDeployContext
12
- } from "./chunk-IZY6E5J3.js";
13
- import "./chunk-V52Y6Y2J.js";
14
- import "./chunk-JI6IBIIN.js";
15
- import "./chunk-QUTNSEUH.js";
12
+ } from "./chunk-I7YT2IAO.js";
13
+ import "./chunk-AXIJLJZK.js";
14
+ import "./chunk-FW4HEUMH.js";
15
+ import "./chunk-6TIWKKDS.js";
16
16
  export {
17
17
  buildCliFlagsSummary,
18
18
  buildLabels,
@@ -6,7 +6,7 @@ import * as path from "path";
6
6
  // package.json
7
7
  var package_default = {
8
8
  name: "bulletin-deploy",
9
- version: "0.7.27-rc.1",
9
+ version: "0.7.27",
10
10
  private: false,
11
11
  repository: {
12
12
  type: "git",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-JI6IBIIN.js";
3
+ } from "./chunk-FW4HEUMH.js";
4
4
 
5
5
  // src/version-check.ts
6
6
  import { execSync, execFileSync } from "child_process";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  package_default,
3
3
  writeRunState
4
- } from "./chunk-QUTNSEUH.js";
4
+ } from "./chunk-6TIWKKDS.js";
5
5
 
6
6
  // src/memory-report.ts
7
7
  import * as fs2 from "fs";
@@ -2,11 +2,11 @@ import {
2
2
  classifyErrorArea,
3
3
  isInteractive,
4
4
  promptYesNo
5
- } from "./chunk-V52Y6Y2J.js";
5
+ } from "./chunk-AXIJLJZK.js";
6
6
  import {
7
7
  VERSION,
8
8
  getCurrentSentryTraceId
9
- } from "./chunk-JI6IBIIN.js";
9
+ } from "./chunk-FW4HEUMH.js";
10
10
 
11
11
  // src/bug-report.ts
12
12
  import { execSync, execFileSync } from "child_process";
@@ -20,10 +20,10 @@ import {
20
20
  } from "./chunk-S7EM5VMW.js";
21
21
  import {
22
22
  setDeployContext
23
- } from "./chunk-IZY6E5J3.js";
23
+ } from "./chunk-I7YT2IAO.js";
24
24
  import {
25
25
  probeChunks
26
- } from "./chunk-CRXSSXRE.js";
26
+ } from "./chunk-W4R7HNRX.js";
27
27
  import {
28
28
  packSection
29
29
  } from "./chunk-C2TS5MER.js";
@@ -34,7 +34,7 @@ import {
34
34
  parseDomainName,
35
35
  popStatusName,
36
36
  verifyNonceAdvanced
37
- } from "./chunk-SU5JCAYB.js";
37
+ } from "./chunk-TILLNN33.js";
38
38
  import {
39
39
  derivePoolAccounts,
40
40
  detectTestnet,
@@ -56,7 +56,7 @@ import {
56
56
  truncateAddress,
57
57
  withDeploySpan,
58
58
  withSpan
59
- } from "./chunk-JI6IBIIN.js";
59
+ } from "./chunk-FW4HEUMH.js";
60
60
  import {
61
61
  DEFAULT_ENV_ID,
62
62
  getPopSelfServeConfig,
@@ -7,7 +7,7 @@ import {
7
7
  setDeploySentryTag,
8
8
  truncateAddress,
9
9
  withSpan
10
- } from "./chunk-JI6IBIIN.js";
10
+ } from "./chunk-FW4HEUMH.js";
11
11
  import {
12
12
  validateContractAddresses
13
13
  } from "./chunk-MGU5I7H5.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  captureWarning
3
- } from "./chunk-JI6IBIIN.js";
3
+ } from "./chunk-FW4HEUMH.js";
4
4
 
5
5
  // src/chunk-probe.ts
6
6
  import { Twox128, Blake2128Concat, decAnyMetadata, unifyMetadata } from "@polkadot-api/substrate-bindings";
@@ -5,9 +5,9 @@ import {
5
5
  _decodeStorageValue,
6
6
  _resetProbeSession,
7
7
  probeChunks
8
- } from "./chunk-CRXSSXRE.js";
9
- import "./chunk-JI6IBIIN.js";
10
- import "./chunk-QUTNSEUH.js";
8
+ } from "./chunk-W4R7HNRX.js";
9
+ import "./chunk-FW4HEUMH.js";
10
+ import "./chunk-6TIWKKDS.js";
11
11
  export {
12
12
  ChainProbeCrossValidationError,
13
13
  ChainProbeMetadataError,
package/dist/deploy.js CHANGED
@@ -34,19 +34,19 @@ import {
34
34
  storeDirectory,
35
35
  storeDirectoryV2,
36
36
  storeFile
37
- } from "./chunk-ECVV4LBA.js";
37
+ } from "./chunk-JIKWTM5P.js";
38
38
  import "./chunk-KHVTYIIX.js";
39
39
  import "./chunk-KOSF5FDO.js";
40
40
  import "./chunk-FZWJV5AD.js";
41
41
  import "./chunk-S7EM5VMW.js";
42
- import "./chunk-IZY6E5J3.js";
43
- import "./chunk-V52Y6Y2J.js";
44
- import "./chunk-CRXSSXRE.js";
42
+ import "./chunk-I7YT2IAO.js";
43
+ import "./chunk-AXIJLJZK.js";
44
+ import "./chunk-W4R7HNRX.js";
45
45
  import "./chunk-C2TS5MER.js";
46
- import "./chunk-SU5JCAYB.js";
46
+ import "./chunk-TILLNN33.js";
47
47
  import "./chunk-QMYW3D6E.js";
48
- import "./chunk-JI6IBIIN.js";
49
- import "./chunk-QUTNSEUH.js";
48
+ import "./chunk-FW4HEUMH.js";
49
+ import "./chunk-6TIWKKDS.js";
50
50
  import "./chunk-MGU5I7H5.js";
51
51
  import {
52
52
  EXIT_CODE_NO_RETRY,
package/dist/dotns.js CHANGED
@@ -41,10 +41,10 @@ import {
41
41
  stripTrailingDigits,
42
42
  validateDomainLabel,
43
43
  verifyNonceAdvanced
44
- } from "./chunk-SU5JCAYB.js";
44
+ } from "./chunk-TILLNN33.js";
45
45
  import "./chunk-QMYW3D6E.js";
46
- import "./chunk-JI6IBIIN.js";
47
- import "./chunk-QUTNSEUH.js";
46
+ import "./chunk-FW4HEUMH.js";
47
+ import "./chunk-6TIWKKDS.js";
48
48
  import "./chunk-MGU5I7H5.js";
49
49
  import "./chunk-ZOC4GITL.js";
50
50
  export {
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  deploy,
3
3
  merkleizeJS,
4
4
  merkleizeWithStableOrder
5
- } from "./chunk-ECVV4LBA.js";
5
+ } from "./chunk-JIKWTM5P.js";
6
6
  import {
7
7
  computeStats,
8
8
  renderSummary,
@@ -24,18 +24,18 @@ import {
24
24
  isVolatilePath,
25
25
  parseManifest
26
26
  } from "./chunk-S7EM5VMW.js";
27
- import "./chunk-IZY6E5J3.js";
28
- import "./chunk-V52Y6Y2J.js";
27
+ import "./chunk-I7YT2IAO.js";
28
+ import "./chunk-AXIJLJZK.js";
29
29
  import {
30
30
  probeChunks
31
- } from "./chunk-CRXSSXRE.js";
31
+ } from "./chunk-W4R7HNRX.js";
32
32
  import "./chunk-C2TS5MER.js";
33
33
  import {
34
34
  DEFAULT_MNEMONIC,
35
35
  DotNS,
36
36
  parseDomainName,
37
37
  sanitizeDomainLabel
38
- } from "./chunk-SU5JCAYB.js";
38
+ } from "./chunk-TILLNN33.js";
39
39
  import {
40
40
  bootstrapPool,
41
41
  derivePoolAccounts,
@@ -43,7 +43,7 @@ import {
43
43
  fetchPoolAuthorizations,
44
44
  selectAccount
45
45
  } from "./chunk-QMYW3D6E.js";
46
- import "./chunk-JI6IBIIN.js";
46
+ import "./chunk-FW4HEUMH.js";
47
47
  import {
48
48
  VERSION,
49
49
  loadRunState,
@@ -53,7 +53,7 @@ import {
53
53
  shouldSkipStaleWarning,
54
54
  stateFilePath,
55
55
  writeRunState
56
- } from "./chunk-QUTNSEUH.js";
56
+ } from "./chunk-6TIWKKDS.js";
57
57
  import {
58
58
  DEFAULT_ENV_ID,
59
59
  defaultBundledPath,
@@ -5,8 +5,8 @@ import {
5
5
  maybeWriteMemoryReport,
6
6
  safeHeap,
7
7
  sampleFromBytes
8
- } from "./chunk-JI6IBIIN.js";
9
- import "./chunk-QUTNSEUH.js";
8
+ } from "./chunk-FW4HEUMH.js";
9
+ import "./chunk-6TIWKKDS.js";
10
10
  export {
11
11
  DEFAULT_THRESHOLD_MB,
12
12
  buildMemoryReport,
package/dist/merkle.js CHANGED
@@ -6,19 +6,19 @@ import {
6
6
  merkleizeKuboBackend,
7
7
  merkleizeWithStableOrder,
8
8
  rebuildOrderedCarFromBytes
9
- } from "./chunk-ECVV4LBA.js";
9
+ } from "./chunk-JIKWTM5P.js";
10
10
  import "./chunk-KHVTYIIX.js";
11
11
  import "./chunk-KOSF5FDO.js";
12
12
  import "./chunk-FZWJV5AD.js";
13
13
  import "./chunk-S7EM5VMW.js";
14
- import "./chunk-IZY6E5J3.js";
15
- import "./chunk-V52Y6Y2J.js";
16
- import "./chunk-CRXSSXRE.js";
14
+ import "./chunk-I7YT2IAO.js";
15
+ import "./chunk-AXIJLJZK.js";
16
+ import "./chunk-W4R7HNRX.js";
17
17
  import "./chunk-C2TS5MER.js";
18
- import "./chunk-SU5JCAYB.js";
18
+ import "./chunk-TILLNN33.js";
19
19
  import "./chunk-QMYW3D6E.js";
20
- import "./chunk-JI6IBIIN.js";
21
- import "./chunk-QUTNSEUH.js";
20
+ import "./chunk-FW4HEUMH.js";
21
+ import "./chunk-6TIWKKDS.js";
22
22
  import "./chunk-MGU5I7H5.js";
23
23
  import "./chunk-ZOC4GITL.js";
24
24
  import "./chunk-HOTQDYHD.js";
@@ -21,10 +21,10 @@ import {
21
21
  } from "../chunk-T7EEVWNU.js";
22
22
  import {
23
23
  WS_HEARTBEAT_TIMEOUT_MS
24
- } from "../chunk-SU5JCAYB.js";
24
+ } from "../chunk-TILLNN33.js";
25
25
  import "../chunk-QMYW3D6E.js";
26
- import "../chunk-JI6IBIIN.js";
27
- import "../chunk-QUTNSEUH.js";
26
+ import "../chunk-FW4HEUMH.js";
27
+ import "../chunk-6TIWKKDS.js";
28
28
  import {
29
29
  loadEnvironments
30
30
  } from "../chunk-MGU5I7H5.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  WS_HEARTBEAT_TIMEOUT_MS
3
- } from "../chunk-SU5JCAYB.js";
3
+ } from "../chunk-TILLNN33.js";
4
4
  import "../chunk-QMYW3D6E.js";
5
- import "../chunk-JI6IBIIN.js";
6
- import "../chunk-QUTNSEUH.js";
5
+ import "../chunk-FW4HEUMH.js";
6
+ import "../chunk-6TIWKKDS.js";
7
7
  import {
8
8
  loadEnvironments
9
9
  } from "../chunk-MGU5I7H5.js";
package/dist/run-state.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  shouldSkipStaleWarning,
8
8
  stateFilePath,
9
9
  writeRunState
10
- } from "./chunk-QUTNSEUH.js";
10
+ } from "./chunk-6TIWKKDS.js";
11
11
  export {
12
12
  VERSION,
13
13
  loadRunState,
package/dist/telemetry.js CHANGED
@@ -32,8 +32,8 @@ import {
32
32
  truncateAddress,
33
33
  withDeploySpan,
34
34
  withSpan
35
- } from "./chunk-JI6IBIIN.js";
36
- import "./chunk-QUTNSEUH.js";
35
+ } from "./chunk-FW4HEUMH.js";
36
+ import "./chunk-6TIWKKDS.js";
37
37
  export {
38
38
  VERSION,
39
39
  __setDeployRootSpanForTest,
@@ -11,9 +11,9 @@ import {
11
11
  isPreReleaseVersion,
12
12
  preReleaseWarning,
13
13
  promptYesNo
14
- } from "./chunk-V52Y6Y2J.js";
15
- import "./chunk-JI6IBIIN.js";
16
- import "./chunk-QUTNSEUH.js";
14
+ } from "./chunk-AXIJLJZK.js";
15
+ import "./chunk-FW4HEUMH.js";
16
+ import "./chunk-6TIWKKDS.js";
17
17
  export {
18
18
  assessVersion,
19
19
  checkNodeVersion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bulletin-deploy",
3
- "version": "0.7.27-rc.1",
3
+ "version": "0.7.27",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -2,8 +2,15 @@
2
2
  // Selective retry wrapper for release E2E.
3
3
  //
4
4
  // Spawns a child process (the deploy CLI / test runner invocation), captures
5
- // stderr, classifies the failure mode, and exits with 75 on flake-class
6
- // matches (retry-eligible) or the child's own exit code otherwise.
5
+ // stdout AND stderr, classifies the failure mode, and exits with 75 on
6
+ // flake-class matches (retry-eligible) or the child's own exit code otherwise.
7
+ //
8
+ // Both streams are passed through to the parent's stdout/stderr so the GH
9
+ // Actions job log still shows everything live.
10
+ //
11
+ // node --test captures each test-file subprocess's output and re-emits it as
12
+ // TAP YAML on its own stdout — so deploy CLI errors (e.g. "ChainHead
13
+ // disjointed") appear on stdout, not stderr. Capturing both is required.
7
14
  //
8
15
  // Configure nick-fields/retry@v3 with retry_on_exit_code: 75 so retries only
9
16
  // fire for the named transient classes. See
@@ -20,12 +27,16 @@ const FLAKE_PATTERNS = [
20
27
  "ChainHead disjointed", // RPC reorg / WS flake
21
28
  "Connection lost", // WS hard drop
22
29
  "Account mapping did not take effect", // Revive mapping race
30
+ "requires Node.js >=22", // parity-default runner downgrade (Node v18) — infra flake
31
+ "received a shutdown signal", // runner process killed mid-job — CI infra flake
23
32
  ];
24
33
 
25
- export function classifyForRetry(stderr, childExitCode = 1) {
34
+ // output: combined stdout+stderr text from the child. Any flake pattern
35
+ // appearing anywhere in the child's output makes the run retry-eligible.
36
+ export function classifyForRetry(output, childExitCode = 1) {
26
37
  if (childExitCode === 0) return 0;
27
38
  for (const pat of FLAKE_PATTERNS) {
28
- if (stderr.includes(pat)) return 75;
39
+ if (output.includes(pat)) return 75;
29
40
  }
30
41
  return childExitCode || 1;
31
42
  }
@@ -37,20 +48,24 @@ if (import.meta.url === `file://${process.argv[1]}`) {
37
48
  console.error("usage: release-retry-wrapper.mjs <command> [args...]");
38
49
  process.exit(2);
39
50
  }
40
- const child = spawn(cmd, args, { stdio: ["inherit", "inherit", "pipe"] });
41
- let stderrBuf = "";
51
+ const child = spawn(cmd, args, { stdio: ["inherit", "pipe", "pipe"] });
52
+ let outputBuf = "";
53
+ child.stdout.on("data", (chunk) => {
54
+ process.stdout.write(chunk); // pass through stdout to job log
55
+ outputBuf += chunk.toString();
56
+ });
42
57
  child.stderr.on("data", (chunk) => {
43
- process.stderr.write(chunk); // pass through to job log
44
- stderrBuf += chunk.toString();
58
+ process.stderr.write(chunk); // pass through stderr to job log
59
+ outputBuf += chunk.toString();
45
60
  });
46
61
  child.on("error", (err) => {
47
62
  process.stderr.write(`[release-retry-wrapper] failed to spawn: ${err.message}\n`);
48
63
  process.exit(1);
49
64
  });
50
- // Use `close` (not `exit`) so the stderr pipe is fully drained before we
65
+ // Use `close` (not `exit`) so both pipes are fully drained before we
51
66
  // classify — `exit` can fire before the last `data` chunk lands.
52
67
  child.on("close", (code) => {
53
- const cls = classifyForRetry(stderrBuf, code ?? 1);
68
+ const cls = classifyForRetry(outputBuf, code ?? 1);
54
69
  if (cls === 75) {
55
70
  console.error("[release-retry-wrapper] flake-class match — exiting 75 to signal retry");
56
71
  }