| We made something quite similar work rather well at $work. However, there is a somewhat subtle trick. The staging/prod candidate is built from master/main branch 21 days old, plus potentially some (few) cherrypicks. This allows to fearlessly commit to master, and then the “T-21” has 21 days of completely predictable future, that can be changed by doing cherrypicks. So we can run intense testing on “T-0” aka main, find any issues and add them to be cherry-picked into the T-21. The bonus is that when the fixes “arrive” to T-21, the cherry-picks become void and stop being applied. Thus, absent the bugs, the staging/prod code automatically converges to main/master over time. And yes, we do the reviews of the commits that go into master - but from the T-21 point of view they are 21 days in the future! So there is ample time for any reaction. Would folks be interested in a more detailed write up ? |