Details
-
Suggestion
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
Description
Currently the workflow involves
- hitting "stage" quickly on multiple tabs
- waiting for the build to start
- hoping that no foreign patches will be integrated together
- there is no direct way to actually test-build something instead of integrating it (scheduling a build in Coin is not straightforward)
The suggested workflow is (in Gerrit, not Coin):
- press a button named "add patch to build" to add the specific changeset to a future build
- have a "schedule build" button that would overview the patches currently scheduled by this user, and no foreign patches
- have a checkbox named "integrate patches into branch X.Y on success"; unless checked, the build does not merge anything. And the button can't be checked, unless the code has gotten a +2 review.
- If a user re-schedules the exact same patches that had succeeded before, but now he is setting the "integrate" checkbox to on, then the patches get merged at once.
Advantages:
- A user can immediately test his build, without waiting for a review, so he starts the fix-and-test iterative process sooner
- This is the closest alternative I can think of the github/gitlab workflow of auto-building pull-requests the moment the user submits them. With Gerrit, we can't really auto-build patches, since there is no automatic way to group them, like pull requests, so Gerrit wouldn't know if they should be built standalone or not.
Main disadvantage: increased load for our build farm.
- We could enable this kind of work only to selected users in the beginning, and see how this affects them and the build farm.
- Security: careful hardening needed before enabling unreviewed builds to externals