@orkestrel/scaffold 0.0.39 → 0.0.40
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.
|
@@ -688,6 +688,29 @@ and propagates as files rather than as a cascade.
|
|
|
688
688
|
target. Scope a fleet-wide refactor to the files each target owns, and record the vendored
|
|
689
689
|
exclusion in the brief rather than letting each unit rediscover it.
|
|
690
690
|
|
|
691
|
+
### The release wave
|
|
692
|
+
|
|
693
|
+
Close a fleet-wide "everything on latest" goal as a release wave in layer order: visit every repo
|
|
694
|
+
once per round with one procedure, publish each layer in one window, and only then prepare the next.
|
|
695
|
+
|
|
696
|
+
- The visit, in order: re-pin the target's `@orkestrel/scaffold` devDependency and install, so the
|
|
697
|
+
overwrite runs the current vendored host; `scaffold overwrite`; force-verify every `@orkestrel`
|
|
698
|
+
range against a registry sweep taken after the previous layer published; full install; mutating
|
|
699
|
+
`format` to converge generated writes; the five gates; the material-dist comparison against the
|
|
700
|
+
published tarball.
|
|
701
|
+
- Bump on either trigger: the rebuilt dist differs materially from the published tarball, or the
|
|
702
|
+
final runtime dependency set differs from the published packument. Test the final set against the
|
|
703
|
+
packument, never "did my step move a pin" — overwrite's `declare` re-pins before any later check,
|
|
704
|
+
so the step-local reading reports nothing moved while the manifest surface did. A re-pinned
|
|
705
|
+
runtime range is published surface: without the bump a consumer installs two copies of the moved
|
|
706
|
+
dependency.
|
|
707
|
+
- A dist built before the version bump is the release artifact; the bump edits no emitted byte.
|
|
708
|
+
- Refresh the registry evidence between layers and derive each round's pins from it. A pin can only
|
|
709
|
+
name a version the registry already serves, so a dependency shipping in the same window keeps the
|
|
710
|
+
resolvable previous pin and takes its dev-only re-pin after the window closes.
|
|
711
|
+
- Run visits in parallel slices of disjoint repos, each slice strictly serial inside itself,
|
|
712
|
+
reporting per-target. Refuse a failed target, name it, repair, and re-run it alone.
|
|
713
|
+
|
|
691
714
|
### Preparing
|
|
692
715
|
|
|
693
716
|
1. **Bump from what the registry serves, not from the local manifest.** A repository's `version`
|
|
@@ -745,8 +768,16 @@ flag is what stops the gate chain running a second time inside the five minutes.
|
|
|
745
768
|
|
|
746
769
|
### Spending the window
|
|
747
770
|
|
|
748
|
-
- The window opens when the user approves, not when the first publish starts.
|
|
749
|
-
|
|
771
|
+
- The window opens when the user approves, not when the first publish starts. Open each layer with
|
|
772
|
+
one package: publish it alone, surface its approval URL the moment the journal shows it, and
|
|
773
|
+
confirm the upload from the registry before starting the rest. Then chase the remaining uploads
|
|
774
|
+
back-to-back in one process with no gap — an upload started within seconds of an approval
|
|
775
|
+
frequently rides that approval, and each one that does not mints its own URL. Relay every new URL
|
|
776
|
+
to the user the moment it appears, through a journal watcher, and never pause the chain to wait
|
|
777
|
+
for a click: a poll outlives the relay.
|
|
778
|
+
- A click on a superseded URL poisons the live attempt — the current poll fails
|
|
779
|
+
`403 Forbidden - GET /-/v1/done` mid-flight. Tell the user to click only the newest URL. After
|
|
780
|
+
any such 403, confirm no publish process is live, then mint one fresh attempt.
|
|
750
781
|
- Publish serially. Concurrent publishes collide on the auth handshake and fail each other.
|
|
751
782
|
- **Never retry a publish that is still waiting for its authorization.** Each `npm publish` attempt
|
|
752
783
|
mints a new `authId` and invalidates the previous one, so a retry loop makes the URL a moving
|
package/dist/src/core/index.cjs
CHANGED
|
@@ -305,7 +305,7 @@ var DEFAULT_ENGINES = `>=${MINIMUM_NODE_VERSION}`;
|
|
|
305
305
|
/** The tooling versions scaffold and every generated workspace share. */
|
|
306
306
|
var BASE_DEV_DEPENDENCIES = Object.freeze({
|
|
307
307
|
"@orkestrel/guide": "^0.0.12",
|
|
308
|
-
"@orkestrel/scaffold": "^0.0.
|
|
308
|
+
"@orkestrel/scaffold": "^0.0.40",
|
|
309
309
|
"@orkestrel/test": "^0.0.6",
|
|
310
310
|
"@types/node": "^26.2.0",
|
|
311
311
|
oxfmt: "^0.62.0",
|