Diffusion: the name, and which bookmark a consumer is bumped on b20ddaf96167
Andy confirmed the name. A consumer is bumped on the bookmark its work lands on, learned from where its proposals land, else its default; a target key in .oxymodules overrides it. refs #148
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-10-12 19:58 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
b20ddaf961670b0cddfbc107a9e99a68e251fb32439dfcd26ccfce625e15ba8e- Depends on
- 8620925e5c53
- Depended on by
- a2b29af1ce88
- In bookmarks
- api-unknown-fields cancel-landed-runs close-proposal-140 diffusion-pin-bookmark draft-ready main oh-comment-body-file proposal-list-fast
- In tags
- v0.5.0 v0.5.1 v0.5.2 v0.6.0 v0.6.1 v0.7.0 v0.8.0 v0.9.0 v0.9.1 v0.9.11 v0.9.15 v0.9.16 v0.9.19 v0.9.2 v0.9.20 v0.9.21 v0.9.22 v0.9.23 v0.9.24 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9
- Edits
- 7 atoms, 0 tree operations, 1 file
Browse the tree at this change
modified docs/diffusion.md +16 −7
| 1 | 1 | # Diffusion: upstream changes reach their consumers |
|
| 2 | 2 | ||
| 3 | 3 | Status: design, 2026-10-12. D1 is planned first; nothing is built yet. |
|
| 4 | - | "Diffusion" is a working name (changes diffuse from an upstream into the |
|
| 5 | - | repositories that pin it); Andy has not confirmed it. |
|
| 4 | + | The name **Diffusion** was confirmed by Andy on 2026-10-12: changes |
|
| 5 | + | diffuse from an upstream into the repositories that pin it. |
|
| 6 | 6 | ||
| 7 | 7 | ## 1. The problem |
|
| 8 | 8 | ||
| … | 55 unchanged lines |
||
| 64 | 64 | bookmark = "main" |
|
| 65 | 65 | follow = "green" # off | green | any |
|
| 66 | 66 | land = "propose" # propose | auto |
|
| 67 | + | target = "develop" # optional: the bookmark to bump (default: learned, §4.3) |
|
| 67 | 68 | ``` |
|
| 68 | 69 | ||
| 69 | 70 | 2. else its repository setting (Settings › Subrepos), so an |
|
| … | 6 unchanged lines |
||
| 76 | 77 | ||
| 77 | 78 | ### 4.3 The bump |
|
| 78 | 79 | ||
| 80 | + | **Which bookmark of the consumer** (decided 2026-10-12): the bookmark its |
|
| 81 | + | work lands on. The hub learns it per consumer from where the |
|
| 82 | + | consumer's proposals land (the most common target of those landed in the |
|
| 83 | + | last 90 days), falling back to the default bookmark; a `target` key in |
|
| 84 | + | the consumer's `.oxymodules` entry overrides it. The pin index (§4.1) |
|
| 85 | + | records pins on that bookmark as well as the default. So a game whose |
|
| 86 | + | default is `main` but whose work lands on `develop` is bumped on |
|
| 87 | + | `develop`, with no setup, and follows if its workflow changes. |
|
| 88 | + | ||
| 79 | 89 | When an upstream's followed bookmark reaches a new state S (and, for |
|
| 80 | 90 | `green`, S's required checks pass), for each consumer that follows it: |
|
| 81 | 91 | ||
| 82 | 92 | - **Skip** when the consumer's pin already holds S, or when S does not |
|
| 83 | 93 | hold everything the current pin does (upstream moved backwards or was |
|
| 84 | 94 | rewritten). Consumers only move forward. |
|
| 85 | - | - **Build** one change on the consumer's default heads that replaces the |
|
| 95 | + | - **Build** one change on the target bookmark's heads that replaces the |
|
| 86 | 96 | pin's blob with a pin of S. The hub signs it with its delegate key, as |
|
| 87 | 97 | it signs wiki edits, authored by the hub's `diffusion` account. |
|
| 88 | - | - **Place** it on the bookmark `diffusion/<path>`: the consumer's default |
|
| 89 | - | heads plus the change. One bookmark per consumer and subrepo, moved in |
|
| 98 | + | - **Place** it on the bookmark `diffusion/<path>`: the target's heads |
|
| 99 | + | plus the change. One bookmark per consumer and subrepo, moved in |
|
| 90 | 100 | place when upstream moves again, so there is never a pile of bumps. |
|
| 91 | - | - **Propose** it, once: a proposal from `diffusion/<path>` to the default |
|
| 101 | + | - **Propose** it, once: a proposal from `diffusion/<path>` to the target |
|
| 92 | 102 | bookmark, labelled `dependencies`, kept up to date as the bookmark |
|
| 93 | 103 | moves. Its CI runs on the projected state like any proposal's. |
|
| 94 | 104 | ||
| … | 104 unchanged lines |
||
| 199 | 209 | ||
| 200 | 210 | ## 11. Open questions |
|
| 201 | 211 | ||
| 202 | - | - **The name:** Diffusion, or plainer ("Follow")? |
|
| 203 | 212 | - **Who may turn it on** for a consumer: its owner and administrators, or |
|
| 204 | 213 | also the upstream's maintainers (by offering, which the consumer |
|
| 205 | 214 | accepts)? |
|
| … | 4 unchanged lines |