|
10 | 10 | * refs/tags/vX -> the same commit, moved on each release in the line |
11 | 11 | * |
12 | 12 | * Every artifact is a function of its main commit alone, so runs for different commits never wait on each other |
13 | | - * and a rerun mints the same name and verifies instead of appending. latest and vX move through movePointer alone: |
14 | | - * forward along main, under a compare-and-set on the value origin advertised, never back. |
| 13 | + * and a rerun mints the same name and verifies instead of appending. latest and vX move through movePointer alone. |
| 14 | + * Every subcommand but prerelease-version runs under a workflow step, bare or in the step's shell; no step runs two. |
15 | 15 | * |
16 | | - * release-please cuts the DRAFT release without a tag (`draft` on, `force-tag-creation` off); one subcommand runs |
17 | | - * per workflow step: |
| 16 | + * release-please cuts the DRAFT release without a tag (`draft` on, `force-tag-creation` off) and creates or |
| 17 | + * refreshes the release PR only when a releasable commit lands (release-please-config.json leaves always-update |
| 18 | + * off); that refresh is what publishes the `next` pre-release. |
18 | 19 | * |
19 | | - * package-commit post-green.yml GITHUB_SHA, RUN_URL (optional) |
20 | | - * anchor update-release-pr.yml GITHUB_SHA |
21 | | - * npm-verdict next update-release-pr.yml GITHUB_SHA, NPM_REGISTRY_URL (optional) |
22 | | - * npm-confirm next update-release-pr.yml GITHUB_SHA, NPM_REGISTRY_URL (optional), NPM_CONFIRM_PAUSE_MS (optional) |
23 | | - * npm-verdict stable update-release.yml TAG, GITHUB_SHA, NPM_REGISTRY_URL (optional) |
24 | | - * npm-floor both publish jobs (nothing; npm on PATH) |
25 | | - * package, retag-major update-release.yml TAG, GITHUB_SHA, RUN_URL (optional, package only) |
26 | | - * boundary-check, anchor-check checks.yml (the checkout alone) |
27 | | - * prerelease-version by hand GITHUB_SHA (the version a commit's next publish carries) |
28 | | - * |
29 | | - * The `next` pre-release publishes when release-please creates or refreshes the release PR, which it does only when a |
30 | | - * releasable commit lands (release-please-config.json leaves always-update off); npm-verdict next is the guard on |
31 | | - * npm state that follows, never the decision to publish. |
32 | | - * |
33 | | - * Node builtins only: bun runs this before `bun install`. Tests: test/scripts/release-pipeline*.test.ts over release-pipeline-fixture.ts. |
| 20 | + * Node builtins only: bun runs this before `bun install`. |
34 | 21 | */ |
35 | 22 |
|
36 | 23 | import { execFileSync, spawnSync } from "node:child_process"; |
@@ -454,15 +441,9 @@ export interface PointerMove { |
454 | 441 | * The one way a pointer (latest, vX) moves: forward along main, never back. A pointer's source is its commit's |
455 | 442 | * parent when that parent is on main; the candidate's source is on main by its caller's check. |
456 | 443 | * |
457 | | - * pointer's source is the candidate's or descends from it -> left: the same package, or a rerun of an older commit's run |
458 | | - * same source, another tree -> refused: two builds of one main commit |
459 | | - * pointer's source unknown (off main, a root) -> moved: a value this pipeline did not mint |
460 | | - * otherwise -> moved, under a lease on the value observed |
461 | | - * |
462 | 444 | * A value left in place must be a package of the commit it is read as packaging, or a hand-pushed bare child of a |
463 | 445 | * newer commit would stand as "already past". Main's head is read AFTER the pointer on every pass: a pointer a rival |
464 | | - * moved to a newer commit's package has that commit on main by then. A lease lost to a rival re-observes and |
465 | | - * decides again; a push refused with the ref unmoved is thrown. |
| 446 | + * moved to a newer commit's package has that commit on main by then. |
466 | 447 | */ |
467 | 448 | export function movePointer(cwd: string, ref: string, candidate: Packaged): PointerMove { |
468 | 449 | for (let attempt = 1; attempt <= PUSH_ATTEMPTS; attempt++) { |
|
0 commit comments