putitoutthere 0.3.27 → 0.3.29

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.
@@ -1,8 +1,18 @@
1
1
  /**
2
2
  * Auto-heal a missing release tag (#407). A half-failed earlier run can leave
3
3
  * a version published but untagged, which strands the package — piot derives
4
- * "last released" from tags. Writes the tag at `commit` if missing;
5
- * idempotent. Runs on both the fresh-publish and already-published branches.
4
+ * "last released" from tags. Writes and pushes the tag at `commit` when
5
+ * `origin` does not have it yet. Runs on both the fresh-publish and
6
+ * already-published branches.
7
+ *
8
+ * Idempotency is checked against the remote, not local tags (#717): a run
9
+ * that created the tag locally and then failed to push it leaves a local
10
+ * tag with nothing on `origin`. Checking `tagList` (local-only) would read
11
+ * that as "already done" and never retry the push — "tried and failed"
12
+ * would be indistinguishable from "succeeded" for the rest of that working
13
+ * tree's life. A push failure now propagates instead of being downgraded to
14
+ * a warning, for the same reason: `publish` and `reconcile` must not report
15
+ * success for a version the remote has no tag for.
6
16
  */
7
17
  import type { Logger } from './types.js';
8
18
  export declare function ensureTag(tagFormat: string, name: string, version: string, commit: string, opts: {
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-tag.d.ts","sourceRoot":"","sources":["../src/ensure-tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EACrB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"ensure-tag.d.ts","sourceRoot":"","sources":["../src/ensure-tag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EACrB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -1,22 +1,40 @@
1
1
  /**
2
2
  * Auto-heal a missing release tag (#407). A half-failed earlier run can leave
3
3
  * a version published but untagged, which strands the package — piot derives
4
- * "last released" from tags. Writes the tag at `commit` if missing;
5
- * idempotent. Runs on both the fresh-publish and already-published branches.
4
+ * "last released" from tags. Writes and pushes the tag at `commit` when
5
+ * `origin` does not have it yet. Runs on both the fresh-publish and
6
+ * already-published branches.
7
+ *
8
+ * Idempotency is checked against the remote, not local tags (#717): a run
9
+ * that created the tag locally and then failed to push it leaves a local
10
+ * tag with nothing on `origin`. Checking `tagList` (local-only) would read
11
+ * that as "already done" and never retry the push — "tried and failed"
12
+ * would be indistinguishable from "succeeded" for the rest of that working
13
+ * tree's life. A push failure now propagates instead of being downgraded to
14
+ * a warning, for the same reason: `publish` and `reconcile` must not report
15
+ * success for a version the remote has no tag for.
6
16
  */
7
- import { createTag, pushTag, tagList } from './git.js';
17
+ import { ErrorCodes } from './error-codes.js';
18
+ import { createTag, pushTag, remoteTagExists, tagList } from './git.js';
8
19
  import { formatTag } from './tag-template.js';
9
20
  export async function ensureTag(tagFormat, name, version, commit, opts, log) {
10
21
  const tagName = formatTag(tagFormat, { name, version });
11
- if ((await tagList(tagName, opts)).length > 0) {
22
+ if (await remoteTagExists(tagName, opts)) {
12
23
  return;
13
24
  }
14
- await createTag(tagName, commit, { cwd: opts.cwd, message: `Release ${tagName}` });
25
+ if ((await tagList(tagName, opts)).length === 0) {
26
+ await createTag(tagName, commit, { cwd: opts.cwd, message: `Release ${tagName}` });
27
+ }
28
+ log.info(`publish: pushing tag ${tagName}`);
15
29
  try {
16
30
  await pushTag(tagName, opts);
17
31
  }
18
32
  catch (err) {
19
- log.warn(`publish: failed to push tag ${tagName}: ${err instanceof Error ? err.message : String(err)}`);
33
+ throw new Error(`[${ErrorCodes.TAG_PUSH_FAILED}] ${name}@${version} is on the registry, but pushing tag ` +
34
+ `${tagName} failed: ${err instanceof Error ? err.message : String(err)}. The registry ` +
35
+ `write already happened — do not re-run publish for this version. Fix the push problem ` +
36
+ `(origin, auth, a diverged remote tag) and rerun \`putitoutthere reconcile\`, which ` +
37
+ `backfills the tag without re-publishing.`, { cause: err });
20
38
  }
21
39
  }
22
40
  //# sourceMappingURL=ensure-tag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-tag.js","sourceRoot":"","sources":["../src/ensure-tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAiB,EACjB,IAAY,EACZ,OAAe,EACf,MAAc,EACd,IAAqB,EACrB,GAAW;IAEX,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAAA,OAAO;IAAA,CAAC;IACxD,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,OAAO,EAAE,EAAE,CAAC,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,+BAA+B,OAAO,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ensure-tag.js","sourceRoot":"","sources":["../src/ensure-tag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAiB,EACjB,IAAY,EACZ,OAAe,EACf,MAAc,EACd,IAAqB,EACrB,GAAW;IAEX,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QAAA,OAAO;IAAA,CAAC;IACnD,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,OAAO,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,IAAI,UAAU,CAAC,eAAe,KAAK,IAAI,IAAI,OAAO,uCAAuC;YACvF,GAAG,OAAO,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB;YACvF,wFAAwF;YACxF,qFAAqF;YACrF,0CAA0C,EAC5C,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -151,6 +151,12 @@ export declare const ErrorCodes: {
151
151
  * same source-visibility expectation underpins the trusted-publisher
152
152
  * story on the other registries. */
153
153
  readonly REPO_PRIVATE: "PIOT_REPO_PRIVATE";
154
+ /** `ensureTag` (#407) found a package live on the registry with no
155
+ * matching tag on `origin`, tried to write and push one, and the push
156
+ * failed. Thrown rather than downgraded to a warning (#717): a release
157
+ * is not done until its tag is visible on the remote, so `publish` and
158
+ * `reconcile` must not exit 0 having silently left one unpushed. */
159
+ readonly TAG_PUSH_FAILED: "PIOT_TAG_PUSH_FAILED";
154
160
  };
155
161
  export type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes];
156
162
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,UAAU;IACrB;;;8CAG0C;;IAE1C;;;;;;kDAM8C;;IAE9C;;;;;0DAKsD;;IAEtD;;;;;;;2CAOuC;;IAEvC;;;;;;;;0EAQsE;;IAEtE;;;;;;iCAM6B;;IAE7B;;;;;;;;qDAQiD;;IAEjD;;;;;yBAKqB;;IAErB;;;;gBAIY;;IAEZ;;;;;;;sEAOkE;;IAElE;;;8EAG0E;;IAE1E;;;;kEAI8D;;IAE9D;;;;uEAImE;;IAEnE;;;;uBAImB;;IAEnB;;;;2BAIuB;;IAEvB;;;qEAGiE;;IAEjE;;;;;;kEAM8D;;IAE9D;;;;;;;8BAO0B;;IAE1B;;;;;;;gDAO4C;;IAE5C;;;;;yCAKqC;;CAE7B,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,SAAS,EAqB/C,CAAC"}
1
+ {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,UAAU;IACrB;;;8CAG0C;;IAE1C;;;;;;kDAM8C;;IAE9C;;;;;0DAKsD;;IAEtD;;;;;;;2CAOuC;;IAEvC;;;;;;;;0EAQsE;;IAEtE;;;;;;iCAM6B;;IAE7B;;;;;;;;qDAQiD;;IAEjD;;;;;yBAKqB;;IAErB;;;;gBAIY;;IAEZ;;;;;;;sEAOkE;;IAElE;;;8EAG0E;;IAE1E;;;;kEAI8D;;IAE9D;;;;uEAImE;;IAEnE;;;;uBAImB;;IAEnB;;;;2BAIuB;;IAEvB;;;qEAGiE;;IAEjE;;;;;;kEAM8D;;IAE9D;;;;;;;8BAO0B;;IAE1B;;;;;;;gDAO4C;;IAE5C;;;;;yCAKqC;;IAErC;;;;yEAIqE;;CAE7D,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,SAAS,EAsB/C,CAAC"}
@@ -151,6 +151,12 @@ export const ErrorCodes = {
151
151
  * same source-visibility expectation underpins the trusted-publisher
152
152
  * story on the other registries. */
153
153
  REPO_PRIVATE: 'PIOT_REPO_PRIVATE',
154
+ /** `ensureTag` (#407) found a package live on the registry with no
155
+ * matching tag on `origin`, tried to write and push one, and the push
156
+ * failed. Thrown rather than downgraded to a warning (#717): a release
157
+ * is not done until its tag is visible on the remote, so `publish` and
158
+ * `reconcile` must not exit 0 having silently left one unpushed. */
159
+ TAG_PUSH_FAILED: 'PIOT_TAG_PUSH_FAILED',
154
160
  };
155
161
  /**
156
162
  * Iterable form of the codes. Walked by tests for uniqueness/format
@@ -177,5 +183,6 @@ export const ALL_ERROR_CODES = [
177
183
  ErrorCodes.CRATES_PACKAGE_TOO_LARGE,
178
184
  ErrorCodes.REPO_URL_MISMATCH,
179
185
  ErrorCodes.REPO_PRIVATE,
186
+ ErrorCodes.TAG_PUSH_FAILED,
180
187
  ];
181
188
  //# sourceMappingURL=error-codes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;;;8CAG0C;IAC1C,aAAa,EAAE,oBAAoB;IACnC;;;;;;kDAM8C;IAC9C,kBAAkB,EAAE,yBAAyB;IAC7C;;;;;0DAKsD;IACtD,sBAAsB,EAAE,6BAA6B;IACrD;;;;;;;2CAOuC;IACvC,iBAAiB,EAAE,wBAAwB;IAC3C;;;;;;;;0EAQsE;IACtE,oBAAoB,EAAE,2BAA2B;IACjD;;;;;;iCAM6B;IAC7B,uBAAuB,EAAE,8BAA8B;IACvD;;;;;;;;qDAQiD;IACjD,mBAAmB,EAAE,0BAA0B;IAC/C;;;;;yBAKqB;IACrB,kBAAkB,EAAE,yBAAyB;IAC7C;;;;gBAIY;IACZ,2BAA2B,EAAE,kCAAkC;IAC/D;;;;;;;sEAOkE;IAClE,+BAA+B,EAAE,sCAAsC;IACvE;;;8EAG0E;IAC1E,uBAAuB,EAAE,8BAA8B;IACvD;;;;kEAI8D;IAC9D,4BAA4B,EAAE,mCAAmC;IACjE;;;;uEAImE;IACnE,oBAAoB,EAAE,2BAA2B;IACjD;;;;uBAImB;IACnB,kBAAkB,EAAE,yBAAyB;IAC7C;;;;2BAIuB;IACvB,2BAA2B,EAAE,kCAAkC;IAC/D;;;qEAGiE;IACjE,iCAAiC,EAAE,wCAAwC;IAC3E;;;;;;kEAM8D;IAC9D,gCAAgC,EAAE,uCAAuC;IACzE;;;;;;;8BAO0B;IAC1B,wBAAwB,EAAE,+BAA+B;IACzD;;;;;;;gDAO4C;IAC5C,iBAAiB,EAAE,wBAAwB;IAC3C;;;;;yCAKqC;IACrC,YAAY,EAAE,mBAAmB;CACzB,CAAC;AAIX;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAyB;IACnD,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,kBAAkB;IAC7B,UAAU,CAAC,sBAAsB;IACjC,UAAU,CAAC,iBAAiB;IAC5B,UAAU,CAAC,oBAAoB;IAC/B,UAAU,CAAC,uBAAuB;IAClC,UAAU,CAAC,mBAAmB;IAC9B,UAAU,CAAC,kBAAkB;IAC7B,UAAU,CAAC,2BAA2B;IACtC,UAAU,CAAC,+BAA+B;IAC1C,UAAU,CAAC,uBAAuB;IAClC,UAAU,CAAC,4BAA4B;IACvC,UAAU,CAAC,oBAAoB;IAC/B,UAAU,CAAC,kBAAkB;IAC7B,UAAU,CAAC,2BAA2B;IACtC,UAAU,CAAC,iCAAiC;IAC5C,UAAU,CAAC,gCAAgC;IAC3C,UAAU,CAAC,wBAAwB;IACnC,UAAU,CAAC,iBAAiB;IAC5B,UAAU,CAAC,YAAY;CACxB,CAAC"}
1
+ {"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;;;8CAG0C;IAC1C,aAAa,EAAE,oBAAoB;IACnC;;;;;;kDAM8C;IAC9C,kBAAkB,EAAE,yBAAyB;IAC7C;;;;;0DAKsD;IACtD,sBAAsB,EAAE,6BAA6B;IACrD;;;;;;;2CAOuC;IACvC,iBAAiB,EAAE,wBAAwB;IAC3C;;;;;;;;0EAQsE;IACtE,oBAAoB,EAAE,2BAA2B;IACjD;;;;;;iCAM6B;IAC7B,uBAAuB,EAAE,8BAA8B;IACvD;;;;;;;;qDAQiD;IACjD,mBAAmB,EAAE,0BAA0B;IAC/C;;;;;yBAKqB;IACrB,kBAAkB,EAAE,yBAAyB;IAC7C;;;;gBAIY;IACZ,2BAA2B,EAAE,kCAAkC;IAC/D;;;;;;;sEAOkE;IAClE,+BAA+B,EAAE,sCAAsC;IACvE;;;8EAG0E;IAC1E,uBAAuB,EAAE,8BAA8B;IACvD;;;;kEAI8D;IAC9D,4BAA4B,EAAE,mCAAmC;IACjE;;;;uEAImE;IACnE,oBAAoB,EAAE,2BAA2B;IACjD;;;;uBAImB;IACnB,kBAAkB,EAAE,yBAAyB;IAC7C;;;;2BAIuB;IACvB,2BAA2B,EAAE,kCAAkC;IAC/D;;;qEAGiE;IACjE,iCAAiC,EAAE,wCAAwC;IAC3E;;;;;;kEAM8D;IAC9D,gCAAgC,EAAE,uCAAuC;IACzE;;;;;;;8BAO0B;IAC1B,wBAAwB,EAAE,+BAA+B;IACzD;;;;;;;gDAO4C;IAC5C,iBAAiB,EAAE,wBAAwB;IAC3C;;;;;yCAKqC;IACrC,YAAY,EAAE,mBAAmB;IACjC;;;;yEAIqE;IACrE,eAAe,EAAE,sBAAsB;CAC/B,CAAC;AAIX;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAyB;IACnD,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,kBAAkB;IAC7B,UAAU,CAAC,sBAAsB;IACjC,UAAU,CAAC,iBAAiB;IAC5B,UAAU,CAAC,oBAAoB;IAC/B,UAAU,CAAC,uBAAuB;IAClC,UAAU,CAAC,mBAAmB;IAC9B,UAAU,CAAC,kBAAkB;IAC7B,UAAU,CAAC,2BAA2B;IACtC,UAAU,CAAC,+BAA+B;IAC1C,UAAU,CAAC,uBAAuB;IAClC,UAAU,CAAC,4BAA4B;IACvC,UAAU,CAAC,oBAAoB;IAC/B,UAAU,CAAC,kBAAkB;IAC7B,UAAU,CAAC,2BAA2B;IACtC,UAAU,CAAC,iCAAiC;IAC5C,UAAU,CAAC,gCAAgC;IAC3C,UAAU,CAAC,wBAAwB;IACnC,UAAU,CAAC,iBAAiB;IAC5B,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,eAAe;CAC3B,CAAC"}
package/dist/git.d.ts CHANGED
@@ -17,6 +17,14 @@ export declare function diffNames(from: string, to: string, opts?: GitOptions):
17
17
  export declare function tagList(glob: string, opts?: GitOptions): Promise<string[]>;
18
18
  export declare function createTag(name: string, sha: string, opts?: TagOptions): Promise<void>;
19
19
  export declare function pushTag(name: string, opts?: GitOptions): Promise<void>;
20
+ /**
21
+ * Whether `origin` already carries this tag — `git ls-remote --tags origin
22
+ * refs/tags/<name>`. The only source of truth `ensureTag` (#407) can use for
23
+ * "already done": `tagList` is local-only, so a tag created but never
24
+ * successfully pushed reads as present there even though `origin` has
25
+ * nothing, which is exactly the state a failed push leaves behind (#717).
26
+ */
27
+ export declare function remoteTagExists(name: string, opts?: GitOptions): Promise<boolean>;
20
28
  /**
21
29
  * `git fetch --tags --force origin` — refresh every remote tag, forcing
22
30
  * updates for tags that moved on the remote. The `--force` is load-bearing
package/dist/git.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,UAAW,SAAQ,UAAU;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA4CD,wBAAsB,UAAU,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAEvE;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpF;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAMzF;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CAInB;AAID,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIpF;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAExF;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIjF;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnF;AAID;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAErF;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAO9E;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAExG;AAID;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpF;AAID;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAelD"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
package/dist/git.js CHANGED
@@ -81,6 +81,18 @@ export async function createTag(name, sha, opts = {}) {
81
81
  export async function pushTag(name, opts = {}) {
82
82
  await run(['push', 'origin', name], opts);
83
83
  }
84
+ /**
85
+ * Whether `origin` already carries this tag — `git ls-remote --tags origin
86
+ * refs/tags/<name>`. The only source of truth `ensureTag` (#407) can use for
87
+ * "already done": `tagList` is local-only, so a tag created but never
88
+ * successfully pushed reads as present there even though `origin` has
89
+ * nothing, which is exactly the state a failed push leaves behind (#717).
90
+ */
91
+ export async function remoteTagExists(name, opts = {}) {
92
+ // `run` already trimEnds; no further trimming needed to tell empty from non-empty.
93
+ const out = await run(['ls-remote', '--tags', 'origin', `refs/tags/${name}`], opts);
94
+ return out.length > 0;
95
+ }
84
96
  /**
85
97
  * `git fetch --tags --force origin` — refresh every remote tag, forcing
86
98
  * updates for tags that moved on the remote. The `--force` is load-bearing
package/dist/git.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/verify/npm-tarball/main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEtE,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAAE,EAClB,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,MAAM,CAAC,CA2DjB"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/verify/npm-tarball/main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEtE,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAAE,EAClB,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAyDjB"}
@@ -17,10 +17,8 @@ export async function verifyNpmTarballMain(rows, opts) {
17
17
  process.stdout.write('No npm main/noarch rows; nothing to verify.\n');
18
18
  return 0;
19
19
  }
20
- // Verdaccio (a same-host service container) is immediately consistent
21
- // once `npm publish` returns; real npm's CDN needs generous backoff.
22
20
  const registry = opts.registry;
23
- const sleeps = registry ? [1, 2, 5, 10] : [5, 15, 30, 90, 180];
21
+ const sleeps = registry ? [1, 2, 5, 10] : [5, 15, 30, 60, 120, 180, 300];
24
22
  const registryLabel = registry ? registry : 'registry.npmjs.org';
25
23
  let fail = 0;
26
24
  for (const row of npmRows) {
@@ -36,7 +34,7 @@ export async function verifyNpmTarballMain(rows, opts) {
36
34
  process.stdout.write(`[${pkgName}@${version}] verifying tarball at ${registryLabel} contains: ${dirs.join(' ')}\n`);
37
35
  const url = await resolveNpmTarballUrl(pkgName, version, { registry, sleeps });
38
36
  if (url === null) {
39
- process.stdout.write(`::error::[${pkgName}@${version}] npm view at ${registryLabel} never returned a tarball URL after ${sleeps.length + 1} attempts. Either the publish didn't actually publish, or packument propagation is much slower than expected.\n`);
37
+ process.stdout.write(`::error::[${pkgName}@${version}] ${registryLabel} never returned a tarball URL after ${sleeps.length + 1} attempts. Either the publish didn't actually publish, or npm took longer than the budget to record it.\n`);
40
38
  fail = 1;
41
39
  continue;
42
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/verify/npm-tarball/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/verify/npm-tarball/main.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,3 @@
1
- /**
2
- * Resolve a published package's tarball URL via `npm view … dist.tarball`,
3
- * absorbing packument lag with a bounded retry (#443): the packument index
4
- * propagates across the registry CDN asynchronously, so an immediate read after
5
- * publish can come back empty. N `sleeps` means N+1 attempts; `null` if all
6
- * empty. `--registry` goes after the positional args, clear of `name@version`.
7
- */
8
1
  interface ResolveOptions {
9
2
  registry?: string | undefined;
10
3
  sleeps: number[];
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-url.d.ts","sourceRoot":"","sources":["../../../src/verify/npm-tarball/resolve-url.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAgBD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB"}
1
+ {"version":3,"file":"resolve-url.d.ts","sourceRoot":"","sources":["../../../src/verify/npm-tarball/resolve-url.ts"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBxB"}
@@ -1,35 +1,18 @@
1
- /**
2
- * Resolve a published package's tarball URL via `npm view … dist.tarball`,
3
- * absorbing packument lag with a bounded retry (#443): the packument index
4
- * propagates across the registry CDN asynchronously, so an immediate read after
5
- * publish can come back empty. N `sleeps` means N+1 attempts; `null` if all
6
- * empty. `--registry` goes after the positional args, clear of `name@version`.
7
- */
8
- import { execCapture } from '../../utils/exec-capture.js';
9
- async function viewTarballUrl(spec, registry) {
10
- try {
11
- const args = ['view', spec, 'dist.tarball', ...(registry ? ['--registry', registry] : [])];
12
- return (await execCapture('npm', args)).stdout.trim();
13
- }
14
- catch {
15
- // `npm view` exits non-zero when the packument isn't there yet.
16
- return '';
17
- }
18
- }
19
- function sleep(ms) {
20
- return new Promise((resolve) => setTimeout(resolve, ms));
21
- }
1
+ import { sleep } from '../../utils/sleep.js';
22
2
  export async function resolveNpmTarballUrl(name, version, opts) {
23
- const spec = `${name}@${version}`;
3
+ const base = (opts.registry ?? 'https://registry.npmjs.org').replace(/\/$/, '');
4
+ const url = `${base}/${encodeURIComponent(name).replace('%40', '@')}/${version}`;
24
5
  const attempts = opts.sleeps.length + 1;
25
6
  for (let attempt = 1; attempt <= attempts; attempt++) {
26
- const url = await viewTarballUrl(spec, opts.registry);
27
- if (url) {
28
- return url;
7
+ const tarball = await fetch(url, { signal: AbortSignal.timeout(15_000) })
8
+ .then(async (res) => (res.ok ? (await res.json()).dist.tarball : undefined))
9
+ .catch(() => undefined);
10
+ if (tarball) {
11
+ return tarball;
29
12
  }
30
13
  if (attempt < attempts) {
31
14
  const secs = opts.sleeps[attempt - 1];
32
- process.stdout.write(` packument lag: npm view returned empty (attempt ${attempt}/${attempts}); retrying in ${secs}s\n`);
15
+ process.stdout.write(` ${url} not readable yet (attempt ${attempt}/${attempts}); retrying in ${secs}s\n`);
33
16
  await sleep(secs * 1000);
34
17
  }
35
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-url.js","sourceRoot":"","sources":["../../../src/verify/npm-tarball/resolve-url.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAO1D,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,QAAiB;IAC3D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;QAChE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,OAAe,EACf,IAAoB;IAEpB,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,GAAG,EAAE,CAAC;YAAA,OAAO,GAAG,CAAC;QAAA,CAAC;QACtB,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qDAAqD,OAAO,IAAI,QAAQ,kBAAkB,IAAI,KAAK,CACpG,CAAC;YACF,MAAM,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"resolve-url.js","sourceRoot":"","sources":["../../../src/verify/npm-tarball/resolve-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAO7C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,OAAe,EACf,IAAoB;IAEpB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,4BAA4B,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChF,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;IACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;aACtE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aAC/G,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,OAAO,EAAE,CAAC;YAAA,OAAO,OAAO,CAAC;QAAA,CAAC;QAC9B,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,8BAA8B,OAAO,IAAI,QAAQ,kBAAkB,IAAI,KAAK,CAAC,CAAC;YAC3G,MAAM,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -24,7 +24,7 @@ export async function verifyNpmTarballTriple(rows, opts) {
24
24
  process.stdout.write(`[${platformName}@${version}] verifying tarball at ${registry}\n`);
25
25
  const url = await resolveNpmTarballUrl(platformName, version, { registry, sleeps: [2, 2, 2, 2] });
26
26
  if (url === null) {
27
- process.stdout.write(`::error::[${platformName}@${version}] npm view at ${registry} never returned a tarball URL. Either the platform publish didn't actually publish, or the synthesized name diverged from the default {name}-{triple} template.\n`);
27
+ process.stdout.write(`::error::[${platformName}@${version}] ${registry} never returned a tarball URL. Either the platform publish didn't actually publish, or the synthesized name diverged from the default {name}-{triple} template.\n`);
28
28
  fail = 1;
29
29
  continue;
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"triple.js","sourceRoot":"","sources":["../../../src/verify/npm-tarball/triple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"triple.js","sourceRoot":"","sources":["../../../src/verify/npm-tarball/triple.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "putitoutthere",
3
- "version": "0.3.27",
3
+ "version": "0.3.29",
4
4
  "description": "Polyglot release orchestrator for crates.io, PyPI, and npm",
5
5
  "license": "MIT",
6
6
  "repository": {