I just read your entire website and it does a great job at explaining trunk based development and its various implementations with their advantages and challenges. Congrats and thank you for that.
But there are some things I don't quite understand. Mainly where integrations tests are pushed.
It seems quite common to me that integration tests will be done by different people (testers) than code and unit tests (developers).
In a commit-straight-to-trunk model, devs push code they unit tested as best as they can to make sure their update don't break anything. But things are never that simple and bugs will inevitably be detected by testers.
If we use branch for release, do testers push their tests to the release branch ? That would require to merge the release branch to trunk, which is described as a bad thing to do. But if we don't push code, only tests, it should be fine, right ? Worst case scenario is we did forgot to merge tests back to trunk so testers will notice it on next release and merge it at this moment.
The alternative I found is, instead of doing a branch for release, "freeze" trunk for testers to push tests and devs to push fixes to it directly. Devs who wants to work on new feature do it on a temporary branch. This temporary branch will be merged in trunk after release. So it is still creating a branch for each release, but everything is inverted as pushing to trunk is forbidden and developers all push to a temp branch.
I just read your entire website and it does a great job at explaining trunk based development and its various implementations with their advantages and challenges. Congrats and thank you for that.
But there are some things I don't quite understand. Mainly where integrations tests are pushed.
It seems quite common to me that integration tests will be done by different people (testers) than code and unit tests (developers).
In a commit-straight-to-trunk model, devs push code they unit tested as best as they can to make sure their update don't break anything. But things are never that simple and bugs will inevitably be detected by testers.
If we use branch for release, do testers push their tests to the release branch ? That would require to merge the release branch to trunk, which is described as a bad thing to do. But if we don't push code, only tests, it should be fine, right ? Worst case scenario is we did forgot to merge tests back to trunk so testers will notice it on next release and merge it at this moment.
The alternative I found is, instead of doing a branch for release, "freeze" trunk for testers to push tests and devs to push fixes to it directly. Devs who wants to work on new feature do it on a temporary branch. This temporary branch will be merged in trunk after release. So it is still creating a branch for each release, but everything is inverted as pushing to trunk is forbidden and developers all push to a temp branch.