repo: adopt rendered lanes and declare the module as a list #47

Merged
PerishFire merged 1 commit from land/repo/lane-migration into main 2026-08-18 13:39:27 +00:00
Owner

Why

Plumb reached v0.26.0 while this repository sat on v0.20.0. The answer to the
release blindness filed as PerishLab/plumb#274 is the rendered lane, and its
last open item — a declared attachment that no lane delivers — closes only once
repositories migrate. This is that migration.

Doctor refused the old declaration outright before anything else could run:

out of true: plumb.toml declares a release the current Plumb refuses:
unknown field `package`, expected `registry` or `packages`

That is item 1 of the issue working on the repository that reported it.

What

  • plumb.toml: [release.npm] takes packages, a list, since v0.23.0.
  • plumb 0.20.0 -> 0.26.0. No source change was needed.
  • plumb lane --write renders guard.yml, ship.yml, exact.release.yml and
    stable.release.yml; the hand-written release-{exact,stable}.yml callers
    are deleted. Doctor now reports publishes binary npm, and ship.yml
    projects a matrix derived from the declaration, so a declared attachment is
    delivered because it is declared rather than because someone wired a lane for
    it. That is the npm gap closing structurally.
  • platform.yml is repository-owned and dispatch-only.
  • AGENTS.md: the residue section claimed the proof runs on every lane. It does
    not any more.

Tests

Six gates green, twenty Rust suites plus the binding suite. plumb lane .
reports all four rendered lanes true, so nothing here has drifted from what
this Plumb renders.

Trade-off worth flagging

The rendered guard proves Linux alone, and that is deliberate rather than a
regression to work around: guard cost is paid on every change, while macOS and
Windows evidence is worth taking when a change touches spawn, discovery or a
bridge facet. platform.yml carries those two runners on manual dispatch, so
the evidence stays reachable without charging every commit for it. Doctor names
it unknown shape: workflow platform has no shadow in the skeleton, which is
the correct verdict for a repository-owned lane and does not affect its exit
code.

## Why Plumb reached v0.26.0 while this repository sat on v0.20.0. The answer to the release blindness filed as PerishLab/plumb#274 is the rendered lane, and its last open item — a declared attachment that no lane delivers — closes only once repositories migrate. This is that migration. Doctor refused the old declaration outright before anything else could run: ``` out of true: plumb.toml declares a release the current Plumb refuses: unknown field `package`, expected `registry` or `packages` ``` That is item 1 of the issue working on the repository that reported it. ## What - `plumb.toml`: `[release.npm]` takes `packages`, a list, since v0.23.0. - `plumb` 0.20.0 -> 0.26.0. No source change was needed. - `plumb lane --write` renders `guard.yml`, `ship.yml`, `exact.release.yml` and `stable.release.yml`; the hand-written `release-{exact,stable}.yml` callers are deleted. Doctor now reports `publishes binary npm`, and `ship.yml` projects a matrix derived from the declaration, so a declared attachment is delivered because it is declared rather than because someone wired a lane for it. That is the npm gap closing structurally. - `platform.yml` is repository-owned and dispatch-only. - `AGENTS.md`: the residue section claimed the proof runs on every lane. It does not any more. ## Tests Six gates green, twenty Rust suites plus the binding suite. `plumb lane .` reports all four rendered lanes `true`, so nothing here has drifted from what this Plumb renders. ## Trade-off worth flagging The rendered guard proves Linux alone, and that is deliberate rather than a regression to work around: guard cost is paid on every change, while macOS and Windows evidence is worth taking when a change touches spawn, discovery or a bridge facet. `platform.yml` carries those two runners on manual dispatch, so the evidence stays reachable without charging every commit for it. Doctor names it `unknown shape: workflow platform has no shadow in the skeleton`, which is the correct verdict for a repository-owned lane and does not affect its exit code.
repo: adopt rendered lanes and declare the module as a list
All checks were successful
guard / guard (pull_request) Successful in 2m42s
c0356c7193
## Why

Plumb reached v0.26.0 while this repository sat on v0.20.0. The answer to the
release blindness filed as PerishLab/plumb#274 is the rendered lane, and its
last open item — a declared attachment that no lane delivers — closes only once
repositories migrate. This is that migration.

Doctor refused the old declaration outright before anything else could run:

```
out of true: plumb.toml declares a release the current Plumb refuses:
unknown field `package`, expected `registry` or `packages`
```

That is item 1 of the issue working on the repository that reported it.

## What

- `plumb.toml`: `[release.npm]` takes `packages`, a list, since v0.23.0.
- `plumb` 0.20.0 -> 0.26.0. No source change was needed.
- `plumb lane --write` renders `guard.yml`, `ship.yml`, `exact.release.yml` and
  `stable.release.yml`; the hand-written `release-{exact,stable}.yml` callers
  are deleted. Doctor now reports `publishes binary npm`, and `ship.yml`
  projects a matrix derived from the declaration, so a declared attachment is
  delivered because it is declared rather than because someone wired a lane for
  it. That is the npm gap closing structurally.
- `platform.yml` is repository-owned and dispatch-only.
- `AGENTS.md`: the residue section claimed the proof runs on every lane. It does
  not any more.

## Tests

Six gates green, twenty Rust suites plus the binding suite. `plumb lane .`
reports all four rendered lanes `true`, so nothing here has drifted from what
this Plumb renders.

## Trade-off worth flagging

The rendered guard proves Linux alone, and that is deliberate rather than a
regression to work around: guard cost is paid on every change, while macOS and
Windows evidence is worth taking when a change touches spawn, discovery or a
bridge facet. `platform.yml` carries those two runners on manual dispatch, so
the evidence stays reachable without charging every commit for it. Doctor names
it `unknown shape: workflow platform has no shadow in the skeleton`, which is
the correct verdict for a repository-owned lane and does not affect its exit
code.

Land-Source: repo/lane-migration@551669fe82
PerishFire force-pushed land/repo/lane-migration from c0356c7193
All checks were successful
guard / guard (pull_request) Successful in 2m42s
to 577c439cf6
Some checks failed
guard / guard (pull_request) Successful in 1m41s
guard / guard (push) Has been cancelled
2026-08-18 13:37:34 +00:00
Compare
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
PerishFire/sidecar!47
No description provided.