docs(runicnpc): the automated wipe-day cutover, planned (D332) #411

Merged
whitlocktech merged 1 commits from docs/runicnpc-auto-cutover into main 2026-11-02 05:46:02 -06:00
Member

What & why

The plan of record for automating RunicNPC's wipe-day edge → main cutover, so the org lead approves no merge on a wipe day. It goes up for approval before any code. In runicnpc/PLAN.md:

  • D332: the decision, with the alternatives the org lead turned down.
  • "9c, the automated cutover": the workflow (runicnpc-rust/.gitea/workflows/cutover.yml):
    • When: hourly from wipe Thursday 17:00 UTC to Sunday 23:00 UTC. A new wipeWeekend() helper decides this; nothing is dated in the workflow.
    • Five gates, cheapest first:
      1. Public build changed on wipe day.
      2. Oxide's public release caught up.
      3. Carbon boot showing missing=- added=-.
      4. Drill live half on public Rust with edge's code.
      5. PR checks.
    • State: each passed gate is kept per public manifest in drill.json, so the hour-long drill never re-runs.
    • Closing issues: Closes #N lines are collected from the PRs merged into edge since the last tag. No issue numbers live in the workflow.
    • The merge: made with RUNICNPC_TOKEN, locked to the repo.
    • When blocked: one comment a day, then hand-back at Sunday 23:00 UTC.
    • Trying it: dry_run and force dispatch inputs.
    • First run: a one-time ci: PR into main.

Inputs: read-only research of runicnpc-rust (drill.js, static.sh, the workflows, the rig tools), and the org lead's answers on 2026-11-02 (gate 1 = public changed; a ci: bootstrap PR; Sunday deadline; method A for closing).

How it was tested

Docs only. Nothing is built yet.

Checklist

  • I have read CONTRIBUTING.md.
  • The change builds and existing tests/checks pass locally.
  • I have added or updated tests/docs where it makes sense.
  • My commits are reasonably scoped with clear messages.

AI-assisted contributions (required)

  • No AI tools were used to produce this contribution.
  • AI tools were used. Tool(s): Claude Code (Claude Opus 5.5). I have reviewed and understand
    every change, and take responsibility for it. AI-authored commits are
    marked with a Co-Authored-By / Assisted-By trailer.

License

  • I agree that my contribution is licensed under this project's license
    (GNU GPL v3.0 or later), and I have the right to contribute it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

## What & why The plan of record for automating RunicNPC's wipe-day `edge` → `main` cutover, so the org lead approves no merge on a wipe day. It goes up for approval before any code. In `runicnpc/PLAN.md`: - **D332:** the decision, with the alternatives the org lead turned down. - **"9c, the automated cutover":** the workflow (`runicnpc-rust/.gitea/workflows/cutover.yml`): - **When:** hourly from wipe Thursday 17:00 UTC to Sunday 23:00 UTC. A new `wipeWeekend()` helper decides this; nothing is dated in the workflow. - **Five gates, cheapest first:** 1. Public build changed on wipe day. 2. Oxide's public release caught up. 3. Carbon boot showing `missing=- added=-`. 4. Drill live half on public Rust with `edge`'s code. 5. PR checks. - **State:** each passed gate is kept per public manifest in `drill.json`, so the hour-long drill never re-runs. - **Closing issues:** `Closes #N` lines are collected from the PRs merged into `edge` since the last tag. No issue numbers live in the workflow. - **The merge:** made with `RUNICNPC_TOKEN`, locked to the repo. - **When blocked:** one comment a day, then hand-back at Sunday 23:00 UTC. - **Trying it:** `dry_run` and `force` dispatch inputs. - **First run:** a one-time `ci:` PR into `main`. Inputs: read-only research of `runicnpc-rust` (drill.js, static.sh, the workflows, the rig tools), and the org lead's answers on 2026-11-02 (gate 1 = public changed; a `ci:` bootstrap PR; Sunday deadline; method A for closing). ## How it was tested Docs only. Nothing is built yet. ## Checklist - [x] I have read [CONTRIBUTING.md](CONTRIBUTING.md). - [x] The change builds and existing tests/checks pass locally. - [x] I have added or updated tests/docs where it makes sense. - [x] My commits are reasonably scoped with clear messages. ## AI-assisted contributions (required) - [ ] No AI tools were used to produce this contribution. - [x] AI tools were used. Tool(s): `Claude Code (Claude Opus 5.5)`. I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with a `Co-Authored-By` / `Assisted-By` trailer. ## License - [x] I agree that my contribution is licensed under this project's license (**GNU GPL v3.0 or later**), and I have the right to contribute it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-11-02 05:42:13 -06:00
On a forced-wipe weekend a workflow in runicnpc-rust merges edge into main
on its own once five gates pass: Rust's public build changed on wipe day,
Oxide's public release caught up, a Carbon boot on public Rust says
missing=- added=-, the drill's live half passes on public Rust with edge's
code, and PR checks pass. Hourly from Thursday 17:00 UTC to Sunday 23:00
UTC, then left to the org lead. The issues it closes come from the
`Closes #N` lines of the PRs merged into edge since the last release; it
merges with RUNICNPC_TOKEN, locked to the repo. RunicNPC only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
whitlocktech merged commit 4224c3b0db into main 2026-11-02 05:46:02 -06:00
whitlocktech deleted branch docs/runicnpc-auto-cutover 2026-11-02 05:46:03 -06:00
Sign in to join this conversation.
No description provided.