gstack merge trains now merge every PR, not just the first

1 hour ago

gstack merge trains now merge every PR in the train: a lane that merges main into its pinned PR passes verify when its tree matches what the train's gate tested. Heads with anything else are still refused. Covers gstack 1.91.173.0 to 1.91.174.0 (2026-10-20 to 2026-10-21). Release notes: https://github.com/garrytan/gstack/blob/main/CHANGELOG.md#1911730---2026-10-20 https://github.com/garrytan/gstack/blob/main/CHANGELOG.md#1911740---2026-10-21 Merge train guide: https://github.com/garrytan/gstack/blob/main/docs/ship-policy.md#run-a-merge-train Commits: https://github.com/garrytan/gstack/commits/main

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Trains
  2. 0:15Verify
  3. 0:29Guard
  4. 0:40Your setup
Show transcript

Trains

gstack logo

gstack merge trains now merge every PR, not just the first

slot 1 merged→slot 2 onward merges
The first live train stopped at slot 2.
TrainsVerifyGuardYour setup
garrytan/gstack · CHANGELOG.md · 1.91.173.0

gstack merge trains now merge every pull request in the train. The first live train stopped at slot two: once slot one merged, every later pull request conflicted with main, so GitHub couldn't squash it.

Verify

Main merged into the PR now passes verify

that headmoved off its pinthe tree the gate tested
The head: line says which kind of head it saw.
TrainsVerifyGuardYour setup
garrytan/gstack · CHANGELOG.md · 1.91.173.0

To clear that conflict, a lane merges main into its pull request. Verify used to refuse that as moved off its pin. Now it passes when the tree matches exactly what the train's gate tested.

Guard

Anything else is still refused

One file outside the train: still QUEUE_TRAIN_MOVED
Earlier slots merged: the queue still freezes
TrainsVerifyGuardYour setup
garrytan/gstack · CHANGELOG.md · 1.91.173.0

The guard stays. A head that adds even one file outside the train is still refused as moved. And the queue still freezes when earlier slots have merged.

Your setup

Lanes from slot 2 on follow a new procedure

docs/ship-policy.mdRun a merge train
Does your ship policy turn merge trains on?
TrainsVerifyGuardYour setup
garrytan/gstack · docs/ship-policy.md · 1.91.173.0

The ship policy guide now spells out what a lane does from slot two on. Does your ship policy turn merge trains on?