| 12 Oct 2025 |
emily | what if we just used the merge queue to ensure that nothing goes into master or staging-next that won't cleanly merge into the branches after it? | 15:55:17 |
emily | and switched things around so that, if you would cause a merge conflict on a later branch, you instead merge it into the later branch | 15:55:34 |
K900 | That is going to completely stall some PRs | 15:55:39 |
emily | and then "backport" it to the earlier ones | 15:55:40 |
K900 | I think | 15:55:43 |
emily | stall howso? | 15:55:51 |
K900 | Oh god that's going to be so painful | 15:55:53 |
emily | why? | 15:55:58 |
K900 | Because nothing will backport cleanly and then we have to check backports and oof | 15:56:12 |
emily | it means the conflicts can be resolved per-PR | 15:56:03 |
emily | rather than all at once | 15:56:08 |
emily | I don't understand | 15:56:22 |
emily | that's exactly the case of periodic merges failing | 15:56:26 |
emily | it would be far more auditable and granular than those | 15:56:35 |
K900 | I'd much rather resolve the conflicts all at once than have random people make three different PRs and compare them against each other | 15:56:58 |
emily | this would eliminate the conflicts | 15:57:17 |
emily | there would never be any | 15:57:21 |
emily | like, exactly when someone would have to manually resolve/check the conflict on staging, the merge would say "this conflicts with staging – target staging instead", and if you need the PR to land in master sooner than that, you would then open a cherry-pick from staging back to master, resolving the conflict | 15:57:57 |
emily | which a committer could still do – but a contributor could also do, just like with backports to release branches | 15:58:08 |
emily | it ensures that every change is always targeting the "latest state" whenever there would otherwise be conflicts | 15:58:23 |
emily | and we never have "master does X, staging does Y, they are incompatible, we find out 6 hours later" | 15:58:31 |
Wolfgang Walther | This doesn't solve the case of "A is merged into master, in the 6 hour window where A has not made its way to staging, B is merged into staging; A and B conflict". | 15:59:44 |
Wolfgang Walther | So it would not eliminate all of these cases, but probably reduce them a lot. | 15:59:57 |
emily | we can solve that too | 16:00:08 |
emily | by changing the reverse in the merge queue for staging | 16:00:15 |
emily | like… we can even just insert the merges just-in-time if necessary. | 16:00:28 |
emily | (or just boot it out and tell someone to run the periodic job) | 16:00:43 |
Wolfgang Walther | I see, yes that could work. | 16:00:43 |
emily | (since they'd need to resolve the conflict manually anyway) | 16:00:47 |
emily | I think this would be simpler and more auditable than the "periodic merge via PR" flow | 16:01:07 |